From 45a84f8d1b56bcb7cef62fcd86b758e73f5c0edc Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 11 Jul 2023 21:54:40 +0000 Subject: [PATCH 01/22] chore(main): release 6.43.3-SNAPSHOT (#2522) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- google-cloud-spanner-bom/pom.xml | 20 +++++++++---------- google-cloud-spanner-executor/pom.xml | 4 ++-- google-cloud-spanner/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- grpc-google-cloud-spanner-v1/pom.xml | 4 ++-- pom.xml | 16 +++++++-------- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- proto-google-cloud-spanner-v1/pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 16 +++++++-------- 12 files changed, 43 insertions(+), 43 deletions(-) diff --git a/google-cloud-spanner-bom/pom.xml b/google-cloud-spanner-bom/pom.xml index 28e386173c1..4300c4fdac8 100644 --- a/google-cloud-spanner-bom/pom.xml +++ b/google-cloud-spanner-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-spanner-bom - 6.43.2 + 6.43.3-SNAPSHOT pom com.google.cloud @@ -53,48 +53,48 @@ com.google.cloud google-cloud-spanner - 6.43.2 + 6.43.3-SNAPSHOT com.google.cloud google-cloud-spanner-executor - 6.43.2 + 6.43.3-SNAPSHOT com.google.cloud google-cloud-spanner test-jar - 6.43.2 + 6.43.3-SNAPSHOT com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.43.2 + 6.43.3-SNAPSHOT com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.43.2 + 6.43.3-SNAPSHOT com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.43.2 + 6.43.3-SNAPSHOT com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.43.2 + 6.43.3-SNAPSHOT com.google.api.grpc proto-google-cloud-spanner-v1 - 6.43.2 + 6.43.3-SNAPSHOT com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.43.2 + 6.43.3-SNAPSHOT diff --git a/google-cloud-spanner-executor/pom.xml b/google-cloud-spanner-executor/pom.xml index 04225a79752..23f0817d3bc 100644 --- a/google-cloud-spanner-executor/pom.xml +++ b/google-cloud-spanner-executor/pom.xml @@ -5,14 +5,14 @@ 4.0.0 com.google.cloud google-cloud-spanner-executor - 6.43.2 + 6.43.3-SNAPSHOT jar Google Cloud Spanner Executor com.google.cloud google-cloud-spanner-parent - 6.43.2 + 6.43.3-SNAPSHOT diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml index 3be0f786558..e6529fb3182 100644 --- a/google-cloud-spanner/pom.xml +++ b/google-cloud-spanner/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-spanner - 6.43.2 + 6.43.3-SNAPSHOT jar Google Cloud Spanner https://github.com/googleapis/java-spanner @@ -11,7 +11,7 @@ com.google.cloud google-cloud-spanner-parent - 6.43.2 + 6.43.3-SNAPSHOT google-cloud-spanner diff --git a/grpc-google-cloud-spanner-admin-database-v1/pom.xml b/grpc-google-cloud-spanner-admin-database-v1/pom.xml index bf321cc1280..f2401d9082c 100644 --- a/grpc-google-cloud-spanner-admin-database-v1/pom.xml +++ b/grpc-google-cloud-spanner-admin-database-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.43.2 + 6.43.3-SNAPSHOT grpc-google-cloud-spanner-admin-database-v1 GRPC library for grpc-google-cloud-spanner-admin-database-v1 com.google.cloud google-cloud-spanner-parent - 6.43.2 + 6.43.3-SNAPSHOT diff --git a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml index a39510245e6..02360ae595d 100644 --- a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml +++ b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.43.2 + 6.43.3-SNAPSHOT grpc-google-cloud-spanner-admin-instance-v1 GRPC library for grpc-google-cloud-spanner-admin-instance-v1 com.google.cloud google-cloud-spanner-parent - 6.43.2 + 6.43.3-SNAPSHOT diff --git a/grpc-google-cloud-spanner-v1/pom.xml b/grpc-google-cloud-spanner-v1/pom.xml index bdc934ed729..16821ff1bd0 100644 --- a/grpc-google-cloud-spanner-v1/pom.xml +++ b/grpc-google-cloud-spanner-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.43.2 + 6.43.3-SNAPSHOT grpc-google-cloud-spanner-v1 GRPC library for grpc-google-cloud-spanner-v1 com.google.cloud google-cloud-spanner-parent - 6.43.2 + 6.43.3-SNAPSHOT diff --git a/pom.xml b/pom.xml index 0900bd3f493..80105f2f282 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-spanner-parent pom - 6.43.2 + 6.43.3-SNAPSHOT Google Cloud Spanner Parent https://github.com/googleapis/java-spanner @@ -62,37 +62,37 @@ com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.43.2 + 6.43.3-SNAPSHOT com.google.api.grpc proto-google-cloud-spanner-v1 - 6.43.2 + 6.43.3-SNAPSHOT com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.43.2 + 6.43.3-SNAPSHOT com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.43.2 + 6.43.3-SNAPSHOT com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.43.2 + 6.43.3-SNAPSHOT com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.43.2 + 6.43.3-SNAPSHOT com.google.cloud google-cloud-spanner - 6.43.2 + 6.43.3-SNAPSHOT diff --git a/proto-google-cloud-spanner-admin-database-v1/pom.xml b/proto-google-cloud-spanner-admin-database-v1/pom.xml index 01df51797c0..62e47388bd5 100644 --- a/proto-google-cloud-spanner-admin-database-v1/pom.xml +++ b/proto-google-cloud-spanner-admin-database-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.43.2 + 6.43.3-SNAPSHOT proto-google-cloud-spanner-admin-database-v1 PROTO library for proto-google-cloud-spanner-admin-database-v1 com.google.cloud google-cloud-spanner-parent - 6.43.2 + 6.43.3-SNAPSHOT diff --git a/proto-google-cloud-spanner-admin-instance-v1/pom.xml b/proto-google-cloud-spanner-admin-instance-v1/pom.xml index 7b1d1974d05..0299b4d3d4e 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/pom.xml +++ b/proto-google-cloud-spanner-admin-instance-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.43.2 + 6.43.3-SNAPSHOT proto-google-cloud-spanner-admin-instance-v1 PROTO library for proto-google-cloud-spanner-admin-instance-v1 com.google.cloud google-cloud-spanner-parent - 6.43.2 + 6.43.3-SNAPSHOT diff --git a/proto-google-cloud-spanner-v1/pom.xml b/proto-google-cloud-spanner-v1/pom.xml index 53897ef1f5a..5d829bd511e 100644 --- a/proto-google-cloud-spanner-v1/pom.xml +++ b/proto-google-cloud-spanner-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-v1 - 6.43.2 + 6.43.3-SNAPSHOT proto-google-cloud-spanner-v1 PROTO library for proto-google-cloud-spanner-v1 com.google.cloud google-cloud-spanner-parent - 6.43.2 + 6.43.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d143aae7725..35fad8321a1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -31,7 +31,7 @@ com.google.cloud google-cloud-spanner - 6.43.2 + 6.43.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 6f4c5e9b511..e5363aed015 100644 --- a/versions.txt +++ b/versions.txt @@ -1,11 +1,11 @@ # Format: # module:released-version:current-version -proto-google-cloud-spanner-admin-instance-v1:6.43.2:6.43.2 -proto-google-cloud-spanner-v1:6.43.2:6.43.2 -proto-google-cloud-spanner-admin-database-v1:6.43.2:6.43.2 -grpc-google-cloud-spanner-v1:6.43.2:6.43.2 -grpc-google-cloud-spanner-admin-instance-v1:6.43.2:6.43.2 -grpc-google-cloud-spanner-admin-database-v1:6.43.2:6.43.2 -google-cloud-spanner:6.43.2:6.43.2 -google-cloud-spanner-executor:6.43.2:6.43.2 +proto-google-cloud-spanner-admin-instance-v1:6.43.2:6.43.3-SNAPSHOT +proto-google-cloud-spanner-v1:6.43.2:6.43.3-SNAPSHOT +proto-google-cloud-spanner-admin-database-v1:6.43.2:6.43.3-SNAPSHOT +grpc-google-cloud-spanner-v1:6.43.2:6.43.3-SNAPSHOT +grpc-google-cloud-spanner-admin-instance-v1:6.43.2:6.43.3-SNAPSHOT +grpc-google-cloud-spanner-admin-database-v1:6.43.2:6.43.3-SNAPSHOT +google-cloud-spanner:6.43.2:6.43.3-SNAPSHOT +google-cloud-spanner-executor:6.43.2:6.43.3-SNAPSHOT From 230f52b70b40f70af8e2d222edc266c59dd93023 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 12 Jul 2023 08:07:49 +0200 Subject: [PATCH 02/22] chore(deps): update dependency com.google.cloud:google-cloud-spanner to v6.43.2 (#2523) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-spanner to v6.43.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1438843e944..e66377e2ad9 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-spanner - 6.43.1 + 6.43.2 ``` @@ -57,13 +57,13 @@ implementation 'com.google.cloud:google-cloud-spanner' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-spanner:6.43.1' +implementation 'com.google.cloud:google-cloud-spanner:6.43.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.43.1" +libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.43.2" ``` @@ -421,7 +421,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-spanner.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.43.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.43.2 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3f5952d44a4..2c6a1b84ec7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -32,7 +32,7 @@ com.google.cloud google-cloud-spanner - 6.43.1 + 6.43.2 From 2d952347e0eb7db42387d8abb91d4b11d51cef9c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Jul 2023 06:53:08 +0200 Subject: [PATCH 03/22] deps: update dependency com.google.cloud:google-cloud-trace to v2.21.0 (#2526) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2c6a1b84ec7..37b922ef8a1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -22,7 +22,7 @@ 1.8 UTF-8 0.31.1 - 2.20.0 + 2.21.0 3.21.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 35fad8321a1..6e8c881af84 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -22,7 +22,7 @@ 1.8 UTF-8 0.31.1 - 2.20.0 + 2.21.0 3.21.0 From be0db6f10509fe3e5f74aa6ca6569552e65cb87a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Jul 2023 17:45:10 +0200 Subject: [PATCH 04/22] deps: update dependency com.google.cloud:google-cloud-monitoring to v3.22.0 (#2525) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 37b922ef8a1..634c2c2acea 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -23,7 +23,7 @@ UTF-8 0.31.1 2.21.0 - 3.21.0 + 3.22.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6e8c881af84..47925e2ecc7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -23,7 +23,7 @@ UTF-8 0.31.1 2.21.0 - 3.21.0 + 3.22.0 From 34b6dfef526b45ee34a42677af7bdd2afc0ee275 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 16:28:14 +0000 Subject: [PATCH 05/22] build(deps): bump cryptography from 39.0.1 to 41.0.2 in /.kokoro (#2529) Bumps [cryptography](https://togithub.com/pyca/cryptography) from 39.0.1 to 41.0.2.
Changelog

Sourced from cryptography's changelog.

41.0.2 - 2023-07-10


* Fixed bugs in creating and parsing SSH certificates where critical options
  with values were handled incorrectly. Certificates are now created correctly
  and parsing accepts correct values as well as the previously generated
  invalid forms with a warning. In the next release, support for parsing these
  invalid forms will be removed.

.. _v41-0-1:

41.0.1 - 2023-06-01

  • Temporarily allow invalid ECDSA signature algorithm parameters in X.509 certificates, which are generated by older versions of Java.
  • Allow null bytes in pass phrases when serializing private keys.

.. _v41-0-0:

41.0.0 - 2023-05-30


* **BACKWARDS INCOMPATIBLE:** Support for OpenSSL less than 1.1.1d has been
  removed.  Users on older version of OpenSSL will need to upgrade.
* **BACKWARDS INCOMPATIBLE:** Support for Python 3.6 has been removed.
* **BACKWARDS INCOMPATIBLE:** Dropped support for LibreSSL < 3.6.
* Updated the minimum supported Rust version (MSRV) to 1.56.0, from 1.48.0.
* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.1.1.
* Added support for the :class:`~cryptography.x509.OCSPAcceptableResponses`
  OCSP extension.
* Added support for the :class:`~cryptography.x509.MSCertificateTemplate`
  proprietary Microsoft certificate extension.
* Implemented support for equality checks on all asymmetric public key types.
* Added support for ``aes256-gcm@openssh.com`` encrypted keys in
  :func:`~cryptography.hazmat.primitives.serialization.load_ssh_private_key`.
* Added support for obtaining X.509 certificate signature algorithm parameters
  (including PSS) via
  :meth:`~cryptography.x509.Certificate.signature_algorithm_parameters`.
* Support signing :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS`
  X.509 certificates via the new keyword-only argument ``rsa_padding`` on
  :meth:`~cryptography.x509.CertificateBuilder.sign`.
* Added support for
  :class:`~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305`
  on BoringSSL.

.. _v40-0-2:

40.0.2 - 2023-04-14

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cryptography&package-manager=pip&previous-version=39.0.1&new-version=41.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://togithub.com/googleapis/java-spanner/network/alerts).
From f6591053db1c38f0e13e35cba2087a68d3ab1b01 Mon Sep 17 00:00:00 2001 From: Arpan Mishra Date: Tue, 18 Jul 2023 12:56:47 +0530 Subject: [PATCH 06/22] feat: foreign key on delete cascade (#2340) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: prevent illegal negative timeout values into thread sleep() method while retrying exceptions in unit tests. * For details on issue see - https://github.com/googleapis/java-spanner/issues/2206 * Fixing lint issues. * test: foreign key on delete cascade * docs:adding samples for foreign key on delete cascade feature. * incorporated review comments. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * fix: lint issues and exlude tests from emulator. * fix : checkstyle issues in samples. * fix: add copyright for test. * fix:review comments. * fix:PR comments. --------- Co-authored-by: Owl Bot --- README.md | 3 + .../it/ITForeignKeyDeleteCascadeTest.java | 514 ++++++++++++++++++ ...ableWithForeignKeyDeleteCascadeSample.java | 59 ++ ...ableWithForeignKeyDeleteCascadeSample.java | 66 +++ ...reignKeyConstraintDeleteCascadeSample.java | 57 ++ ...leWithForeignKeyDeleteCascadeSampleIT.java | 65 +++ ...leWithForeignKeyDeleteCascadeSampleIT.java | 52 ++ ...ignKeyConstraintDeleteCascadeSampleIT.java | 63 +++ .../com/example/spanner/SampleTestBase.java | 10 +- 9 files changed, 886 insertions(+), 3 deletions(-) create mode 100644 google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITForeignKeyDeleteCascadeTest.java create mode 100644 samples/snippets/src/main/java/com/example/spanner/AlterTableWithForeignKeyDeleteCascadeSample.java create mode 100644 samples/snippets/src/main/java/com/example/spanner/CreateTableWithForeignKeyDeleteCascadeSample.java create mode 100644 samples/snippets/src/main/java/com/example/spanner/DropForeignKeyConstraintDeleteCascadeSample.java create mode 100644 samples/snippets/src/test/java/com/example/spanner/AlterTableWithForeignKeyDeleteCascadeSampleIT.java create mode 100644 samples/snippets/src/test/java/com/example/spanner/CreateTableWithForeignKeyDeleteCascadeSampleIT.java create mode 100644 samples/snippets/src/test/java/com/example/spanner/DropForeignKeyConstraintDeleteCascadeSampleIT.java diff --git a/README.md b/README.md index e66377e2ad9..f1aa6d81faa 100644 --- a/README.md +++ b/README.md @@ -258,6 +258,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-spanner/tree/ | Add Json Column Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/AddJsonColumnSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/AddJsonColumnSample.java) | | Add Jsonb Column Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/AddJsonbColumnSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/AddJsonbColumnSample.java) | | Add Numeric Column Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/AddNumericColumnSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/AddNumericColumnSample.java) | +| Alter Table With Foreign Key Delete Cascade Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/AlterTableWithForeignKeyDeleteCascadeSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/AlterTableWithForeignKeyDeleteCascadeSample.java) | | Async Dml Example | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/AsyncDmlExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/AsyncDmlExample.java) | | Async Query Example | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/AsyncQueryExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/AsyncQueryExample.java) | | Async Query To List Async Example | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/AsyncQueryToListAsyncExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/AsyncQueryToListAsyncExample.java) | @@ -276,9 +277,11 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-spanner/tree/ | Create Instance Config Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/CreateInstanceConfigSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/CreateInstanceConfigSample.java) | | Create Instance Example | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/CreateInstanceExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/CreateInstanceExample.java) | | Create Instance With Processing Units Example | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/CreateInstanceWithProcessingUnitsExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/CreateInstanceWithProcessingUnitsExample.java) | +| Create Table With Foreign Key Delete Cascade Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/CreateTableWithForeignKeyDeleteCascadeSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/CreateTableWithForeignKeyDeleteCascadeSample.java) | | Custom Timeout And Retry Settings Example | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/CustomTimeoutAndRetrySettingsExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/CustomTimeoutAndRetrySettingsExample.java) | | Delete Instance Config Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/DeleteInstanceConfigSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/DeleteInstanceConfigSample.java) | | Delete Using Dml Returning Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/DeleteUsingDmlReturningSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/DeleteUsingDmlReturningSample.java) | +| Drop Foreign Key Constraint Delete Cascade Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/DropForeignKeyConstraintDeleteCascadeSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/DropForeignKeyConstraintDeleteCascadeSample.java) | | Enable Fine Grained Access | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/EnableFineGrainedAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/EnableFineGrainedAccess.java) | | Get Commit Stats Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/GetCommitStatsSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/GetCommitStatsSample.java) | | Get Database Ddl Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/GetDatabaseDdlSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/GetDatabaseDdlSample.java) | diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITForeignKeyDeleteCascadeTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITForeignKeyDeleteCascadeTest.java new file mode 100644 index 00000000000..fc7c860267a --- /dev/null +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITForeignKeyDeleteCascadeTest.java @@ -0,0 +1,514 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.spanner.it; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; +import static org.junit.Assume.assumeFalse; + +import com.google.cloud.spanner.Database; +import com.google.cloud.spanner.DatabaseAdminClient; +import com.google.cloud.spanner.DatabaseClient; +import com.google.cloud.spanner.Dialect; +import com.google.cloud.spanner.ErrorCode; +import com.google.cloud.spanner.IntegrationTestEnv; +import com.google.cloud.spanner.Key; +import com.google.cloud.spanner.Mutation; +import com.google.cloud.spanner.ParallelIntegrationTest; +import com.google.cloud.spanner.ResultSet; +import com.google.cloud.spanner.SpannerException; +import com.google.cloud.spanner.Statement; +import com.google.cloud.spanner.testing.EmulatorSpannerHelper; +import com.google.common.collect.ImmutableList; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.ClassRule; +import org.junit.Test; +import org.junit.experimental.categories.Category; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +@Category(ParallelIntegrationTest.class) +@RunWith(Parameterized.class) +public class ITForeignKeyDeleteCascadeTest { + + @ClassRule public static IntegrationTestEnv env = new IntegrationTestEnv(); + + @Parameterized.Parameters(name = "Dialect = {0}") + public static List data() { + List params = new ArrayList<>(); + params.add(new DialectTestParameter(Dialect.GOOGLE_STANDARD_SQL)); + params.add(new DialectTestParameter(Dialect.POSTGRESQL)); + return params; + } + + private static final String TABLE_NAME_SINGER = "Singer"; + private static final String TABLE_NAME_CONCERT = "Concert"; + private static final String DELETE_RULE_COLUMN_NAME = "DELETE_RULE"; + + private static Database GOOGLE_STANDARD_SQL_DATABASE; + private static Database POSTGRESQL_DATABASE; + private static List dbs = new ArrayList<>(); + + @Parameterized.Parameter(0) + public DialectTestParameter dialect; + + @BeforeClass + public static void setUpDatabase() { + if (!EmulatorSpannerHelper.isUsingEmulator()) { + GOOGLE_STANDARD_SQL_DATABASE = + env.getTestHelper() + .createTestDatabase( + ImmutableList.of( + "CREATE TABLE Singer (\n" + + " singer_id INT64 NOT NULL,\n" + + " first_name STRING(1024),\n" + + ") PRIMARY KEY(singer_id)\n", + "CREATE TABLE Concert (\n" + + " venue_id INT64 NOT NULL,\n" + + " singer_id INT64 NOT NULL,\n" + + " CONSTRAINT Fk_Concert_Singer FOREIGN KEY (singer_id) REFERENCES Singer (singer_id) ON DELETE CASCADE" + + ") PRIMARY KEY(venue_id, singer_id)")); + POSTGRESQL_DATABASE = + env.getTestHelper() + .createTestDatabase( + Dialect.POSTGRESQL, + ImmutableList.of( + "CREATE TABLE Singer (\n" + + " singer_id BIGINT PRIMARY KEY,\n" + + " first_name VARCHAR\n" + + ")", + "CREATE TABLE Concert (\n" + + " venue_id BIGINT NOT NULL,\n" + + " singer_id BIGINT NOT NULL,\n" + + " PRIMARY KEY (venue_id, singer_id),\n" + + " CONSTRAINT Fk_Concert_Singer FOREIGN KEY (singer_id) REFERENCES Singer (singer_id) ON DELETE CASCADE\n" + + " )")); + + dbs.add(GOOGLE_STANDARD_SQL_DATABASE); + dbs.add(POSTGRESQL_DATABASE); + } + } + + @AfterClass + public static void tearDown() { + for (Database db : dbs) { + db.drop(); + } + dbs.clear(); + } + + @Test + public void testForeignKeyDeleteCascadeConstraints_withCreateDDLStatements() { + assumeFalse( + "Emulator does not yet support foreign key delete cascade", + EmulatorSpannerHelper.isUsingEmulator()); + + final DatabaseClient databaseClient = getCreatedDatabaseClient(); + try (final ResultSet rs = + databaseClient + .singleUse() + .executeQuery( + Statement.of( + "SELECT DELETE_RULE\n" + + "FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS\n" + + "WHERE CONSTRAINT_NAME ='Fk_Concert_Singer'"))) { + while (rs.next()) { + assertEquals(rs.getString(DELETE_RULE_COLUMN_NAME), "CASCADE"); + } + } + } + + @Test + public void testForeignKeyDeleteCascadeConstraints_withAlterDDLStatements() throws Exception { + assumeFalse( + "Emulator does not yet support foreign key delete cascade", + EmulatorSpannerHelper.isUsingEmulator()); + // Creating new tables within this test to ensure we don't pollute tables used by other tests in + // this class. + List createStatements; + if (dialect.dialect == Dialect.POSTGRESQL) { + createStatements = + ImmutableList.of( + "CREATE TABLE Singer (\n" + + " singer_id BIGINT PRIMARY KEY,\n" + + " first_name VARCHAR\n" + + ")", + "CREATE TABLE ConcertV2 (\n" + + " venue_id BIGINT NOT NULL,\n" + + " singer_id BIGINT NOT NULL,\n" + + " PRIMARY KEY (venue_id, singer_id)\n" + + " )", + "ALTER TABLE ConcertV2 " + + "ADD CONSTRAINT Fk_Concert_Singer_V2 FOREIGN KEY(singer_id) REFERENCES Singer(singer_id) " + + "ON DELETE CASCADE"); + } else { + createStatements = + ImmutableList.of( + "CREATE TABLE Singer (\n" + + " singer_id INT64 NOT NULL,\n" + + " first_name STRING(1024),\n" + + ") PRIMARY KEY(singer_id)\n", + "CREATE TABLE ConcertV2 (\n" + + " venue_id INT64 NOT NULL,\n" + + " singer_id INT64 NOT NULL,\n" + + ") PRIMARY KEY(venue_id, singer_id)", + "ALTER TABLE ConcertV2 " + + "ADD CONSTRAINT Fk_Concert_Singer_V2 FOREIGN KEY(singer_id) REFERENCES Singer(singer_id) " + + "ON DELETE CASCADE"); + } + final Database createdDatabase = + env.getTestHelper().createTestDatabase(dialect.dialect, createStatements); + dbs.add(createdDatabase); + + final DatabaseClient databaseClient = getCreatedDatabaseClient(); + + try (final ResultSet rs = + databaseClient + .singleUse() + .executeQuery( + Statement.of( + "SELECT DELETE_RULE\n" + + "FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS\n" + + "WHERE CONSTRAINT_NAME ='Fk_Concert_Singer'"))) { + while (rs.next()) { + assertEquals(rs.getString(DELETE_RULE_COLUMN_NAME), "CASCADE"); + } + } + + // remove the foreign key delete cascade constraint + getDatabaseAdminClient() + .updateDatabaseDdl( + env.getTestHelper().getInstanceId().getInstance(), + createdDatabase.getId().getDatabase(), + ImmutableList.of( + "ALTER TABLE ConcertV2\n" + "DROP CONSTRAINT Fk_Concert_Singer_V2", + "ALTER TABLE ConcertV2 " + + "ADD CONSTRAINT Fk_Concert_Singer_V2 FOREIGN KEY(singer_id) REFERENCES Singer(singer_id) "), + null) + .get(); + + try (final ResultSet rs = + databaseClient + .singleUse() + .executeQuery( + Statement.of( + "SELECT DELETE_RULE\n" + + "FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS\n" + + "WHERE CONSTRAINT_NAME ='Fk_Concert_Singer_V2'"))) { + while (rs.next()) { + assertEquals(rs.getString(DELETE_RULE_COLUMN_NAME), "NO ACTION"); + } + } + } + + @Test + public void testForeignKeyDeleteCascadeConstraints_verifyValidInsertions() { + assumeFalse( + "Emulator does not yet support foreign key delete cascade", + EmulatorSpannerHelper.isUsingEmulator()); + + final DatabaseClient databaseClient = getCreatedDatabaseClient(); + final String singerInsertStatement = + "INSERT INTO Singer (singer_id, first_name) VALUES (" + generateQueryParameters(2) + ")"; + final Statement singerInsertStatementWithValues = + Statement.newBuilder(singerInsertStatement) + // Use 'p1' to bind to the parameter with index 1 etc. + .bind("p1") + .to(1L) + .bind("p2") + .to("singerName") + .build(); + + final String concertInsertStatement = + "INSERT INTO Concert (venue_id, singer_id) VALUES (" + generateQueryParameters(2) + ")"; + final Statement concertInsertStatementWithValues = + Statement.newBuilder(concertInsertStatement) + // Use 'p1' to bind to the parameter with index 1 etc. + .bind("p1") + .to(1L) + .bind("p2") + .to(1L) + .build(); + + // successful inserts into referenced and referencing tables + databaseClient + .readWriteTransaction() + .run( + transaction -> { + transaction.batchUpdate( + ImmutableList.of( + singerInsertStatementWithValues, concertInsertStatementWithValues)); + return null; + }); + + try (ResultSet resultSet = + databaseClient + .singleUse() + .executeQuery(Statement.of("SELECT * FROM " + TABLE_NAME_SINGER))) { + + resultSet.next(); + assertEquals(1, resultSet.getLong("singer_id")); + assertEquals("singerName", resultSet.getString("first_name")); + + assertFalse(resultSet.next()); + } + + try (ResultSet resultSet = + databaseClient + .singleUse() + .executeQuery(Statement.of("SELECT * FROM " + TABLE_NAME_CONCERT))) { + + resultSet.next(); + assertEquals(1, resultSet.getLong("singer_id")); + assertEquals(1, resultSet.getLong("venue_id")); + + assertFalse(resultSet.next()); + } + } + + @Test + public void testForeignKeyDeleteCascadeConstraints_verifyInvalidInsertions() { + assumeFalse( + "Emulator does not yet support foreign key delete cascade", + EmulatorSpannerHelper.isUsingEmulator()); + + final DatabaseClient databaseClient = getCreatedDatabaseClient(); + + // unsuccessful inserts into referencing tables when foreign key is not inserted into referenced + // table + final String concertInsertStatement = + "INSERT INTO Concert (venue_id, singer_id) VALUES (" + generateQueryParameters(2) + ")"; + final Statement concertInsertStatementWithInvalidValues = + Statement.newBuilder(concertInsertStatement) + // Use 'p1' to bind to the parameter with index 1 etc. + .bind("p1") + .to(2L) + .bind("p2") + .to(2L) + .build(); + + SpannerException ex = + assertThrows( + SpannerException.class, + () -> + databaseClient + .readWriteTransaction() + .run( + transaction -> { + transaction.executeUpdate(concertInsertStatementWithInvalidValues); + return null; + })); + assertEquals(ex.getErrorCode(), ErrorCode.FAILED_PRECONDITION); + assertTrue(ex.getMessage().contains("Cannot find referenced values")); + } + + @Test + public void testForeignKeyDeleteCascadeConstraints_forDeletions() { + assumeFalse( + "Emulator does not yet support foreign key delete cascade", + EmulatorSpannerHelper.isUsingEmulator()); + + final DatabaseClient databaseClient = getCreatedDatabaseClient(); + + final String singerInsertStatement = + "INSERT INTO Singer (singer_id, first_name) VALUES (" + generateQueryParameters(2) + ")"; + final Statement singerInsertStatementWithValues = + Statement.newBuilder(singerInsertStatement) + // Use 'p1' to bind to the parameter with index 1 etc. + .bind("p1") + .to(3L) + .bind("p2") + .to("singerName") + .build(); + + final String concertInsertStatement = + "INSERT INTO Concert (venue_id, singer_id) VALUES (" + generateQueryParameters(2) + ")"; + final Statement concertInsertStatementWithValues = + Statement.newBuilder(concertInsertStatement) + // Use 'p1' to bind to the parameter with index 1 etc. + .bind("p1") + .to(3L) + .bind("p2") + .to(3L) + .build(); + + // successful inserts into referenced and referencing tables + databaseClient + .readWriteTransaction() + .run( + transaction -> { + transaction.batchUpdate( + ImmutableList.of( + singerInsertStatementWithValues, concertInsertStatementWithValues)); + return null; + }); + + // execute delete + final Statement singerDeleteStatementWithValues = + Statement.newBuilder("DELETE FROM Singer WHERE singer_id = " + generateQueryParameters(1)) + // Use 'p1' to bind to the parameter with index 1 etc. + .bind("p1") + .to(3L) + .build(); + databaseClient + .readWriteTransaction() + .run( + transaction -> { + transaction.executeUpdate(singerDeleteStatementWithValues); + return null; + }); + + try (ResultSet resultSet = + databaseClient + .singleUse() + .executeQuery(Statement.of("SELECT * FROM " + TABLE_NAME_SINGER))) { + assertFalse(resultSet.next()); + } + + try (ResultSet resultSet = + databaseClient + .singleUse() + .executeQuery(Statement.of("SELECT * FROM " + TABLE_NAME_CONCERT))) { + assertFalse(resultSet.next()); + } + } + + @Test + public void testForeignKeyDeleteCascadeConstraints_forMutations_onConflictDueToParentTable() { + assumeFalse( + "Emulator does not yet support foreign key delete cascade", + EmulatorSpannerHelper.isUsingEmulator()); + + final DatabaseClient databaseClient = getCreatedDatabaseClient(); + + // inserting and deleting the referenced key within the same mutation are considered + // conflicting operations, thus this results in an exception. + SpannerException ex = + assertThrows( + SpannerException.class, + () -> + databaseClient + .readWriteTransaction() + .run( + transaction -> { + transaction.buffer( + Arrays.asList( + Mutation.newInsertBuilder("Singer") + .set("singer_id") + .to(4L) + .set("first_name") + .to("singerName") + .build(), + Mutation.delete("Singer", Key.of(4L)))); + return null; + })); + assertEquals(ex.getErrorCode(), ErrorCode.FAILED_PRECONDITION); + } + + @Test + public void testForeignKeyDeleteCascadeConstraints_forMutations_onConflictsDueToChildTable() { + assumeFalse( + "Emulator does not yet support foreign key delete cascade", + EmulatorSpannerHelper.isUsingEmulator()); + + final DatabaseClient databaseClient = getCreatedDatabaseClient(); + + // referencing a foreign key in child table and deleting the referenced key in parent table + // within the same mutations are considered conflicting operations. + final String singerInsertStatement = + "INSERT INTO Singer (singer_id, first_name) VALUES (" + generateQueryParameters(2) + ")"; + final Statement singerInsertStatementWithValues = + Statement.newBuilder(singerInsertStatement) + // Use 'p1' to bind to the parameter with index 1 etc. + .bind("p1") + .to(5L) + .bind("p2") + .to("singerName") + .build(); + + databaseClient + .readWriteTransaction() + .run( + transaction -> { + transaction.executeUpdate(singerInsertStatementWithValues); + return null; + }); + SpannerException ex = + assertThrows( + SpannerException.class, + () -> + databaseClient + .readWriteTransaction() + .run( + transaction -> { + transaction.buffer( + Arrays.asList( + Mutation.newInsertBuilder("Concert") + .set("first_name") + .to(5L) + .set("singer_id") + .to(5L) + .build(), + Mutation.delete("Singer", Key.of(5L)))); + return null; + })); + } + + private DatabaseAdminClient getDatabaseAdminClient() { + return env.getTestHelper().getClient().getDatabaseAdminClient(); + } + + private DatabaseClient getCreatedDatabaseClient() { + if (dialect.dialect == Dialect.POSTGRESQL) { + return env.getTestHelper().getDatabaseClient(this.POSTGRESQL_DATABASE); + } + return env.getTestHelper().getDatabaseClient(this.GOOGLE_STANDARD_SQL_DATABASE); + } + + /** + * Returns '@p1, @p2, ..., @pNumParams' for GoogleSQL and $1, $2, ..., $NumParams' for PostgreSQL + * + * @param numParams + * @return + */ + private String generateQueryParameters(final int numParams) { + final List params; + if (dialect.dialect == Dialect.POSTGRESQL) { + params = + IntStream.range(1, numParams + 1) + .mapToObj(paramIndex -> "$" + paramIndex) + .collect(Collectors.toList()); + + } else { + params = + IntStream.range(1, numParams + 1) + .mapToObj(paramIndex -> "@p" + paramIndex) + .collect(Collectors.toList()); + } + if (params.size() == 1) { + return params.get(0); + } + return String.join(",", params); + } +} diff --git a/samples/snippets/src/main/java/com/example/spanner/AlterTableWithForeignKeyDeleteCascadeSample.java b/samples/snippets/src/main/java/com/example/spanner/AlterTableWithForeignKeyDeleteCascadeSample.java new file mode 100644 index 00000000000..1caf26fb289 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/spanner/AlterTableWithForeignKeyDeleteCascadeSample.java @@ -0,0 +1,59 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.spanner; + +// [START spanner_alter_table_with_foreign_key_delete_cascade] +import com.google.cloud.spanner.DatabaseAdminClient; +import com.google.cloud.spanner.Spanner; +import com.google.cloud.spanner.SpannerOptions; +import com.google.common.collect.ImmutableList; + +class AlterTableWithForeignKeyDeleteCascadeSample { + + static void alterForeignKeyDeleteCascadeConstraint() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "my-project"; + String instanceId = "my-instance"; + String databaseId = "my-database"; + + try (Spanner spanner = + SpannerOptions.newBuilder().setProjectId(projectId).build().getService()) { + DatabaseAdminClient adminClient = spanner.getDatabaseAdminClient(); + alterForeignKeyDeleteCascadeConstraint(adminClient, instanceId, databaseId); + } + } + + static void alterForeignKeyDeleteCascadeConstraint( + DatabaseAdminClient adminClient, String instanceId, String databaseId) { + adminClient.updateDatabaseDdl( + instanceId, + databaseId, + ImmutableList.of( + "ALTER TABLE ShoppingCarts\n" + + " ADD CONSTRAINT FKShoppingCartsCustomerName\n" + + " FOREIGN KEY (CustomerName)\n" + + " REFERENCES Customers(CustomerName)\n" + + " ON DELETE CASCADE\n"), + null); + System.out.printf( + String.format( + "Altered ShoppingCarts table with FKShoppingCartsCustomerName\n" + + "foreign key constraint on database %s on instance %s", + databaseId, instanceId)); + } +} +// [END spanner_alter_table_with_foreign_key_delete_cascade] diff --git a/samples/snippets/src/main/java/com/example/spanner/CreateTableWithForeignKeyDeleteCascadeSample.java b/samples/snippets/src/main/java/com/example/spanner/CreateTableWithForeignKeyDeleteCascadeSample.java new file mode 100644 index 00000000000..dda09591ee4 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/spanner/CreateTableWithForeignKeyDeleteCascadeSample.java @@ -0,0 +1,66 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.spanner; + +// [START spanner_create_table_with_foreign_key_delete_cascade] +import com.google.cloud.spanner.DatabaseAdminClient; +import com.google.cloud.spanner.Spanner; +import com.google.cloud.spanner.SpannerOptions; +import com.google.common.collect.ImmutableList; + +class CreateTableWithForeignKeyDeleteCascadeSample { + + static void createForeignKeyDeleteCascadeConstraint() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "my-project"; + String instanceId = "my-instance"; + String databaseId = "my-database"; + + try (Spanner spanner = + SpannerOptions.newBuilder().setProjectId(projectId).build().getService()) { + DatabaseAdminClient adminClient = spanner.getDatabaseAdminClient(); + createForeignKeyDeleteCascadeConstraint(adminClient, instanceId, databaseId); + } + } + + static void createForeignKeyDeleteCascadeConstraint( + DatabaseAdminClient adminClient, String instanceId, String databaseId) { + adminClient.updateDatabaseDdl( + instanceId, + databaseId, + ImmutableList.of( + "CREATE TABLE Customers (\n" + + " CustomerId INT64 NOT NULL,\n" + + " CustomerName STRING(62) NOT NULL,\n" + + " ) PRIMARY KEY (CustomerId)", + "CREATE TABLE ShoppingCarts (\n" + + " CartId INT64 NOT NULL,\n" + + " CustomerId INT64 NOT NULL,\n" + + " CustomerName STRING(62) NOT NULL,\n" + + " CONSTRAINT FKShoppingCartsCustomerId FOREIGN KEY (CustomerId)\n" + + " REFERENCES Customers (CustomerId) ON DELETE CASCADE\n" + + " ) PRIMARY KEY (CartId)\n"), + null); + + System.out.printf( + String.format( + "Created Customers and ShoppingCarts table with FKShoppingCartsCustomerId\n" + + "foreign key constraint on database %s on instance %s\n", + databaseId, instanceId)); + } +} +// [END spanner_create_table_with_foreign_key_delete_cascade] diff --git a/samples/snippets/src/main/java/com/example/spanner/DropForeignKeyConstraintDeleteCascadeSample.java b/samples/snippets/src/main/java/com/example/spanner/DropForeignKeyConstraintDeleteCascadeSample.java new file mode 100644 index 00000000000..13f39d129f7 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/spanner/DropForeignKeyConstraintDeleteCascadeSample.java @@ -0,0 +1,57 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.spanner; + +// [START spanner_drop_foreign_key_constraint_delete_cascade] +import com.google.cloud.spanner.DatabaseAdminClient; +import com.google.cloud.spanner.Spanner; +import com.google.cloud.spanner.SpannerOptions; +import com.google.common.collect.ImmutableList; + +class DropForeignKeyConstraintDeleteCascadeSample { + + static void deleteForeignKeyDeleteCascadeConstraint() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "my-project"; + String instanceId = "my-instance"; + String databaseId = "my-database"; + + try (Spanner spanner = + SpannerOptions.newBuilder().setProjectId(projectId).build().getService()) { + DatabaseAdminClient adminClient = spanner.getDatabaseAdminClient(); + deleteForeignKeyDeleteCascadeConstraint(adminClient, instanceId, databaseId); + } + } + + static void deleteForeignKeyDeleteCascadeConstraint( + DatabaseAdminClient adminClient, String instanceId, String databaseId) { + adminClient.updateDatabaseDdl( + instanceId, + databaseId, + ImmutableList.of( + "ALTER TABLE ShoppingCarts\n" + + " DROP CONSTRAINT FKShoppingCartsCustomerName\n"), + null); + + System.out.printf( + String.format( + "Altered ShoppingCarts table to drop FKShoppingCartsCustomerName\n" + + "foreign key constraint on database %s on instance %s\n", + databaseId, instanceId)); + } +} +// [END spanner_drop_foreign_key_constraint_delete_cascade] diff --git a/samples/snippets/src/test/java/com/example/spanner/AlterTableWithForeignKeyDeleteCascadeSampleIT.java b/samples/snippets/src/test/java/com/example/spanner/AlterTableWithForeignKeyDeleteCascadeSampleIT.java new file mode 100644 index 00000000000..f7194247585 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/spanner/AlterTableWithForeignKeyDeleteCascadeSampleIT.java @@ -0,0 +1,65 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.spanner; + +import static org.junit.Assert.assertTrue; + +import java.util.Arrays; +import java.util.concurrent.TimeUnit; +import org.junit.Test; + +public class AlterTableWithForeignKeyDeleteCascadeSampleIT extends SampleTestBase { + + @Test + public void testAlterTableWithForeignKeyDeleteCascade() throws Exception { + + // Creates database + final String databaseId = idGenerator.generateDatabaseId(); + databaseAdminClient + .createDatabase( + instanceId, + databaseId, + Arrays.asList( + "CREATE TABLE Customers (\n" + + " CustomerId INT64 NOT NULL,\n" + + " CustomerName STRING(62) NOT NULL,\n" + + " ) PRIMARY KEY (CustomerId)", + "CREATE TABLE ShoppingCarts (\n" + + " CartId INT64 NOT NULL,\n" + + " CustomerId INT64 NOT NULL,\n" + + " CustomerName STRING(62) NOT NULL,\n" + + " CONSTRAINT FKShoppingCartsCustomerId" + + " FOREIGN KEY (CustomerId)\n" + + " REFERENCES Customers (CustomerId)\n" + + " ) PRIMARY KEY (CartId)\n")) + .get(5, TimeUnit.MINUTES); + + // Runs sample + final String out = + SampleRunner.runSample( + () -> + AlterTableWithForeignKeyDeleteCascadeSample.alterForeignKeyDeleteCascadeConstraint( + databaseAdminClient, instanceId, databaseId)); + + assertTrue( + "Expected to have created database " + + databaseId + + " with tables containing " + + "foreign key constraints.", + out.contains("Altered ShoppingCarts table " + "with FKShoppingCartsCustomerName")); + } +} diff --git a/samples/snippets/src/test/java/com/example/spanner/CreateTableWithForeignKeyDeleteCascadeSampleIT.java b/samples/snippets/src/test/java/com/example/spanner/CreateTableWithForeignKeyDeleteCascadeSampleIT.java new file mode 100644 index 00000000000..b2dd6638cea --- /dev/null +++ b/samples/snippets/src/test/java/com/example/spanner/CreateTableWithForeignKeyDeleteCascadeSampleIT.java @@ -0,0 +1,52 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.spanner; + +import static org.junit.Assert.assertTrue; + +import java.util.Arrays; +import java.util.concurrent.TimeUnit; +import org.junit.Test; + +public class CreateTableWithForeignKeyDeleteCascadeSampleIT extends SampleTestBase { + + @Test + public void testCreateTableWithForeignKeyDeleteCascade() throws Exception { + + // Creates database + final String databaseId = idGenerator.generateDatabaseId(); + databaseAdminClient + .createDatabase(instanceId, databaseId, Arrays.asList()) + .get(5, TimeUnit.MINUTES); + + // Runs sample + final String out = + SampleRunner.runSample( + () -> + CreateTableWithForeignKeyDeleteCascadeSample + .createForeignKeyDeleteCascadeConstraint( + databaseAdminClient, instanceId, databaseId)); + + assertTrue( + "Expected to have created database " + + databaseId + + " with tables containing " + + "foreign key constraints.", + out.contains( + "Created Customers and ShoppingCarts table " + "with FKShoppingCartsCustomerId")); + } +} diff --git a/samples/snippets/src/test/java/com/example/spanner/DropForeignKeyConstraintDeleteCascadeSampleIT.java b/samples/snippets/src/test/java/com/example/spanner/DropForeignKeyConstraintDeleteCascadeSampleIT.java new file mode 100644 index 00000000000..1c58daded18 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/spanner/DropForeignKeyConstraintDeleteCascadeSampleIT.java @@ -0,0 +1,63 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.spanner; + +import static org.junit.Assert.assertTrue; + +import java.util.Arrays; +import java.util.concurrent.TimeUnit; +import org.junit.Test; + +public class DropForeignKeyConstraintDeleteCascadeSampleIT extends SampleTestBase { + + @Test + public void testDropForeignKeyConstraintDeleteCascade() throws Exception { + + // Creates database + final String databaseId = idGenerator.generateDatabaseId(); + databaseAdminClient + .createDatabase( + instanceId, + databaseId, + Arrays.asList( + "CREATE TABLE Customers (\n" + + " CustomerId INT64 NOT NULL,\n" + + " CustomerName STRING(62) NOT NULL,\n" + + " ) PRIMARY KEY (CustomerId)", + "CREATE TABLE ShoppingCarts (\n" + + " CartId INT64 NOT NULL,\n" + + " CustomerId INT64 NOT NULL,\n" + + " CustomerName STRING(62) NOT NULL,\n" + + " CONSTRAINT FKShoppingCartsCustomerName" + + " FOREIGN KEY (CustomerName)\n" + + " REFERENCES Customers (CustomerName) ON DELETE CASCADE\n" + + " ) PRIMARY KEY (CartId)\n")) + .get(5, TimeUnit.MINUTES); + + // Runs sample + final String out = + SampleRunner.runSample( + () -> + DropForeignKeyConstraintDeleteCascadeSample.deleteForeignKeyDeleteCascadeConstraint( + databaseAdminClient, instanceId, databaseId)); + + assertTrue( + "Expected to have dropped foreign-key constraints from tables in created database " + + databaseId, + out.contains("Altered ShoppingCarts table to drop FKShoppingCartsCustomerName")); + } +} diff --git a/samples/snippets/src/test/java/com/example/spanner/SampleTestBase.java b/samples/snippets/src/test/java/com/example/spanner/SampleTestBase.java index 47c6f4f0230..39424c8d080 100644 --- a/samples/snippets/src/test/java/com/example/spanner/SampleTestBase.java +++ b/samples/snippets/src/test/java/com/example/spanner/SampleTestBase.java @@ -44,10 +44,14 @@ public class SampleTestBase { @BeforeClass public static void beforeClass() { - final SpannerOptions options = SpannerOptions + final String serverUrl = ""; + final SpannerOptions.Builder optionsBuilder = SpannerOptions .newBuilder() - .setAutoThrottleAdministrativeRequests() - .build(); + .setAutoThrottleAdministrativeRequests(); + if (!serverUrl.isEmpty()) { + optionsBuilder.setHost(serverUrl); + } + final SpannerOptions options = optionsBuilder.build(); projectId = options.getProjectId(); spanner = options.getService(); databaseAdminClient = spanner.getDatabaseAdminClient(); From 9a6d3fcbaa8d44f2e08407252a69beca1e4525b1 Mon Sep 17 00:00:00 2001 From: Arpan Mishra Date: Tue, 18 Jul 2023 14:34:12 +0530 Subject: [PATCH 07/22] fix: add imports used in sample files. (#2532) Local compilation is failing due to missing imports. The change adds the missing imports for integration test file. We would separately be investigating why these compilation issues were not detected earlier. --- .../test/java/com/example/spanner/UpdateDatabaseSampleIT.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/samples/snippets/src/test/java/com/example/spanner/UpdateDatabaseSampleIT.java b/samples/snippets/src/test/java/com/example/spanner/UpdateDatabaseSampleIT.java index 3bee78b7871..30ad8eec6a2 100644 --- a/samples/snippets/src/test/java/com/example/spanner/UpdateDatabaseSampleIT.java +++ b/samples/snippets/src/test/java/com/example/spanner/UpdateDatabaseSampleIT.java @@ -20,6 +20,8 @@ import static org.junit.Assert.assertTrue; import com.google.api.gax.longrunning.OperationFuture; +import com.google.cloud.spanner.Database; +import com.google.cloud.spanner.DatabaseId; import com.google.cloud.spanner.DatabaseInfo.DatabaseField; import com.google.spanner.admin.database.v1.UpdateDatabaseMetadata; import java.util.Collections; From 0806b116cc6650b353cee26c83929e7bcdcb1c34 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 19 Jul 2023 10:35:36 +0200 Subject: [PATCH 08/22] deps: update dependency org.graalvm.sdk:graal-sdk to v22.3.3 (#2533) --- google-cloud-spanner/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml index e6529fb3182..e5af6949771 100644 --- a/google-cloud-spanner/pom.xml +++ b/google-cloud-spanner/pom.xml @@ -16,7 +16,7 @@ google-cloud-spanner 0.31.1 - 22.3.2 + 22.3.3 com.google.cloud.spanner.GceTestEnvConfig projects/gcloud-devel/instances/spanner-testing-east1 gcloud-devel From c54faf9f080a90d1ee64a256f5d941c6d84dbb72 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 19 Jul 2023 10:38:20 +0200 Subject: [PATCH 09/22] chore(deps): update dependency com.google.cloud:libraries-bom to v26.19.0 (#2534) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.19.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/native-image/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f1aa6d81faa..39db1ddc54f 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file: com.google.cloud libraries-bom - 26.18.0 + 26.19.0 pom import @@ -50,7 +50,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.18.0') +implementation platform('com.google.cloud:libraries-bom:26.19.0') implementation 'com.google.cloud:google-cloud-spanner' ``` diff --git a/samples/native-image/pom.xml b/samples/native-image/pom.xml index 247161eb147..fa85123985f 100644 --- a/samples/native-image/pom.xml +++ b/samples/native-image/pom.xml @@ -28,7 +28,7 @@ com.google.cloud libraries-bom - 26.18.0 + 26.19.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6e503485456..f38c9988c2d 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -33,7 +33,7 @@ com.google.cloud libraries-bom - 26.18.0 + 26.19.0 pom import From b14ee87fea695974ad72168be437e64834289ab6 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 21 Jul 2023 09:30:46 +0530 Subject: [PATCH 10/22] ci: javadoc job (JDK 17) in ci.yaml (#1819) (#2515) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ci: javadoc job (JDK 17) in ci.yaml (#1819) This also changes the JDK distribution from zulu to temurin https://github.com/actions/setup-java#eclipse-temurin Source-Link: https://github.com/googleapis/synthtool/commit/ef9fe2ef6d92c7ff967d9d4f704035b3f5c9051d Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:31c8276a1bfb43766597d32645721c029cb94571f1b8d996cb2c290744fe52f9 * temurin * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Tomo Suzuki --- .github/.OwlBot.lock.yaml | 4 +-- .github/workflows/ci.yaml | 28 +++++++++++++------ .../integration-tests-against-emulator.yaml | 4 +-- .github/workflows/samples.yaml | 6 ++-- 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 47a70ea40cf..258389d1aa6 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:32851debfefed2b66038e0141f1b5c2103bb59ba80b7475adbc10ef7abab3de7 -# created: 2023-06-22T15:06:52.039318836Z + digest: sha256:31c8276a1bfb43766597d32645721c029cb94571f1b8d996cb2c290744fe52f9 +# created: 2023-06-27T18:51:58.922150125Z diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7c5a0181129..44801b1f9f5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -30,7 +30,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - distribution: zulu + distribution: temurin java-version: ${{matrix.java}} - run: java -version - run: .kokoro/build.sh @@ -45,13 +45,13 @@ jobs: - uses: actions/setup-java@v3 with: java-version: 8 - distribution: zulu + distribution: temurin - run: echo "SUREFIRE_JVM_OPT=-Djvm=${JAVA_HOME}/bin/java" >> $GITHUB_ENV shell: bash - uses: actions/setup-java@v3 with: java-version: 17 - distribution: zulu + distribution: temurin - run: .kokoro/build.sh env: JOB_TYPE: test @@ -62,13 +62,13 @@ jobs: - uses: actions/setup-java@v3 with: java-version: 8 - distribution: zulu + distribution: temurin - run: echo "JAVA8_HOME=${JAVA_HOME}" >> $GITHUB_ENV shell: bash - uses: actions/setup-java@v3 with: java-version: 11 - distribution: zulu + distribution: temurin - run: echo "JAVA11_HOME=${JAVA_HOME}" >> $GITHUB_ENV shell: bash - run: java -version @@ -84,17 +84,29 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - distribution: zulu + distribution: temurin java-version: ${{matrix.java}} - run: java -version - run: .kokoro/dependencies.sh + javadoc: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: 17 + - run: java -version + - run: .kokoro/build.sh + env: + JOB_TYPE: javadoc lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - distribution: zulu + distribution: temurin java-version: 17 - run: java -version - run: .kokoro/build.sh @@ -106,7 +118,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - distribution: zulu + distribution: temurin java-version: 17 - run: java -version - run: .kokoro/build.sh diff --git a/.github/workflows/integration-tests-against-emulator.yaml b/.github/workflows/integration-tests-against-emulator.yaml index 71fbdc4bbf4..c7918cdd0f7 100644 --- a/.github/workflows/integration-tests-against-emulator.yaml +++ b/.github/workflows/integration-tests-against-emulator.yaml @@ -24,13 +24,13 @@ jobs: - uses: actions/setup-java@v3 with: java-version: 11 - distribution: zulu + distribution: temurin - name: Compiling main library run: .kokoro/build.sh - uses: actions/setup-java@v3 with: java-version: 8 - distribution: zulu + distribution: temurin - name: Running tests run: | mvn -V -B -Dspanner.testenv.instance="" -Penable-integration-tests \ diff --git a/.github/workflows/samples.yaml b/.github/workflows/samples.yaml index 8bc427d1eee..5bfeb995425 100644 --- a/.github/workflows/samples.yaml +++ b/.github/workflows/samples.yaml @@ -21,13 +21,13 @@ jobs: with: # Java 11 to generate class file targeting Java 8 java-version: 11 - distribution: zulu + distribution: temurin - name: Compile Spanner run: mvn clean install -Dclirr.skip=true - uses: actions/setup-java@v3 with: java-version: 8 - distribution: zulu + distribution: temurin - name: Compile samples run: mvn compile working-directory: samples @@ -42,7 +42,7 @@ jobs: - uses: actions/setup-java@v3 with: java-version: ${{matrix.java}} - distribution: zulu + distribution: temurin - name: Compile Spanner run: mvn clean install -Dclirr.skip=true - name: Compile samples From ec32f43454a86f7f90a10c1a35e7db30c8dcb713 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 21 Jul 2023 11:24:01 +0200 Subject: [PATCH 11/22] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.7 (#2535) --- google-cloud-spanner-bom/pom.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-spanner-bom/pom.xml b/google-cloud-spanner-bom/pom.xml index 4300c4fdac8..0787b5199f4 100644 --- a/google-cloud-spanner-bom/pom.xml +++ b/google-cloud-spanner-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud google-cloud-shared-config - 1.5.6 + 1.5.7 Google Cloud Spanner BOM diff --git a/pom.xml b/pom.xml index 80105f2f282..cc8c0e80407 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.5.6 + 1.5.7 From 55c93acfeb8c2a6e5cc2f99ca20d0b72fbe6f8a4 Mon Sep 17 00:00:00 2001 From: Yifan Zhou <119901292+yifanzyifanz@users.noreply.github.com> Date: Fri, 21 Jul 2023 02:44:13 -0700 Subject: [PATCH 12/22] feat: Enable leader aware routing by default (#2538) BEGIN_COMMIT_OVERRIDE feat: Enable leader aware routing by default. This update contains performance optimisations that will reduce the latency of read/write transactions that originate from a region other than the default leader region. END_COMMIT_OVERRIDE --- .../src/main/java/com/google/cloud/spanner/SpannerOptions.java | 2 +- .../test/java/com/google/cloud/spanner/SpannerOptionsTest.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java index 33fa826bfec..063ef8af4cf 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java @@ -702,7 +702,7 @@ public static class Builder private CloseableExecutorProvider asyncExecutorProvider; private String compressorName; private String emulatorHost = System.getenv("SPANNER_EMULATOR_HOST"); - private boolean leaderAwareRoutingEnabled = false; + private boolean leaderAwareRoutingEnabled = true; private Builder() { // Manually set retry and polling settings that work. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerOptionsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerOptionsTest.java index 03844a6b105..7061e255758 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerOptionsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerOptionsTest.java @@ -680,8 +680,7 @@ public void testCompressorName() { @Test public void testLeaderAwareRoutingEnablement() { - assertFalse( - SpannerOptions.newBuilder().setProjectId("p").build().isLeaderAwareRoutingEnabled()); + assertTrue(SpannerOptions.newBuilder().setProjectId("p").build().isLeaderAwareRoutingEnabled()); assertTrue( SpannerOptions.newBuilder() .setProjectId("p") From a72ce86e5090ffd7f168f358cb8a2108d2d2798e Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 21 Jul 2023 21:40:52 +0530 Subject: [PATCH 13/22] chore: Update the Java code generator (gapic-generator-java) to 2.23.1 (#2464) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: upgrading protobuf to 23.2 for code generation PiperOrigin-RevId: 537035741 Source-Link: https://github.com/googleapis/googleapis/commit/640f7439448629156b3ff30adc0332cc8b7ce52c Source-Link: https://github.com/googleapis/googleapis-gen/commit/5ec02ed2022878f99c94c763060ff6a018896b6e Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNWVjMDJlZDIwMjI4NzhmOTljOTRjNzYzMDYwZmY2YTAxODg5NmI2ZSJ9 feat(spanner): add DdlStatementActionInfo and add actions to UpdateDatabaseDdlMetadata PiperOrigin-RevId: 536483675 Source-Link: https://github.com/googleapis/googleapis/commit/9b1c2530092fb47ebdfdc8bf88060282a5ca71c9 Source-Link: https://github.com/googleapis/googleapis-gen/commit/b90140645d4e1cfa7b56f6083a43cfdd872558ba Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYjkwMTQwNjQ1ZDRlMWNmYTdiNTZmNjA4M2E0M2NmZGQ4NzI1NThiYSJ9 chore: upgrading Protobuf to 23.1 and gRPC to 1.55.0 in code generation PiperOrigin-RevId: 534084593 Source-Link: https://github.com/googleapis/googleapis/commit/aa4559a97f79225fc57c9f70b5f84fe620e8292e Source-Link: https://github.com/googleapis/googleapis-gen/commit/370325af8236732f5885f5940e0ef481fee83003 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMzcwMzI1YWY4MjM2NzMyZjU4ODVmNTk0MGUwZWY0ODFmZWU4MzAwMyJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore(deps): Update gapic-generator-java to 2.21.0 PiperOrigin-RevId: 538365689 Source-Link: https://github.com/googleapis/googleapis/commit/7ac8a2479bd197e4d7533e1ae9bf1877823f0c26 Source-Link: https://github.com/googleapis/googleapis-gen/commit/e58eedb75d3c07878097cdfbfd3ffdb7646763a3 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiZTU4ZWVkYjc1ZDNjMDc4NzgwOTdjZGZiZmQzZmZkYjc2NDY3NjNhMyJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: Update the Java code generator (gapic-generator-java) to 2.23.1 PiperOrigin-RevId: 549674836 Source-Link: https://github.com/googleapis/googleapis/commit/3b7a12146fed6cb648046439a2dad0b3ad56d202 Source-Link: https://github.com/googleapis/googleapis-gen/commit/2d643a4eff8c8ef4c9d5a2e59d2a0ca7c991eab6 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMmQ2NDNhNGVmZjhjOGVmNGM5ZDVhMmU1OWQyYTBjYTdjOTkxZWFiNiJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../database/v1/DatabaseAdminClient.java | 2 +- .../database/v1/DatabaseAdminSettings.java | 2 +- .../admin/database/v1/package-info.java | 2 +- .../database/v1/stub/DatabaseAdminStub.java | 2 +- .../v1/stub/DatabaseAdminStubSettings.java | 2 +- .../GrpcDatabaseAdminCallableFactory.java | 2 +- .../v1/stub/GrpcDatabaseAdminStub.java | 124 +- .../HttpJsonDatabaseAdminCallableFactory.java | 2 +- .../v1/stub/HttpJsonDatabaseAdminStub.java | 123 +- .../instance/v1/InstanceAdminClient.java | 2 +- .../instance/v1/InstanceAdminSettings.java | 2 +- .../admin/instance/v1/package-info.java | 2 +- .../GrpcInstanceAdminCallableFactory.java | 2 +- .../v1/stub/GrpcInstanceAdminStub.java | 88 +- .../HttpJsonInstanceAdminCallableFactory.java | 2 +- .../v1/stub/HttpJsonInstanceAdminStub.java | 89 +- .../instance/v1/stub/InstanceAdminStub.java | 2 +- .../v1/stub/InstanceAdminStubSettings.java | 2 +- .../cloud/spanner/v1/SpannerClient.java | 2 +- .../cloud/spanner/v1/SpannerSettings.java | 2 +- .../google/cloud/spanner/v1/package-info.java | 2 +- .../v1/stub/GrpcSpannerCallableFactory.java | 2 +- .../spanner/v1/stub/GrpcSpannerStub.java | 94 +- .../stub/HttpJsonSpannerCallableFactory.java | 2 +- .../spanner/v1/stub/HttpJsonSpannerStub.java | 93 +- .../cloud/spanner/v1/stub/SpannerStub.java | 2 +- .../spanner/v1/stub/SpannerStubSettings.java | 2 +- .../reflect-config.json | 2315 +++++++++++++++++ .../reflect-config.json | 1919 ++++++++++++++ .../reflect-config.json | 2027 +++++++++++++++ .../v1/DatabaseAdminClientHttpJsonTest.java | 2 +- .../database/v1/DatabaseAdminClientTest.java | 2 +- .../admin/database/v1/MockDatabaseAdmin.java | 2 +- .../database/v1/MockDatabaseAdminImpl.java | 2 +- .../v1/InstanceAdminClientHttpJsonTest.java | 2 +- .../instance/v1/InstanceAdminClientTest.java | 2 +- .../admin/instance/v1/MockInstanceAdmin.java | 2 +- .../instance/v1/MockInstanceAdminImpl.java | 2 +- .../google/cloud/spanner/v1/MockSpanner.java | 2 +- .../cloud/spanner/v1/MockSpannerImpl.java | 2 +- .../spanner/v1/SpannerClientHttpJsonTest.java | 2 +- .../cloud/spanner/v1/SpannerClientTest.java | 2 +- .../spanner/admin/database/v1/Backup.java | 97 +- .../spanner/admin/database/v1/BackupInfo.java | 5 - .../spanner/admin/database/v1/BackupName.java | 2 +- .../admin/database/v1/BackupOrBuilder.java | 4 + .../admin/database/v1/BackupProto.java | 190 +- .../admin/database/v1/CommonProto.java | 49 +- .../v1/CopyBackupEncryptionConfig.java | 5 - .../admin/database/v1/CopyBackupMetadata.java | 5 - .../admin/database/v1/CopyBackupRequest.java | 5 - .../v1/CreateBackupEncryptionConfig.java | 5 - .../database/v1/CreateBackupMetadata.java | 5 - .../database/v1/CreateBackupRequest.java | 5 - .../database/v1/CreateDatabaseMetadata.java | 5 - .../database/v1/CreateDatabaseRequest.java | 47 +- .../spanner/admin/database/v1/Database.java | 60 +- .../admin/database/v1/DatabaseName.java | 2 +- .../admin/database/v1/DatabaseOrBuilder.java | 12 + .../admin/database/v1/DatabaseRole.java | 5 - .../database/v1/DdlStatementActionInfo.java | 1161 +++++++++ .../v1/DdlStatementActionInfoOrBuilder.java | 148 ++ .../database/v1/DeleteBackupRequest.java | 5 - .../database/v1/DropDatabaseRequest.java | 5 - .../admin/database/v1/EncryptionConfig.java | 5 - .../admin/database/v1/EncryptionInfo.java | 5 - .../admin/database/v1/GetBackupRequest.java | 5 - .../database/v1/GetDatabaseDdlRequest.java | 5 - .../database/v1/GetDatabaseDdlResponse.java | 47 +- .../admin/database/v1/GetDatabaseRequest.java | 5 - .../admin/database/v1/InstanceName.java | 2 +- .../v1/ListBackupOperationsRequest.java | 47 +- .../ListBackupOperationsRequestOrBuilder.java | 12 + .../v1/ListBackupOperationsResponse.java | 5 - .../admin/database/v1/ListBackupsRequest.java | 47 +- .../v1/ListBackupsRequestOrBuilder.java | 12 + .../database/v1/ListBackupsResponse.java | 5 - .../v1/ListDatabaseOperationsRequest.java | 47 +- ...istDatabaseOperationsRequestOrBuilder.java | 12 + .../v1/ListDatabaseOperationsResponse.java | 5 - .../database/v1/ListDatabaseRolesRequest.java | 5 - .../v1/ListDatabaseRolesResponse.java | 5 - .../database/v1/ListDatabasesRequest.java | 5 - .../database/v1/ListDatabasesResponse.java | 5 - .../admin/database/v1/OperationProgress.java | 5 - .../v1/OptimizeRestoredDatabaseMetadata.java | 5 - .../v1/RestoreDatabaseEncryptionConfig.java | 5 - .../database/v1/RestoreDatabaseMetadata.java | 7 +- .../v1/RestoreDatabaseMetadataOrBuilder.java | 3 +- .../database/v1/RestoreDatabaseRequest.java | 7 +- .../v1/RestoreDatabaseRequestOrBuilder.java | 2 +- .../admin/database/v1/RestoreInfo.java | 7 +- .../database/v1/RestoreInfoOrBuilder.java | 2 +- .../v1/SpannerDatabaseAdminProto.java | 528 ++-- .../database/v1/UpdateBackupRequest.java | 5 - .../v1/UpdateDatabaseDdlMetadata.java | 880 +++++-- .../UpdateDatabaseDdlMetadataOrBuilder.java | 125 +- .../database/v1/UpdateDatabaseDdlRequest.java | 63 +- .../v1/UpdateDatabaseDdlRequestOrBuilder.java | 4 + .../database/v1/UpdateDatabaseMetadata.java | 5 - .../database/v1/UpdateDatabaseRequest.java | 5 - .../database/v1/spanner_database_admin.proto | 40 +- .../v1/CreateInstanceConfigMetadata.java | 5 - .../v1/CreateInstanceConfigRequest.java | 5 - .../instance/v1/CreateInstanceMetadata.java | 5 - .../instance/v1/CreateInstanceRequest.java | 5 - .../v1/DeleteInstanceConfigRequest.java | 5 - .../instance/v1/DeleteInstanceRequest.java | 5 - .../instance/v1/GetInstanceConfigRequest.java | 5 - .../admin/instance/v1/GetInstanceRequest.java | 5 - .../spanner/admin/instance/v1/Instance.java | 87 +- .../admin/instance/v1/InstanceConfig.java | 75 +- .../admin/instance/v1/InstanceConfigName.java | 2 +- .../instance/v1/InstanceConfigOrBuilder.java | 15 + .../admin/instance/v1/InstanceName.java | 2 +- .../admin/instance/v1/InstanceOrBuilder.java | 17 + .../ListInstanceConfigOperationsRequest.java | 47 +- ...tanceConfigOperationsRequestOrBuilder.java | 12 + .../ListInstanceConfigOperationsResponse.java | 5 - .../v1/ListInstanceConfigsRequest.java | 5 - .../v1/ListInstanceConfigsResponse.java | 5 - .../instance/v1/ListInstancesRequest.java | 26 +- .../v1/ListInstancesRequestOrBuilder.java | 6 + .../instance/v1/ListInstancesResponse.java | 5 - .../admin/instance/v1/OperationProgress.java | 5 - .../admin/instance/v1/ProjectName.java | 2 +- .../admin/instance/v1/ReplicaInfo.java | 11 +- .../v1/SpannerInstanceAdminProto.java | 379 +-- .../v1/UpdateInstanceConfigMetadata.java | 5 - .../v1/UpdateInstanceConfigRequest.java | 5 - .../instance/v1/UpdateInstanceMetadata.java | 5 - .../instance/v1/UpdateInstanceRequest.java | 5 - .../v1/BatchCreateSessionsRequest.java | 5 - .../v1/BatchCreateSessionsResponse.java | 5 - .../spanner/v1/BeginTransactionRequest.java | 5 - .../com/google/spanner/v1/CommitRequest.java | 7 +- .../spanner/v1/CommitRequestOrBuilder.java | 2 +- .../com/google/spanner/v1/CommitResponse.java | 10 - .../spanner/v1/CreateSessionRequest.java | 5 - .../com/google/spanner/v1/DatabaseName.java | 2 +- .../spanner/v1/DeleteSessionRequest.java | 5 - .../spanner/v1/ExecuteBatchDmlRequest.java | 125 +- .../v1/ExecuteBatchDmlRequestOrBuilder.java | 9 + .../spanner/v1/ExecuteBatchDmlResponse.java | 40 +- .../v1/ExecuteBatchDmlResponseOrBuilder.java | 5 + .../google/spanner/v1/ExecuteSqlRequest.java | 225 +- .../v1/ExecuteSqlRequestOrBuilder.java | 29 + .../google/spanner/v1/GetSessionRequest.java | 5 - .../java/com/google/spanner/v1/KeyRange.java | 63 +- .../google/spanner/v1/KeyRangeOrBuilder.java | 4 +- .../java/com/google/spanner/v1/KeySet.java | 7 +- .../spanner/v1/ListSessionsRequest.java | 26 +- .../v1/ListSessionsRequestOrBuilder.java | 6 + .../spanner/v1/ListSessionsResponse.java | 5 - .../java/com/google/spanner/v1/Mutation.java | 95 +- .../google/spanner/v1/MutationOrBuilder.java | 8 +- .../com/google/spanner/v1/MutationProto.java | 24 +- .../google/spanner/v1/PartialResultSet.java | 327 ++- .../spanner/v1/PartialResultSetOrBuilder.java | 70 + .../java/com/google/spanner/v1/Partition.java | 5 - .../google/spanner/v1/PartitionOptions.java | 13 +- .../spanner/v1/PartitionOptionsOrBuilder.java | 2 + .../spanner/v1/PartitionQueryRequest.java | 71 +- .../v1/PartitionQueryRequestOrBuilder.java | 19 + .../spanner/v1/PartitionReadRequest.java | 58 +- .../v1/PartitionReadRequestOrBuilder.java | 3 + .../google/spanner/v1/PartitionResponse.java | 5 - .../java/com/google/spanner/v1/PlanNode.java | 27 +- .../google/spanner/v1/PlanNodeOrBuilder.java | 3 + .../java/com/google/spanner/v1/QueryPlan.java | 5 - .../com/google/spanner/v1/ReadRequest.java | 74 +- .../spanner/v1/ReadRequestOrBuilder.java | 7 + .../com/google/spanner/v1/RequestOptions.java | 7 +- .../java/com/google/spanner/v1/ResultSet.java | 5 - .../google/spanner/v1/ResultSetMetadata.java | 29 +- .../v1/ResultSetMetadataOrBuilder.java | 6 + .../com/google/spanner/v1/ResultSetStats.java | 19 +- .../spanner/v1/ResultSetStatsOrBuilder.java | 5 +- .../google/spanner/v1/RollbackRequest.java | 5 - .../java/com/google/spanner/v1/Session.java | 27 +- .../com/google/spanner/v1/SessionName.java | 2 +- .../google/spanner/v1/SessionOrBuilder.java | 10 + .../com/google/spanner/v1/SpannerProto.java | 399 +-- .../com/google/spanner/v1/StructType.java | 10 - .../com/google/spanner/v1/Transaction.java | 21 +- .../google/spanner/v1/TransactionOptions.java | 342 ++- .../v1/TransactionOptionsOrBuilder.java | 11 +- .../spanner/v1/TransactionOrBuilder.java | 4 + .../spanner/v1/TransactionSelector.java | 9 +- .../v1/TransactionSelectorOrBuilder.java | 2 +- .../main/java/com/google/spanner/v1/Type.java | 5 - .../java/com/google/spanner/v1/TypeCode.java | 7 + .../java/com/google/spanner/v1/TypeProto.java | 40 +- 193 files changed, 11920 insertions(+), 1971 deletions(-) create mode 100644 google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.admin.database.v1/reflect-config.json create mode 100644 google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.admin.instance.v1/reflect-config.json create mode 100644 google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.v1/reflect-config.json create mode 100644 proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfo.java create mode 100644 proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfoOrBuilder.java diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminClient.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminClient.java index d7bfbec1178..2cc03907b7b 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminClient.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminSettings.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminSettings.java index 357efd0042c..01a82a54712 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminSettings.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/package-info.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/package-info.java index f89d6b56ed0..d898df2e6a7 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/package-info.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/DatabaseAdminStub.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/DatabaseAdminStub.java index 3cebe17a2d0..0e85c8127d7 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/DatabaseAdminStub.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/DatabaseAdminStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/DatabaseAdminStubSettings.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/DatabaseAdminStubSettings.java index 7f60dcc14a1..0697aaf54f5 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/DatabaseAdminStubSettings.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/DatabaseAdminStubSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/GrpcDatabaseAdminCallableFactory.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/GrpcDatabaseAdminCallableFactory.java index eaec711af7c..6438decf4e5 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/GrpcDatabaseAdminCallableFactory.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/GrpcDatabaseAdminCallableFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/GrpcDatabaseAdminStub.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/GrpcDatabaseAdminStub.java index 97c318b0562..5a267d5a5d1 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/GrpcDatabaseAdminStub.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/GrpcDatabaseAdminStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,8 +28,8 @@ import com.google.api.gax.grpc.GrpcStubCallableFactory; import com.google.api.gax.rpc.ClientContext; import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.RequestParamsBuilder; import com.google.api.gax.rpc.UnaryCallable; -import com.google.common.collect.ImmutableMap; import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.Policy; import com.google.iam.v1.SetIamPolicyRequest; @@ -371,9 +371,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(listDatabasesMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings createDatabaseTransportSettings = @@ -381,9 +381,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(createDatabaseMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings getDatabaseTransportSettings = @@ -391,9 +391,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(getDatabaseMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("name", String.valueOf(request.getName())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); }) .build(); GrpcCallSettings updateDatabaseTransportSettings = @@ -401,9 +401,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(updateDatabaseMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("database.name", String.valueOf(request.getDatabase().getName())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database.name", String.valueOf(request.getDatabase().getName())); + return builder.build(); }) .build(); GrpcCallSettings updateDatabaseDdlTransportSettings = @@ -411,9 +411,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(updateDatabaseDdlMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("database", String.valueOf(request.getDatabase())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database", String.valueOf(request.getDatabase())); + return builder.build(); }) .build(); GrpcCallSettings dropDatabaseTransportSettings = @@ -421,9 +421,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(dropDatabaseMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("database", String.valueOf(request.getDatabase())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database", String.valueOf(request.getDatabase())); + return builder.build(); }) .build(); GrpcCallSettings @@ -432,9 +432,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(getDatabaseDdlMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("database", String.valueOf(request.getDatabase())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database", String.valueOf(request.getDatabase())); + return builder.build(); }) .build(); GrpcCallSettings setIamPolicyTransportSettings = @@ -442,9 +442,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(setIamPolicyMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("resource", String.valueOf(request.getResource())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("resource", String.valueOf(request.getResource())); + return builder.build(); }) .build(); GrpcCallSettings getIamPolicyTransportSettings = @@ -452,9 +452,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(getIamPolicyMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("resource", String.valueOf(request.getResource())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("resource", String.valueOf(request.getResource())); + return builder.build(); }) .build(); GrpcCallSettings @@ -463,9 +463,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(testIamPermissionsMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("resource", String.valueOf(request.getResource())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("resource", String.valueOf(request.getResource())); + return builder.build(); }) .build(); GrpcCallSettings createBackupTransportSettings = @@ -473,9 +473,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(createBackupMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings copyBackupTransportSettings = @@ -483,9 +483,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(copyBackupMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings getBackupTransportSettings = @@ -493,9 +493,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(getBackupMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("name", String.valueOf(request.getName())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); }) .build(); GrpcCallSettings updateBackupTransportSettings = @@ -503,9 +503,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(updateBackupMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("backup.name", String.valueOf(request.getBackup().getName())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("backup.name", String.valueOf(request.getBackup().getName())); + return builder.build(); }) .build(); GrpcCallSettings deleteBackupTransportSettings = @@ -513,9 +513,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(deleteBackupMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("name", String.valueOf(request.getName())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); }) .build(); GrpcCallSettings listBackupsTransportSettings = @@ -523,9 +523,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(listBackupsMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings restoreDatabaseTransportSettings = @@ -533,9 +533,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(restoreDatabaseMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings @@ -545,9 +545,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(listDatabaseOperationsMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings @@ -556,9 +556,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(listBackupOperationsMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings @@ -567,9 +567,9 @@ protected GrpcDatabaseAdminStub( .setMethodDescriptor(listDatabaseRolesMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/HttpJsonDatabaseAdminCallableFactory.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/HttpJsonDatabaseAdminCallableFactory.java index e443d8f614b..25be54f9537 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/HttpJsonDatabaseAdminCallableFactory.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/HttpJsonDatabaseAdminCallableFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/HttpJsonDatabaseAdminStub.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/HttpJsonDatabaseAdminStub.java index 12065de983a..d99345bc9de 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/HttpJsonDatabaseAdminStub.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/database/v1/stub/HttpJsonDatabaseAdminStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,6 +37,7 @@ import com.google.api.gax.httpjson.longrunning.stub.HttpJsonOperationsStub; import com.google.api.gax.rpc.ClientContext; import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.RequestParamsBuilder; import com.google.api.gax.rpc.UnaryCallable; import com.google.common.collect.ImmutableMap; import com.google.iam.v1.GetIamPolicyRequest; @@ -1043,88 +1044,190 @@ protected HttpJsonDatabaseAdminStub( HttpJsonCallSettings.newBuilder() .setMethodDescriptor(listDatabasesMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings createDatabaseTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(createDatabaseMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings getDatabaseTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(getDatabaseMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings updateDatabaseTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(updateDatabaseMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database.name", String.valueOf(request.getDatabase().getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings updateDatabaseDdlTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(updateDatabaseDdlMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database", String.valueOf(request.getDatabase())); + return builder.build(); + }) .build(); HttpJsonCallSettings dropDatabaseTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(dropDatabaseMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database", String.valueOf(request.getDatabase())); + return builder.build(); + }) .build(); HttpJsonCallSettings getDatabaseDdlTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(getDatabaseDdlMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database", String.valueOf(request.getDatabase())); + return builder.build(); + }) .build(); HttpJsonCallSettings setIamPolicyTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(setIamPolicyMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("resource", String.valueOf(request.getResource())); + return builder.build(); + }) .build(); HttpJsonCallSettings getIamPolicyTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(getIamPolicyMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("resource", String.valueOf(request.getResource())); + return builder.build(); + }) .build(); HttpJsonCallSettings testIamPermissionsTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(testIamPermissionsMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("resource", String.valueOf(request.getResource())); + return builder.build(); + }) .build(); HttpJsonCallSettings createBackupTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(createBackupMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings copyBackupTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(copyBackupMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings getBackupTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(getBackupMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings updateBackupTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(updateBackupMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("backup.name", String.valueOf(request.getBackup().getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings deleteBackupTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(deleteBackupMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings listBackupsTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(listBackupsMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings restoreDatabaseTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(restoreDatabaseMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings listDatabaseOperationsTransportSettings = @@ -1132,6 +1235,12 @@ protected HttpJsonDatabaseAdminStub( .newBuilder() .setMethodDescriptor(listDatabaseOperationsMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings listBackupOperationsTransportSettings = @@ -1139,12 +1248,24 @@ protected HttpJsonDatabaseAdminStub( .newBuilder() .setMethodDescriptor(listBackupOperationsMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings listDatabaseRolesTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(listDatabaseRolesMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); this.listDatabasesCallable = diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminClient.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminClient.java index 0284630834d..325f0704ad6 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminClient.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminSettings.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminSettings.java index 4409fa180e2..9e4e5900f69 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminSettings.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/package-info.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/package-info.java index 1bbb310baca..156db464da8 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/package-info.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/GrpcInstanceAdminCallableFactory.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/GrpcInstanceAdminCallableFactory.java index f4f94054039..b5f7e0aee05 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/GrpcInstanceAdminCallableFactory.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/GrpcInstanceAdminCallableFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/GrpcInstanceAdminStub.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/GrpcInstanceAdminStub.java index aef9f8725c7..39b83be1ed9 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/GrpcInstanceAdminStub.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/GrpcInstanceAdminStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,8 +26,8 @@ import com.google.api.gax.grpc.GrpcStubCallableFactory; import com.google.api.gax.rpc.ClientContext; import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.RequestParamsBuilder; import com.google.api.gax.rpc.UnaryCallable; -import com.google.common.collect.ImmutableMap; import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.Policy; import com.google.iam.v1.SetIamPolicyRequest; @@ -301,9 +301,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(listInstanceConfigsMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings getInstanceConfigTransportSettings = @@ -311,9 +311,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(getInstanceConfigMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("name", String.valueOf(request.getName())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); }) .build(); GrpcCallSettings createInstanceConfigTransportSettings = @@ -321,9 +321,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(createInstanceConfigMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings updateInstanceConfigTransportSettings = @@ -331,11 +331,11 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(updateInstanceConfigMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put( + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add( "instance_config.name", String.valueOf(request.getInstanceConfig().getName())); - return params.build(); + return builder.build(); }) .build(); GrpcCallSettings deleteInstanceConfigTransportSettings = @@ -343,9 +343,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(deleteInstanceConfigMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("name", String.valueOf(request.getName())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); }) .build(); GrpcCallSettings @@ -356,9 +356,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(listInstanceConfigOperationsMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings listInstancesTransportSettings = @@ -366,9 +366,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(listInstancesMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings getInstanceTransportSettings = @@ -376,9 +376,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(getInstanceMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("name", String.valueOf(request.getName())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); }) .build(); GrpcCallSettings createInstanceTransportSettings = @@ -386,9 +386,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(createInstanceMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("parent", String.valueOf(request.getParent())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); }) .build(); GrpcCallSettings updateInstanceTransportSettings = @@ -396,9 +396,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(updateInstanceMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("instance.name", String.valueOf(request.getInstance().getName())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("instance.name", String.valueOf(request.getInstance().getName())); + return builder.build(); }) .build(); GrpcCallSettings deleteInstanceTransportSettings = @@ -406,9 +406,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(deleteInstanceMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("name", String.valueOf(request.getName())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); }) .build(); GrpcCallSettings setIamPolicyTransportSettings = @@ -416,9 +416,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(setIamPolicyMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("resource", String.valueOf(request.getResource())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("resource", String.valueOf(request.getResource())); + return builder.build(); }) .build(); GrpcCallSettings getIamPolicyTransportSettings = @@ -426,9 +426,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(getIamPolicyMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("resource", String.valueOf(request.getResource())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("resource", String.valueOf(request.getResource())); + return builder.build(); }) .build(); GrpcCallSettings @@ -437,9 +437,9 @@ protected GrpcInstanceAdminStub( .setMethodDescriptor(testIamPermissionsMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("resource", String.valueOf(request.getResource())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("resource", String.valueOf(request.getResource())); + return builder.build(); }) .build(); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/HttpJsonInstanceAdminCallableFactory.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/HttpJsonInstanceAdminCallableFactory.java index 73ca894a437..9781fe2448d 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/HttpJsonInstanceAdminCallableFactory.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/HttpJsonInstanceAdminCallableFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/HttpJsonInstanceAdminStub.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/HttpJsonInstanceAdminStub.java index 7266e61881f..8acda6dfd30 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/HttpJsonInstanceAdminStub.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/HttpJsonInstanceAdminStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,6 +35,7 @@ import com.google.api.gax.httpjson.longrunning.stub.HttpJsonOperationsStub; import com.google.api.gax.rpc.ClientContext; import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.RequestParamsBuilder; import com.google.api.gax.rpc.UnaryCallable; import com.google.common.collect.ImmutableMap; import com.google.iam.v1.GetIamPolicyRequest; @@ -755,29 +756,61 @@ protected HttpJsonInstanceAdminStub( .newBuilder() .setMethodDescriptor(listInstanceConfigsMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings getInstanceConfigTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(getInstanceConfigMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings createInstanceConfigTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(createInstanceConfigMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings updateInstanceConfigTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(updateInstanceConfigMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add( + "instance_config.name", + String.valueOf(request.getInstanceConfig().getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings deleteInstanceConfigTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(deleteInstanceConfigMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings listInstanceConfigOperationsTransportSettings = @@ -786,48 +819,102 @@ protected HttpJsonInstanceAdminStub( newBuilder() .setMethodDescriptor(listInstanceConfigOperationsMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings listInstancesTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(listInstancesMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings getInstanceTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(getInstanceMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings createInstanceTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(createInstanceMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) .build(); HttpJsonCallSettings updateInstanceTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(updateInstanceMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("instance.name", String.valueOf(request.getInstance().getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings deleteInstanceTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(deleteInstanceMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings setIamPolicyTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(setIamPolicyMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("resource", String.valueOf(request.getResource())); + return builder.build(); + }) .build(); HttpJsonCallSettings getIamPolicyTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(getIamPolicyMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("resource", String.valueOf(request.getResource())); + return builder.build(); + }) .build(); HttpJsonCallSettings testIamPermissionsTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(testIamPermissionsMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("resource", String.valueOf(request.getResource())); + return builder.build(); + }) .build(); this.listInstanceConfigsCallable = diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/InstanceAdminStub.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/InstanceAdminStub.java index e4e6f339a63..ce60b285795 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/InstanceAdminStub.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/InstanceAdminStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/InstanceAdminStubSettings.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/InstanceAdminStubSettings.java index 547107b4c98..edbb97ba1e0 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/InstanceAdminStubSettings.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/InstanceAdminStubSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerClient.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerClient.java index a40ad087b66..0eb07bc1e81 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerClient.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerSettings.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerSettings.java index 6cec68b9a21..d76625776fd 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerSettings.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/package-info.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/package-info.java index a3bd04b9f3f..9a10323aa51 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/package-info.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/GrpcSpannerCallableFactory.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/GrpcSpannerCallableFactory.java index e427ff18014..34ab0590003 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/GrpcSpannerCallableFactory.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/GrpcSpannerCallableFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/GrpcSpannerStub.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/GrpcSpannerStub.java index 0e99079a91f..a4b04339013 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/GrpcSpannerStub.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/GrpcSpannerStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,9 +23,9 @@ import com.google.api.gax.grpc.GrpcCallSettings; import com.google.api.gax.grpc.GrpcStubCallableFactory; import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.RequestParamsBuilder; import com.google.api.gax.rpc.ServerStreamingCallable; import com.google.api.gax.rpc.UnaryCallable; -import com.google.common.collect.ImmutableMap; import com.google.longrunning.stub.GrpcOperationsStub; import com.google.protobuf.Empty; import com.google.spanner.v1.BatchCreateSessionsRequest; @@ -267,9 +267,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(createSessionMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("database", String.valueOf(request.getDatabase())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database", String.valueOf(request.getDatabase())); + return builder.build(); }) .build(); GrpcCallSettings @@ -278,9 +278,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(batchCreateSessionsMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("database", String.valueOf(request.getDatabase())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database", String.valueOf(request.getDatabase())); + return builder.build(); }) .build(); GrpcCallSettings getSessionTransportSettings = @@ -288,9 +288,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(getSessionMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("name", String.valueOf(request.getName())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); }) .build(); GrpcCallSettings listSessionsTransportSettings = @@ -298,9 +298,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(listSessionsMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("database", String.valueOf(request.getDatabase())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database", String.valueOf(request.getDatabase())); + return builder.build(); }) .build(); GrpcCallSettings deleteSessionTransportSettings = @@ -308,9 +308,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(deleteSessionMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("name", String.valueOf(request.getName())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); }) .build(); GrpcCallSettings executeSqlTransportSettings = @@ -318,9 +318,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(executeSqlMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("session", String.valueOf(request.getSession())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); }) .build(); GrpcCallSettings executeStreamingSqlTransportSettings = @@ -328,9 +328,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(executeStreamingSqlMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("session", String.valueOf(request.getSession())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); }) .build(); GrpcCallSettings @@ -339,9 +339,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(executeBatchDmlMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("session", String.valueOf(request.getSession())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); }) .build(); GrpcCallSettings readTransportSettings = @@ -349,9 +349,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(readMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("session", String.valueOf(request.getSession())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); }) .build(); GrpcCallSettings streamingReadTransportSettings = @@ -359,9 +359,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(streamingReadMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("session", String.valueOf(request.getSession())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); }) .build(); GrpcCallSettings beginTransactionTransportSettings = @@ -369,9 +369,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(beginTransactionMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("session", String.valueOf(request.getSession())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); }) .build(); GrpcCallSettings commitTransportSettings = @@ -379,9 +379,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(commitMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("session", String.valueOf(request.getSession())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); }) .build(); GrpcCallSettings rollbackTransportSettings = @@ -389,9 +389,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(rollbackMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("session", String.valueOf(request.getSession())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); }) .build(); GrpcCallSettings partitionQueryTransportSettings = @@ -399,9 +399,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(partitionQueryMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("session", String.valueOf(request.getSession())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); }) .build(); GrpcCallSettings partitionReadTransportSettings = @@ -409,9 +409,9 @@ protected GrpcSpannerStub( .setMethodDescriptor(partitionReadMethodDescriptor) .setParamsExtractor( request -> { - ImmutableMap.Builder params = ImmutableMap.builder(); - params.put("session", String.valueOf(request.getSession())); - return params.build(); + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); }) .build(); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/HttpJsonSpannerCallableFactory.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/HttpJsonSpannerCallableFactory.java index 97dfaf2dab9..aa5f3302ac3 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/HttpJsonSpannerCallableFactory.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/HttpJsonSpannerCallableFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/HttpJsonSpannerStub.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/HttpJsonSpannerStub.java index 776f27e49db..10e20e619e4 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/HttpJsonSpannerStub.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/HttpJsonSpannerStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,6 +29,7 @@ import com.google.api.gax.httpjson.ProtoMessageResponseParser; import com.google.api.gax.httpjson.ProtoRestSerializer; import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.RequestParamsBuilder; import com.google.api.gax.rpc.ServerStreamingCallable; import com.google.api.gax.rpc.UnaryCallable; import com.google.protobuf.Empty; @@ -681,6 +682,12 @@ protected HttpJsonSpannerStub( HttpJsonCallSettings.newBuilder() .setMethodDescriptor(createSessionMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database", String.valueOf(request.getDatabase())); + return builder.build(); + }) .build(); HttpJsonCallSettings batchCreateSessionsTransportSettings = @@ -688,72 +695,156 @@ protected HttpJsonSpannerStub( .newBuilder() .setMethodDescriptor(batchCreateSessionsMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database", String.valueOf(request.getDatabase())); + return builder.build(); + }) .build(); HttpJsonCallSettings getSessionTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(getSessionMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings listSessionsTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(listSessionsMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("database", String.valueOf(request.getDatabase())); + return builder.build(); + }) .build(); HttpJsonCallSettings deleteSessionTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(deleteSessionMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("name", String.valueOf(request.getName())); + return builder.build(); + }) .build(); HttpJsonCallSettings executeSqlTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(executeSqlMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); + }) .build(); HttpJsonCallSettings executeStreamingSqlTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(executeStreamingSqlMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); + }) .build(); HttpJsonCallSettings executeBatchDmlTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(executeBatchDmlMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); + }) .build(); HttpJsonCallSettings readTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(readMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); + }) .build(); HttpJsonCallSettings streamingReadTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(streamingReadMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); + }) .build(); HttpJsonCallSettings beginTransactionTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(beginTransactionMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); + }) .build(); HttpJsonCallSettings commitTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(commitMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); + }) .build(); HttpJsonCallSettings rollbackTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(rollbackMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); + }) .build(); HttpJsonCallSettings partitionQueryTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(partitionQueryMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); + }) .build(); HttpJsonCallSettings partitionReadTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(partitionReadMethodDescriptor) .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("session", String.valueOf(request.getSession())); + return builder.build(); + }) .build(); this.createSessionCallable = diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStub.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStub.java index 7f7a4d95d49..4a5886cdc5b 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStub.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStub.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStubSettings.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStubSettings.java index ff5a6b9bb28..c330f39e58f 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStubSettings.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStubSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.admin.database.v1/reflect-config.json b/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.admin.database.v1/reflect-config.json new file mode 100644 index 00000000000..b0045af3fac --- /dev/null +++ b/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.admin.database.v1/reflect-config.json @@ -0,0 +1,2315 @@ +[ + { + "name": "com.google.api.ClientLibraryDestination", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibraryOrganization", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibrarySettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibrarySettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CommonLanguageSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CommonLanguageSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CppSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CppSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CustomHttpPattern", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CustomHttpPattern$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.DotnetSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.DotnetSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.FieldBehavior", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.GoSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.GoSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Http", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Http$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.HttpRule", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.HttpRule$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.JavaSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.JavaSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.LaunchStage", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$LongRunning", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$LongRunning$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.NodeSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.NodeSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PhpSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PhpSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Publishing", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Publishing$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$History", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$Style", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceReference", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceReference$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.RubySettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.RubySettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditConfig", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditConfig$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditConfigDelta", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditConfigDelta$Action", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditConfigDelta$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditLogConfig", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditLogConfig$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditLogConfig$LogType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.Binding", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.Binding$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.BindingDelta", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.BindingDelta$Action", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.BindingDelta$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.GetIamPolicyRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.GetIamPolicyRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.GetPolicyOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.GetPolicyOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.Policy", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.Policy$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.PolicyDelta", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.PolicyDelta$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.SetIamPolicyRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.SetIamPolicyRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.TestIamPermissionsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.TestIamPermissionsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.TestIamPermissionsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.TestIamPermissionsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.CancelOperationRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.CancelOperationRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.DeleteOperationRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.DeleteOperationRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.GetOperationRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.GetOperationRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.ListOperationsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.ListOperationsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.ListOperationsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.ListOperationsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.Operation", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.Operation$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.OperationInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.OperationInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.WaitOperationRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.WaitOperationRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Any", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Any$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Declaration", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Declaration$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$VerificationState", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Label", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Type", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$CType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$JSType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$OptionRetention", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$OptionTargetType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorSet", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorSet$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions$OptimizeMode", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation$Semantic", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MessageOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MessageOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions$IdempotencyLevel", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Location", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Location$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePart", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePart$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Duration", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Duration$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Empty", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Empty$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.FieldMask", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.FieldMask$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Timestamp", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Timestamp$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.rpc.Status", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.rpc.Status$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.Backup", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.Backup$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.Backup$State", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.BackupInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.BackupInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CopyBackupEncryptionConfig", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CopyBackupEncryptionConfig$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CopyBackupEncryptionConfig$EncryptionType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CopyBackupMetadata", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CopyBackupMetadata$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CopyBackupRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CopyBackupRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CreateBackupEncryptionConfig", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CreateBackupEncryptionConfig$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CreateBackupEncryptionConfig$EncryptionType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CreateBackupMetadata", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CreateBackupMetadata$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CreateBackupRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CreateBackupRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CreateDatabaseMetadata", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CreateDatabaseMetadata$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CreateDatabaseRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.CreateDatabaseRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.Database", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.Database$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.Database$State", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.DatabaseDialect", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.DatabaseRole", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.DatabaseRole$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.DdlStatementActionInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.DdlStatementActionInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.DeleteBackupRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.DeleteBackupRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.DropDatabaseRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.DropDatabaseRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.EncryptionConfig", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.EncryptionConfig$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.EncryptionInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.EncryptionInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.EncryptionInfo$Type", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.GetBackupRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.GetBackupRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.GetDatabaseDdlRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.GetDatabaseDdlRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.GetDatabaseDdlResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.GetDatabaseDdlResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.GetDatabaseRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.GetDatabaseRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListBackupOperationsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListBackupOperationsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListBackupOperationsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListBackupOperationsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListBackupsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListBackupsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListBackupsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListBackupsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListDatabaseOperationsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListDatabaseOperationsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListDatabaseOperationsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListDatabaseOperationsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListDatabaseRolesRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListDatabaseRolesRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListDatabaseRolesResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListDatabaseRolesResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListDatabasesRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListDatabasesRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListDatabasesResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.ListDatabasesResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.OperationProgress", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.OperationProgress$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.OptimizeRestoredDatabaseMetadata", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.OptimizeRestoredDatabaseMetadata$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig$EncryptionType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.RestoreDatabaseMetadata", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.RestoreDatabaseMetadata$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.RestoreDatabaseRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.RestoreDatabaseRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.RestoreInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.RestoreInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.RestoreSourceType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.UpdateBackupRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.UpdateBackupRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.UpdateDatabaseDdlRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.UpdateDatabaseDdlRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.UpdateDatabaseMetadata", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.UpdateDatabaseMetadata$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.UpdateDatabaseRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.database.v1.UpdateDatabaseRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.type.Expr", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.type.Expr$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + } +] \ No newline at end of file diff --git a/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.admin.instance.v1/reflect-config.json b/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.admin.instance.v1/reflect-config.json new file mode 100644 index 00000000000..2bcdc77a649 --- /dev/null +++ b/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.admin.instance.v1/reflect-config.json @@ -0,0 +1,1919 @@ +[ + { + "name": "com.google.api.ClientLibraryDestination", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibraryOrganization", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibrarySettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibrarySettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CommonLanguageSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CommonLanguageSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CppSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CppSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CustomHttpPattern", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CustomHttpPattern$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.DotnetSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.DotnetSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.FieldBehavior", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.GoSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.GoSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Http", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Http$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.HttpRule", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.HttpRule$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.JavaSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.JavaSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.LaunchStage", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$LongRunning", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$LongRunning$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.NodeSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.NodeSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PhpSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PhpSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Publishing", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Publishing$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$History", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$Style", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceReference", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceReference$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.RubySettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.RubySettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditConfig", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditConfig$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditConfigDelta", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditConfigDelta$Action", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditConfigDelta$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditLogConfig", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditLogConfig$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.AuditLogConfig$LogType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.Binding", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.Binding$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.BindingDelta", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.BindingDelta$Action", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.BindingDelta$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.GetIamPolicyRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.GetIamPolicyRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.GetPolicyOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.GetPolicyOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.Policy", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.Policy$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.PolicyDelta", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.PolicyDelta$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.SetIamPolicyRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.SetIamPolicyRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.TestIamPermissionsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.TestIamPermissionsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.TestIamPermissionsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.TestIamPermissionsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.CancelOperationRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.CancelOperationRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.DeleteOperationRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.DeleteOperationRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.GetOperationRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.GetOperationRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.ListOperationsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.ListOperationsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.ListOperationsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.ListOperationsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.Operation", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.Operation$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.OperationInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.OperationInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.WaitOperationRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.longrunning.WaitOperationRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Any", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Any$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Declaration", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Declaration$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$VerificationState", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Label", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Type", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$CType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$JSType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$OptionRetention", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$OptionTargetType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorSet", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorSet$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions$OptimizeMode", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation$Semantic", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MessageOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MessageOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions$IdempotencyLevel", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Location", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Location$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePart", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePart$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Duration", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Duration$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Empty", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Empty$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.FieldMask", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.FieldMask$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Timestamp", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Timestamp$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.rpc.Status", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.rpc.Status$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.CreateInstanceConfigMetadata", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.CreateInstanceConfigMetadata$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.CreateInstanceConfigRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.CreateInstanceConfigRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.CreateInstanceMetadata", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.CreateInstanceMetadata$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.CreateInstanceRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.CreateInstanceRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.DeleteInstanceConfigRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.DeleteInstanceConfigRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.DeleteInstanceRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.DeleteInstanceRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.GetInstanceConfigRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.GetInstanceConfigRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.GetInstanceRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.GetInstanceRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.Instance", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.Instance$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.Instance$State", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.InstanceConfig", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.InstanceConfig$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.InstanceConfig$State", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.InstanceConfig$Type", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ListInstanceConfigOperationsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ListInstanceConfigOperationsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ListInstanceConfigOperationsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ListInstanceConfigOperationsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ListInstanceConfigsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ListInstanceConfigsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ListInstanceConfigsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ListInstanceConfigsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ListInstancesRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ListInstancesRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ListInstancesResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ListInstancesResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.OperationProgress", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.OperationProgress$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ReplicaInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ReplicaInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.ReplicaInfo$ReplicaType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.UpdateInstanceConfigMetadata", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.UpdateInstanceConfigMetadata$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.UpdateInstanceConfigRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.UpdateInstanceConfigRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.UpdateInstanceMetadata", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.UpdateInstanceMetadata$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.UpdateInstanceRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.admin.instance.v1.UpdateInstanceRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.type.Expr", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.type.Expr$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + } +] \ No newline at end of file diff --git a/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.v1/reflect-config.json b/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.v1/reflect-config.json new file mode 100644 index 00000000000..a7aab1356f6 --- /dev/null +++ b/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.v1/reflect-config.json @@ -0,0 +1,2027 @@ +[ + { + "name": "com.google.api.ClientLibraryDestination", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibraryOrganization", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibrarySettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ClientLibrarySettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CommonLanguageSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CommonLanguageSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CppSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CppSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CustomHttpPattern", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.CustomHttpPattern$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.DotnetSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.DotnetSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.FieldBehavior", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.GoSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.GoSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Http", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Http$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.HttpRule", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.HttpRule$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.JavaSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.JavaSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.LaunchStage", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$LongRunning", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.MethodSettings$LongRunning$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.NodeSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.NodeSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PhpSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PhpSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Publishing", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.Publishing$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.PythonSettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$History", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceDescriptor$Style", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceReference", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.ResourceReference$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.RubySettings", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.api.RubySettings$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Any", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Any$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$EnumValueOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Declaration", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Declaration$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$VerificationState", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Label", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Type", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$CType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$JSType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$OptionRetention", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FieldOptions$OptionTargetType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorSet", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileDescriptorSet$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$FileOptions$OptimizeMode", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation$Semantic", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MessageOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MessageOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$MethodOptions$IdempotencyLevel", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$OneofOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceDescriptorProto", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceDescriptorProto$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$ServiceOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Location", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$SourceCodeInfo$Location$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePart", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePart$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Duration", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Duration$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Empty", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Empty$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.ListValue", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.ListValue$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.NullValue", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Struct", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Struct$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Timestamp", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Timestamp$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Value", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Value$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.rpc.Status", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.rpc.Status$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.BatchCreateSessionsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.BatchCreateSessionsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.BatchCreateSessionsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.BatchCreateSessionsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.BeginTransactionRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.BeginTransactionRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.CommitRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.CommitRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.CommitResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.CommitResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.CommitResponse$CommitStats", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.CommitResponse$CommitStats$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.CreateSessionRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.CreateSessionRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.DeleteSessionRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.DeleteSessionRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ExecuteBatchDmlRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ExecuteBatchDmlRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ExecuteBatchDmlRequest$Statement", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ExecuteBatchDmlRequest$Statement$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ExecuteBatchDmlResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ExecuteBatchDmlResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ExecuteSqlRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ExecuteSqlRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ExecuteSqlRequest$QueryMode", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ExecuteSqlRequest$QueryOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ExecuteSqlRequest$QueryOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.GetSessionRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.GetSessionRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.KeyRange", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.KeyRange$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.KeySet", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.KeySet$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ListSessionsRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ListSessionsRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ListSessionsResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ListSessionsResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Mutation", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Mutation$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Mutation$Delete", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Mutation$Delete$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Mutation$Write", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Mutation$Write$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PartialResultSet", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PartialResultSet$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Partition", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Partition$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PartitionOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PartitionOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PartitionQueryRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PartitionQueryRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PartitionReadRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PartitionReadRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PartitionResponse", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PartitionResponse$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PlanNode", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PlanNode$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PlanNode$ChildLink", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PlanNode$ChildLink$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PlanNode$Kind", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PlanNode$ShortRepresentation", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.PlanNode$ShortRepresentation$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.QueryPlan", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.QueryPlan$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ReadRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ReadRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.RequestOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.RequestOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.RequestOptions$Priority", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ResultSet", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ResultSet$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ResultSetMetadata", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ResultSetMetadata$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ResultSetStats", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.ResultSetStats$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.RollbackRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.RollbackRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Session", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Session$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.StructType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.StructType$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.StructType$Field", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.StructType$Field$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Transaction", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Transaction$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TransactionOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TransactionOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TransactionOptions$PartitionedDml", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TransactionOptions$PartitionedDml$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TransactionOptions$ReadOnly", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TransactionOptions$ReadOnly$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TransactionOptions$ReadWrite", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TransactionOptions$ReadWrite$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TransactionOptions$ReadWrite$ReadLockMode", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TransactionSelector", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TransactionSelector$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Type", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.Type$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TypeAnnotationCode", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.spanner.v1.TypeCode", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + } +] \ No newline at end of file diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminClientHttpJsonTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminClientHttpJsonTest.java index 103d0f4f09c..67530cb07f5 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminClientHttpJsonTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminClientHttpJsonTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminClientTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminClientTest.java index 9d2c02a6618..a9711017db2 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminClientTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/DatabaseAdminClientTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/MockDatabaseAdmin.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/MockDatabaseAdmin.java index ed3dc441156..e3f036bce5e 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/MockDatabaseAdmin.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/MockDatabaseAdmin.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/MockDatabaseAdminImpl.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/MockDatabaseAdminImpl.java index 14ab13fd74e..9f21733e467 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/MockDatabaseAdminImpl.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/database/v1/MockDatabaseAdminImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminClientHttpJsonTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminClientHttpJsonTest.java index 4088a052668..cca71a692d1 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminClientHttpJsonTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminClientHttpJsonTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminClientTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminClientTest.java index a120a858542..dd2ebdd3ae9 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminClientTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/InstanceAdminClientTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/MockInstanceAdmin.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/MockInstanceAdmin.java index e107d158b1e..0dd71fe4115 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/MockInstanceAdmin.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/MockInstanceAdmin.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/MockInstanceAdminImpl.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/MockInstanceAdminImpl.java index a8372c749d2..9fa59c9f70e 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/MockInstanceAdminImpl.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/admin/instance/v1/MockInstanceAdminImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/MockSpanner.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/MockSpanner.java index 3a53cde1223..210b0ee06c3 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/MockSpanner.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/MockSpanner.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/MockSpannerImpl.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/MockSpannerImpl.java index d6176e1f277..7c26f582758 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/MockSpannerImpl.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/MockSpannerImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientHttpJsonTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientHttpJsonTest.java index 04bd5df2166..e2ffb566626 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientHttpJsonTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientHttpJsonTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientTest.java index 9e23c7a0523..73998b39810 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Backup.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Backup.java index d5132408edd..83815908c09 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Backup.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Backup.java @@ -41,9 +41,9 @@ private Backup() { database_ = ""; name_ = ""; state_ = 0; - referencingDatabases_ = com.google.protobuf.LazyStringArrayList.EMPTY; + referencingDatabases_ = com.google.protobuf.LazyStringArrayList.emptyList(); databaseDialect_ = 0; - referencingBackups_ = com.google.protobuf.LazyStringArrayList.EMPTY; + referencingBackups_ = com.google.protobuf.LazyStringArrayList.emptyList(); } @java.lang.Override @@ -52,11 +52,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new Backup(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.BackupProto .internal_static_google_spanner_admin_database_v1_Backup_descriptor; @@ -416,11 +411,13 @@ public com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder() { *
    * Output only for the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] operation.
    * Required for the [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup] operation.
+   *
    * A globally unique identifier for the backup which cannot be
    * changed. Values are of the form
    * `projects/<project>/instances/<instance>/backups/[a-z][a-z0-9_\-]*[a-z0-9]`
    * The final segment of the name must be between 2 and 60 characters
    * in length.
+   *
    * The backup is stored in the location(s) specified in the instance
    * configuration of the instance containing the backup, identified
    * by the prefix of the backup name of the form
@@ -449,11 +446,13 @@ public java.lang.String getName() {
    * 
    * Output only for the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] operation.
    * Required for the [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup] operation.
+   *
    * A globally unique identifier for the backup which cannot be
    * changed. Values are of the form
    * `projects/<project>/instances/<instance>/backups/[a-z][a-z0-9_\-]*[a-z0-9]`
    * The final segment of the name must be between 2 and 60 characters
    * in length.
+   *
    * The backup is stored in the location(s) specified in the instance
    * configuration of the instance containing the backup, identified
    * by the prefix of the backup name of the form
@@ -592,7 +591,8 @@ public com.google.spanner.admin.database.v1.Backup.State getState() {
   public static final int REFERENCING_DATABASES_FIELD_NUMBER = 7;
 
   @SuppressWarnings("serial")
-  private com.google.protobuf.LazyStringList referencingDatabases_;
+  private com.google.protobuf.LazyStringArrayList referencingDatabases_ =
+      com.google.protobuf.LazyStringArrayList.emptyList();
   /**
    *
    *
@@ -784,7 +784,8 @@ public com.google.spanner.admin.database.v1.DatabaseDialect getDatabaseDialect()
   public static final int REFERENCING_BACKUPS_FIELD_NUMBER = 11;
 
   @SuppressWarnings("serial")
-  private com.google.protobuf.LazyStringList referencingBackups_;
+  private com.google.protobuf.LazyStringArrayList referencingBackups_ =
+      com.google.protobuf.LazyStringArrayList.emptyList();
   /**
    *
    *
@@ -1304,16 +1305,14 @@ public Builder clear() {
       }
       sizeBytes_ = 0L;
       state_ = 0;
-      referencingDatabases_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000080);
+      referencingDatabases_ = com.google.protobuf.LazyStringArrayList.emptyList();
       encryptionInfo_ = null;
       if (encryptionInfoBuilder_ != null) {
         encryptionInfoBuilder_.dispose();
         encryptionInfoBuilder_ = null;
       }
       databaseDialect_ = 0;
-      referencingBackups_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000400);
+      referencingBackups_ = com.google.protobuf.LazyStringArrayList.emptyList();
       maxExpireTime_ = null;
       if (maxExpireTimeBuilder_ != null) {
         maxExpireTimeBuilder_.dispose();
@@ -1346,7 +1345,6 @@ public com.google.spanner.admin.database.v1.Backup build() {
     public com.google.spanner.admin.database.v1.Backup buildPartial() {
       com.google.spanner.admin.database.v1.Backup result =
           new com.google.spanner.admin.database.v1.Backup(this);
-      buildPartialRepeatedFields(result);
       if (bitField0_ != 0) {
         buildPartial0(result);
       }
@@ -1354,19 +1352,6 @@ public com.google.spanner.admin.database.v1.Backup buildPartial() {
       return result;
     }
 
-    private void buildPartialRepeatedFields(com.google.spanner.admin.database.v1.Backup result) {
-      if (((bitField0_ & 0x00000080) != 0)) {
-        referencingDatabases_ = referencingDatabases_.getUnmodifiableView();
-        bitField0_ = (bitField0_ & ~0x00000080);
-      }
-      result.referencingDatabases_ = referencingDatabases_;
-      if (((bitField0_ & 0x00000400) != 0)) {
-        referencingBackups_ = referencingBackups_.getUnmodifiableView();
-        bitField0_ = (bitField0_ & ~0x00000400);
-      }
-      result.referencingBackups_ = referencingBackups_;
-    }
-
     private void buildPartial0(com.google.spanner.admin.database.v1.Backup result) {
       int from_bitField0_ = bitField0_;
       if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -1391,6 +1376,10 @@ private void buildPartial0(com.google.spanner.admin.database.v1.Backup result) {
       if (((from_bitField0_ & 0x00000040) != 0)) {
         result.state_ = state_;
       }
+      if (((from_bitField0_ & 0x00000080) != 0)) {
+        referencingDatabases_.makeImmutable();
+        result.referencingDatabases_ = referencingDatabases_;
+      }
       if (((from_bitField0_ & 0x00000100) != 0)) {
         result.encryptionInfo_ =
             encryptionInfoBuilder_ == null ? encryptionInfo_ : encryptionInfoBuilder_.build();
@@ -1398,6 +1387,10 @@ private void buildPartial0(com.google.spanner.admin.database.v1.Backup result) {
       if (((from_bitField0_ & 0x00000200) != 0)) {
         result.databaseDialect_ = databaseDialect_;
       }
+      if (((from_bitField0_ & 0x00000400) != 0)) {
+        referencingBackups_.makeImmutable();
+        result.referencingBackups_ = referencingBackups_;
+      }
       if (((from_bitField0_ & 0x00000800) != 0)) {
         result.maxExpireTime_ =
             maxExpireTimeBuilder_ == null ? maxExpireTime_ : maxExpireTimeBuilder_.build();
@@ -1477,7 +1470,7 @@ public Builder mergeFrom(com.google.spanner.admin.database.v1.Backup other) {
       if (!other.referencingDatabases_.isEmpty()) {
         if (referencingDatabases_.isEmpty()) {
           referencingDatabases_ = other.referencingDatabases_;
-          bitField0_ = (bitField0_ & ~0x00000080);
+          bitField0_ |= 0x00000080;
         } else {
           ensureReferencingDatabasesIsMutable();
           referencingDatabases_.addAll(other.referencingDatabases_);
@@ -1493,7 +1486,7 @@ public Builder mergeFrom(com.google.spanner.admin.database.v1.Backup other) {
       if (!other.referencingBackups_.isEmpty()) {
         if (referencingBackups_.isEmpty()) {
           referencingBackups_ = other.referencingBackups_;
-          bitField0_ = (bitField0_ & ~0x00000400);
+          bitField0_ |= 0x00000400;
         } else {
           ensureReferencingBackupsIsMutable();
           referencingBackups_.addAll(other.referencingBackups_);
@@ -2193,11 +2186,13 @@ public com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder() {
      * 
      * Output only for the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] operation.
      * Required for the [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup] operation.
+     *
      * A globally unique identifier for the backup which cannot be
      * changed. Values are of the form
      * `projects/<project>/instances/<instance>/backups/[a-z][a-z0-9_\-]*[a-z0-9]`
      * The final segment of the name must be between 2 and 60 characters
      * in length.
+     *
      * The backup is stored in the location(s) specified in the instance
      * configuration of the instance containing the backup, identified
      * by the prefix of the backup name of the form
@@ -2225,11 +2220,13 @@ public java.lang.String getName() {
      * 
      * Output only for the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] operation.
      * Required for the [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup] operation.
+     *
      * A globally unique identifier for the backup which cannot be
      * changed. Values are of the form
      * `projects/<project>/instances/<instance>/backups/[a-z][a-z0-9_\-]*[a-z0-9]`
      * The final segment of the name must be between 2 and 60 characters
      * in length.
+     *
      * The backup is stored in the location(s) specified in the instance
      * configuration of the instance containing the backup, identified
      * by the prefix of the backup name of the form
@@ -2257,11 +2254,13 @@ public com.google.protobuf.ByteString getNameBytes() {
      * 
      * Output only for the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] operation.
      * Required for the [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup] operation.
+     *
      * A globally unique identifier for the backup which cannot be
      * changed. Values are of the form
      * `projects/<project>/instances/<instance>/backups/[a-z][a-z0-9_\-]*[a-z0-9]`
      * The final segment of the name must be between 2 and 60 characters
      * in length.
+     *
      * The backup is stored in the location(s) specified in the instance
      * configuration of the instance containing the backup, identified
      * by the prefix of the backup name of the form
@@ -2288,11 +2287,13 @@ public Builder setName(java.lang.String value) {
      * 
      * Output only for the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] operation.
      * Required for the [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup] operation.
+     *
      * A globally unique identifier for the backup which cannot be
      * changed. Values are of the form
      * `projects/<project>/instances/<instance>/backups/[a-z][a-z0-9_\-]*[a-z0-9]`
      * The final segment of the name must be between 2 and 60 characters
      * in length.
+     *
      * The backup is stored in the location(s) specified in the instance
      * configuration of the instance containing the backup, identified
      * by the prefix of the backup name of the form
@@ -2315,11 +2316,13 @@ public Builder clearName() {
      * 
      * Output only for the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] operation.
      * Required for the [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup] operation.
+     *
      * A globally unique identifier for the backup which cannot be
      * changed. Values are of the form
      * `projects/<project>/instances/<instance>/backups/[a-z][a-z0-9_\-]*[a-z0-9]`
      * The final segment of the name must be between 2 and 60 characters
      * in length.
+     *
      * The backup is stored in the location(s) specified in the instance
      * configuration of the instance containing the backup, identified
      * by the prefix of the backup name of the form
@@ -2716,14 +2719,14 @@ public Builder clearState() {
       return this;
     }
 
-    private com.google.protobuf.LazyStringList referencingDatabases_ =
-        com.google.protobuf.LazyStringArrayList.EMPTY;
+    private com.google.protobuf.LazyStringArrayList referencingDatabases_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
 
     private void ensureReferencingDatabasesIsMutable() {
-      if (!((bitField0_ & 0x00000080) != 0)) {
+      if (!referencingDatabases_.isModifiable()) {
         referencingDatabases_ = new com.google.protobuf.LazyStringArrayList(referencingDatabases_);
-        bitField0_ |= 0x00000080;
       }
+      bitField0_ |= 0x00000080;
     }
     /**
      *
@@ -2745,7 +2748,8 @@ private void ensureReferencingDatabasesIsMutable() {
      * @return A list containing the referencingDatabases.
      */
     public com.google.protobuf.ProtocolStringList getReferencingDatabasesList() {
-      return referencingDatabases_.getUnmodifiableView();
+      referencingDatabases_.makeImmutable();
+      return referencingDatabases_;
     }
     /**
      *
@@ -2842,6 +2846,7 @@ public Builder setReferencingDatabases(int index, java.lang.String value) {
       }
       ensureReferencingDatabasesIsMutable();
       referencingDatabases_.set(index, value);
+      bitField0_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -2871,6 +2876,7 @@ public Builder addReferencingDatabases(java.lang.String value) {
       }
       ensureReferencingDatabasesIsMutable();
       referencingDatabases_.add(value);
+      bitField0_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -2897,6 +2903,7 @@ public Builder addReferencingDatabases(java.lang.String value) {
     public Builder addAllReferencingDatabases(java.lang.Iterable values) {
       ensureReferencingDatabasesIsMutable();
       com.google.protobuf.AbstractMessageLite.Builder.addAll(values, referencingDatabases_);
+      bitField0_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -2920,8 +2927,9 @@ public Builder addAllReferencingDatabases(java.lang.Iterable v
      * @return This builder for chaining.
      */
     public Builder clearReferencingDatabases() {
-      referencingDatabases_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      referencingDatabases_ = com.google.protobuf.LazyStringArrayList.emptyList();
       bitField0_ = (bitField0_ & ~0x00000080);
+      ;
       onChanged();
       return this;
     }
@@ -2952,6 +2960,7 @@ public Builder addReferencingDatabasesBytes(com.google.protobuf.ByteString value
       checkByteStringIsUtf8(value);
       ensureReferencingDatabasesIsMutable();
       referencingDatabases_.add(value);
+      bitField0_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -3262,14 +3271,14 @@ public Builder clearDatabaseDialect() {
       return this;
     }
 
-    private com.google.protobuf.LazyStringList referencingBackups_ =
-        com.google.protobuf.LazyStringArrayList.EMPTY;
+    private com.google.protobuf.LazyStringArrayList referencingBackups_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
 
     private void ensureReferencingBackupsIsMutable() {
-      if (!((bitField0_ & 0x00000400) != 0)) {
+      if (!referencingBackups_.isModifiable()) {
         referencingBackups_ = new com.google.protobuf.LazyStringArrayList(referencingBackups_);
-        bitField0_ |= 0x00000400;
       }
+      bitField0_ |= 0x00000400;
     }
     /**
      *
@@ -3291,7 +3300,8 @@ private void ensureReferencingBackupsIsMutable() {
      * @return A list containing the referencingBackups.
      */
     public com.google.protobuf.ProtocolStringList getReferencingBackupsList() {
-      return referencingBackups_.getUnmodifiableView();
+      referencingBackups_.makeImmutable();
+      return referencingBackups_;
     }
     /**
      *
@@ -3388,6 +3398,7 @@ public Builder setReferencingBackups(int index, java.lang.String value) {
       }
       ensureReferencingBackupsIsMutable();
       referencingBackups_.set(index, value);
+      bitField0_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -3417,6 +3428,7 @@ public Builder addReferencingBackups(java.lang.String value) {
       }
       ensureReferencingBackupsIsMutable();
       referencingBackups_.add(value);
+      bitField0_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -3443,6 +3455,7 @@ public Builder addReferencingBackups(java.lang.String value) {
     public Builder addAllReferencingBackups(java.lang.Iterable values) {
       ensureReferencingBackupsIsMutable();
       com.google.protobuf.AbstractMessageLite.Builder.addAll(values, referencingBackups_);
+      bitField0_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -3466,8 +3479,9 @@ public Builder addAllReferencingBackups(java.lang.Iterable val
      * @return This builder for chaining.
      */
     public Builder clearReferencingBackups() {
-      referencingBackups_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      referencingBackups_ = com.google.protobuf.LazyStringArrayList.emptyList();
       bitField0_ = (bitField0_ & ~0x00000400);
+      ;
       onChanged();
       return this;
     }
@@ -3498,6 +3512,7 @@ public Builder addReferencingBackupsBytes(com.google.protobuf.ByteString value)
       checkByteStringIsUtf8(value);
       ensureReferencingBackupsIsMutable();
       referencingBackups_.add(value);
+      bitField0_ |= 0x00000400;
       onChanged();
       return this;
     }
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInfo.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInfo.java
index 978bcbcccb9..0bb89ec6c08 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInfo.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInfo.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new BackupInfo();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.BackupProto
         .internal_static_google_spanner_admin_database_v1_BackupInfo_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupName.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupName.java
index 3c1ab293524..6cb52a86fee 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupName.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2022 Google LLC
+ * Copyright 2023 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupOrBuilder.java
index e3fe5ccf08c..77a157a819b 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupOrBuilder.java
@@ -156,11 +156,13 @@ public interface BackupOrBuilder
    * 
    * Output only for the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] operation.
    * Required for the [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup] operation.
+   *
    * A globally unique identifier for the backup which cannot be
    * changed. Values are of the form
    * `projects/<project>/instances/<instance>/backups/[a-z][a-z0-9_\-]*[a-z0-9]`
    * The final segment of the name must be between 2 and 60 characters
    * in length.
+   *
    * The backup is stored in the location(s) specified in the instance
    * configuration of the instance containing the backup, identified
    * by the prefix of the backup name of the form
@@ -178,11 +180,13 @@ public interface BackupOrBuilder
    * 
    * Output only for the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] operation.
    * Required for the [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup] operation.
+   *
    * A globally unique identifier for the backup which cannot be
    * changed. Values are of the form
    * `projects/<project>/instances/<instance>/backups/[a-z][a-z0-9_\-]*[a-z0-9]`
    * The final segment of the name must be between 2 and 60 characters
    * in length.
+   *
    * The backup is stored in the location(s) specified in the instance
    * configuration of the instance containing the backup, identified
    * by the prefix of the backup name of the form
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupProto.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupProto.java
index 0d0d3d7b1d3..ed23e270715 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupProto.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupProto.java
@@ -103,105 +103,105 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
           + "g/operations.proto\032 google/protobuf/fiel"
           + "d_mask.proto\032\037google/protobuf/timestamp."
           + "proto\032-google/spanner/admin/database/v1/"
-          + "common.proto\"\303\006\n\006Backup\0226\n\010database\030\002 \001("
+          + "common.proto\"\313\006\n\006Backup\0226\n\010database\030\002 \001("
           + "\tB$\372A!\n\037spanner.googleapis.com/Database\022"
           + "0\n\014version_time\030\t \001(\0132\032.google.protobuf."
           + "Timestamp\022/\n\013expire_time\030\003 \001(\0132\032.google."
-          + "protobuf.Timestamp\022\014\n\004name\030\001 \001(\t\0224\n\013crea"
+          + "protobuf.Timestamp\022\014\n\004name\030\001 \001(\t\0225\n\013crea"
           + "te_time\030\004 \001(\0132\032.google.protobuf.Timestam"
-          + "pB\003\340A\003\022\027\n\nsize_bytes\030\005 \001(\003B\003\340A\003\022B\n\005state"
-          + "\030\006 \001(\0162..google.spanner.admin.database.v"
-          + "1.Backup.StateB\003\340A\003\022F\n\025referencing_datab"
-          + "ases\030\007 \003(\tB\'\340A\003\372A!\n\037spanner.googleapis.c"
-          + "om/Database\022N\n\017encryption_info\030\010 \001(\01320.g"
-          + "oogle.spanner.admin.database.v1.Encrypti"
-          + "onInfoB\003\340A\003\022P\n\020database_dialect\030\n \001(\01621."
-          + "google.spanner.admin.database.v1.Databas"
-          + "eDialectB\003\340A\003\022B\n\023referencing_backups\030\013 \003"
-          + "(\tB%\340A\003\372A\037\n\035spanner.googleapis.com/Backu"
-          + "p\0228\n\017max_expire_time\030\014 \001(\0132\032.google.prot"
-          + "obuf.TimestampB\003\340A\003\"7\n\005State\022\025\n\021STATE_UN"
-          + "SPECIFIED\020\000\022\014\n\010CREATING\020\001\022\t\n\005READY\020\002:\\\352A"
-          + "Y\n\035spanner.googleapis.com/Backup\0228projec"
-          + "ts/{project}/instances/{instance}/backup"
-          + "s/{backup}\"\205\002\n\023CreateBackupRequest\0227\n\006pa"
-          + "rent\030\001 \001(\tB\'\340A\002\372A!\n\037spanner.googleapis.c"
-          + "om/Instance\022\026\n\tbackup_id\030\002 \001(\tB\003\340A\002\022=\n\006b"
-          + "ackup\030\003 \001(\0132(.google.spanner.admin.datab"
-          + "ase.v1.BackupB\003\340A\002\022^\n\021encryption_config\030"
-          + "\004 \001(\0132>.google.spanner.admin.database.v1"
-          + ".CreateBackupEncryptionConfigB\003\340A\001\"\370\001\n\024C"
-          + "reateBackupMetadata\0220\n\004name\030\001 \001(\tB\"\372A\037\n\035"
-          + "spanner.googleapis.com/Backup\0226\n\010databas"
-          + "e\030\002 \001(\tB$\372A!\n\037spanner.googleapis.com/Dat"
-          + "abase\022E\n\010progress\030\003 \001(\01323.google.spanner"
-          + ".admin.database.v1.OperationProgress\022/\n\013"
-          + "cancel_time\030\004 \001(\0132\032.google.protobuf.Time"
-          + "stamp\"\266\002\n\021CopyBackupRequest\0227\n\006parent\030\001 "
-          + "\001(\tB\'\340A\002\372A!\n\037spanner.googleapis.com/Inst"
-          + "ance\022\026\n\tbackup_id\030\002 \001(\tB\003\340A\002\022<\n\rsource_b"
-          + "ackup\030\003 \001(\tB%\340A\002\372A\037\n\035spanner.googleapis."
-          + "com/Backup\0224\n\013expire_time\030\004 \001(\0132\032.google"
-          + ".protobuf.TimestampB\003\340A\002\022\\\n\021encryption_c"
-          + "onfig\030\005 \001(\0132<.google.spanner.admin.datab"
-          + "ase.v1.CopyBackupEncryptionConfigB\003\340A\001\"\371"
-          + "\001\n\022CopyBackupMetadata\0220\n\004name\030\001 \001(\tB\"\372A\037"
-          + "\n\035spanner.googleapis.com/Backup\0229\n\rsourc"
-          + "e_backup\030\002 \001(\tB\"\372A\037\n\035spanner.googleapis."
-          + "com/Backup\022E\n\010progress\030\003 \001(\01323.google.sp"
-          + "anner.admin.database.v1.OperationProgres"
-          + "s\022/\n\013cancel_time\030\004 \001(\0132\032.google.protobuf"
-          + ".Timestamp\"\212\001\n\023UpdateBackupRequest\022=\n\006ba"
-          + "ckup\030\001 \001(\0132(.google.spanner.admin.databa"
-          + "se.v1.BackupB\003\340A\002\0224\n\013update_mask\030\002 \001(\0132\032"
-          + ".google.protobuf.FieldMaskB\003\340A\002\"G\n\020GetBa"
-          + "ckupRequest\0223\n\004name\030\001 \001(\tB%\340A\002\372A\037\n\035spann"
-          + "er.googleapis.com/Backup\"J\n\023DeleteBackup"
-          + "Request\0223\n\004name\030\001 \001(\tB%\340A\002\372A\037\n\035spanner.g"
-          + "oogleapis.com/Backup\"\204\001\n\022ListBackupsRequ"
-          + "est\0227\n\006parent\030\001 \001(\tB\'\340A\002\372A!\n\037spanner.goo"
-          + "gleapis.com/Instance\022\016\n\006filter\030\002 \001(\t\022\021\n\t"
-          + "page_size\030\003 \001(\005\022\022\n\npage_token\030\004 \001(\t\"i\n\023L"
-          + "istBackupsResponse\0229\n\007backups\030\001 \003(\0132(.go"
-          + "ogle.spanner.admin.database.v1.Backup\022\027\n"
-          + "\017next_page_token\030\002 \001(\t\"\215\001\n\033ListBackupOpe"
-          + "rationsRequest\0227\n\006parent\030\001 \001(\tB\'\340A\002\372A!\n\037"
-          + "spanner.googleapis.com/Instance\022\016\n\006filte"
-          + "r\030\002 \001(\t\022\021\n\tpage_size\030\003 \001(\005\022\022\n\npage_token"
-          + "\030\004 \001(\t\"j\n\034ListBackupOperationsResponse\0221"
-          + "\n\noperations\030\001 \003(\0132\035.google.longrunning."
-          + "Operation\022\027\n\017next_page_token\030\002 \001(\t\"\342\001\n\nB"
-          + "ackupInfo\0222\n\006backup\030\001 \001(\tB\"\372A\037\n\035spanner."
-          + "googleapis.com/Backup\0220\n\014version_time\030\004 "
-          + "\001(\0132\032.google.protobuf.Timestamp\022/\n\013creat"
-          + "e_time\030\002 \001(\0132\032.google.protobuf.Timestamp"
-          + "\022=\n\017source_database\030\003 \001(\tB$\372A!\n\037spanner."
-          + "googleapis.com/Database\"\335\002\n\034CreateBackup"
-          + "EncryptionConfig\022k\n\017encryption_type\030\001 \001("
-          + "\0162M.google.spanner.admin.database.v1.Cre"
-          + "ateBackupEncryptionConfig.EncryptionType"
-          + "B\003\340A\002\022?\n\014kms_key_name\030\002 \001(\tB)\340A\001\372A#\n!clo"
-          + "udkms.googleapis.com/CryptoKey\"\216\001\n\016Encry"
-          + "ptionType\022\037\n\033ENCRYPTION_TYPE_UNSPECIFIED"
-          + "\020\000\022\033\n\027USE_DATABASE_ENCRYPTION\020\001\022\035\n\031GOOGL"
-          + "E_DEFAULT_ENCRYPTION\020\002\022\037\n\033CUSTOMER_MANAG"
-          + "ED_ENCRYPTION\020\003\"\351\002\n\032CopyBackupEncryption"
-          + "Config\022i\n\017encryption_type\030\001 \001(\0162K.google"
-          + ".spanner.admin.database.v1.CopyBackupEnc"
-          + "ryptionConfig.EncryptionTypeB\003\340A\002\022?\n\014kms"
-          + "_key_name\030\002 \001(\tB)\340A\001\372A#\n!cloudkms.google"
-          + "apis.com/CryptoKey\"\236\001\n\016EncryptionType\022\037\n"
-          + "\033ENCRYPTION_TYPE_UNSPECIFIED\020\000\022+\n\'USE_CO"
-          + "NFIG_DEFAULT_OR_BACKUP_ENCRYPTION\020\001\022\035\n\031G"
-          + "OOGLE_DEFAULT_ENCRYPTION\020\002\022\037\n\033CUSTOMER_M"
-          + "ANAGED_ENCRYPTION\020\003B\375\001\n$com.google.spann"
-          + "er.admin.database.v1B\013BackupProtoP\001ZFclo"
-          + "ud.google.com/go/spanner/admin/database/"
-          + "apiv1/databasepb;databasepb\252\002&Google.Clo"
-          + "ud.Spanner.Admin.Database.V1\312\002&Google\\Cl"
-          + "oud\\Spanner\\Admin\\Database\\V1\352\002+Google::"
-          + "Cloud::Spanner::Admin::Database::V1b\006pro"
-          + "to3"
+          + "pB\004\342A\001\003\022\030\n\nsize_bytes\030\005 \001(\003B\004\342A\001\003\022C\n\005sta"
+          + "te\030\006 \001(\0162..google.spanner.admin.database"
+          + ".v1.Backup.StateB\004\342A\001\003\022G\n\025referencing_da"
+          + "tabases\030\007 \003(\tB(\342A\001\003\372A!\n\037spanner.googleap"
+          + "is.com/Database\022O\n\017encryption_info\030\010 \001(\013"
+          + "20.google.spanner.admin.database.v1.Encr"
+          + "yptionInfoB\004\342A\001\003\022Q\n\020database_dialect\030\n \001"
+          + "(\01621.google.spanner.admin.database.v1.Da"
+          + "tabaseDialectB\004\342A\001\003\022C\n\023referencing_backu"
+          + "ps\030\013 \003(\tB&\342A\001\003\372A\037\n\035spanner.googleapis.co"
+          + "m/Backup\0229\n\017max_expire_time\030\014 \001(\0132\032.goog"
+          + "le.protobuf.TimestampB\004\342A\001\003\"7\n\005State\022\025\n\021"
+          + "STATE_UNSPECIFIED\020\000\022\014\n\010CREATING\020\001\022\t\n\005REA"
+          + "DY\020\002:\\\352AY\n\035spanner.googleapis.com/Backup"
+          + "\0228projects/{project}/instances/{instance"
+          + "}/backups/{backup}\"\211\002\n\023CreateBackupReque"
+          + "st\0228\n\006parent\030\001 \001(\tB(\342A\001\002\372A!\n\037spanner.goo"
+          + "gleapis.com/Instance\022\027\n\tbackup_id\030\002 \001(\tB"
+          + "\004\342A\001\002\022>\n\006backup\030\003 \001(\0132(.google.spanner.a"
+          + "dmin.database.v1.BackupB\004\342A\001\002\022_\n\021encrypt"
+          + "ion_config\030\004 \001(\0132>.google.spanner.admin."
+          + "database.v1.CreateBackupEncryptionConfig"
+          + "B\004\342A\001\001\"\370\001\n\024CreateBackupMetadata\0220\n\004name\030"
+          + "\001 \001(\tB\"\372A\037\n\035spanner.googleapis.com/Backu"
+          + "p\0226\n\010database\030\002 \001(\tB$\372A!\n\037spanner.google"
+          + "apis.com/Database\022E\n\010progress\030\003 \001(\01323.go"
+          + "ogle.spanner.admin.database.v1.Operation"
+          + "Progress\022/\n\013cancel_time\030\004 \001(\0132\032.google.p"
+          + "rotobuf.Timestamp\"\273\002\n\021CopyBackupRequest\022"
+          + "8\n\006parent\030\001 \001(\tB(\342A\001\002\372A!\n\037spanner.google"
+          + "apis.com/Instance\022\027\n\tbackup_id\030\002 \001(\tB\004\342A"
+          + "\001\002\022=\n\rsource_backup\030\003 \001(\tB&\342A\001\002\372A\037\n\035span"
+          + "ner.googleapis.com/Backup\0225\n\013expire_time"
+          + "\030\004 \001(\0132\032.google.protobuf.TimestampB\004\342A\001\002"
+          + "\022]\n\021encryption_config\030\005 \001(\0132<.google.spa"
+          + "nner.admin.database.v1.CopyBackupEncrypt"
+          + "ionConfigB\004\342A\001\001\"\371\001\n\022CopyBackupMetadata\0220"
+          + "\n\004name\030\001 \001(\tB\"\372A\037\n\035spanner.googleapis.co"
+          + "m/Backup\0229\n\rsource_backup\030\002 \001(\tB\"\372A\037\n\035sp"
+          + "anner.googleapis.com/Backup\022E\n\010progress\030"
+          + "\003 \001(\01323.google.spanner.admin.database.v1"
+          + ".OperationProgress\022/\n\013cancel_time\030\004 \001(\0132"
+          + "\032.google.protobuf.Timestamp\"\214\001\n\023UpdateBa"
+          + "ckupRequest\022>\n\006backup\030\001 \001(\0132(.google.spa"
+          + "nner.admin.database.v1.BackupB\004\342A\001\002\0225\n\013u"
+          + "pdate_mask\030\002 \001(\0132\032.google.protobuf.Field"
+          + "MaskB\004\342A\001\002\"H\n\020GetBackupRequest\0224\n\004name\030\001"
+          + " \001(\tB&\342A\001\002\372A\037\n\035spanner.googleapis.com/Ba"
+          + "ckup\"K\n\023DeleteBackupRequest\0224\n\004name\030\001 \001("
+          + "\tB&\342A\001\002\372A\037\n\035spanner.googleapis.com/Backu"
+          + "p\"\205\001\n\022ListBackupsRequest\0228\n\006parent\030\001 \001(\t"
+          + "B(\342A\001\002\372A!\n\037spanner.googleapis.com/Instan"
+          + "ce\022\016\n\006filter\030\002 \001(\t\022\021\n\tpage_size\030\003 \001(\005\022\022\n"
+          + "\npage_token\030\004 \001(\t\"i\n\023ListBackupsResponse"
+          + "\0229\n\007backups\030\001 \003(\0132(.google.spanner.admin"
+          + ".database.v1.Backup\022\027\n\017next_page_token\030\002"
+          + " \001(\t\"\216\001\n\033ListBackupOperationsRequest\0228\n\006"
+          + "parent\030\001 \001(\tB(\342A\001\002\372A!\n\037spanner.googleapi"
+          + "s.com/Instance\022\016\n\006filter\030\002 \001(\t\022\021\n\tpage_s"
+          + "ize\030\003 \001(\005\022\022\n\npage_token\030\004 \001(\t\"j\n\034ListBac"
+          + "kupOperationsResponse\0221\n\noperations\030\001 \003("
+          + "\0132\035.google.longrunning.Operation\022\027\n\017next"
+          + "_page_token\030\002 \001(\t\"\342\001\n\nBackupInfo\0222\n\006back"
+          + "up\030\001 \001(\tB\"\372A\037\n\035spanner.googleapis.com/Ba"
+          + "ckup\0220\n\014version_time\030\004 \001(\0132\032.google.prot"
+          + "obuf.Timestamp\022/\n\013create_time\030\002 \001(\0132\032.go"
+          + "ogle.protobuf.Timestamp\022=\n\017source_databa"
+          + "se\030\003 \001(\tB$\372A!\n\037spanner.googleapis.com/Da"
+          + "tabase\"\337\002\n\034CreateBackupEncryptionConfig\022"
+          + "l\n\017encryption_type\030\001 \001(\0162M.google.spanne"
+          + "r.admin.database.v1.CreateBackupEncrypti"
+          + "onConfig.EncryptionTypeB\004\342A\001\002\022@\n\014kms_key"
+          + "_name\030\002 \001(\tB*\342A\001\001\372A#\n!cloudkms.googleapi"
+          + "s.com/CryptoKey\"\216\001\n\016EncryptionType\022\037\n\033EN"
+          + "CRYPTION_TYPE_UNSPECIFIED\020\000\022\033\n\027USE_DATAB"
+          + "ASE_ENCRYPTION\020\001\022\035\n\031GOOGLE_DEFAULT_ENCRY"
+          + "PTION\020\002\022\037\n\033CUSTOMER_MANAGED_ENCRYPTION\020\003"
+          + "\"\353\002\n\032CopyBackupEncryptionConfig\022j\n\017encry"
+          + "ption_type\030\001 \001(\0162K.google.spanner.admin."
+          + "database.v1.CopyBackupEncryptionConfig.E"
+          + "ncryptionTypeB\004\342A\001\002\022@\n\014kms_key_name\030\002 \001("
+          + "\tB*\342A\001\001\372A#\n!cloudkms.googleapis.com/Cryp"
+          + "toKey\"\236\001\n\016EncryptionType\022\037\n\033ENCRYPTION_T"
+          + "YPE_UNSPECIFIED\020\000\022+\n\'USE_CONFIG_DEFAULT_"
+          + "OR_BACKUP_ENCRYPTION\020\001\022\035\n\031GOOGLE_DEFAULT"
+          + "_ENCRYPTION\020\002\022\037\n\033CUSTOMER_MANAGED_ENCRYP"
+          + "TION\020\003B\375\001\n$com.google.spanner.admin.data"
+          + "base.v1B\013BackupProtoP\001ZFcloud.google.com"
+          + "/go/spanner/admin/database/apiv1/databas"
+          + "epb;databasepb\252\002&Google.Cloud.Spanner.Ad"
+          + "min.Database.V1\312\002&Google\\Cloud\\Spanner\\A"
+          + "dmin\\Database\\V1\352\002+Google::Cloud::Spanne"
+          + "r::Admin::Database::V1b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CommonProto.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CommonProto.java
index a381d3c5122..0f5840f6f15 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CommonProto.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CommonProto.java
@@ -58,31 +58,32 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
           + "tobuf.Timestamp\022,\n\010end_time\030\003 \001(\0132\032.goog"
           + "le.protobuf.Timestamp\"P\n\020EncryptionConfi"
           + "g\022<\n\014kms_key_name\030\002 \001(\tB&\372A#\n!cloudkms.g"
-          + "oogleapis.com/CryptoKey\"\302\002\n\016EncryptionIn"
-          + "fo\022S\n\017encryption_type\030\003 \001(\01625.google.spa"
+          + "oogleapis.com/CryptoKey\"\305\002\n\016EncryptionIn"
+          + "fo\022T\n\017encryption_type\030\003 \001(\01625.google.spa"
           + "nner.admin.database.v1.EncryptionInfo.Ty"
-          + "peB\003\340A\003\0222\n\021encryption_status\030\004 \001(\0132\022.goo"
-          + "gle.rpc.StatusB\003\340A\003\022I\n\017kms_key_version\030\002"
-          + " \001(\tB0\340A\003\372A*\n(cloudkms.googleapis.com/Cr"
-          + "yptoKeyVersion\"\\\n\004Type\022\024\n\020TYPE_UNSPECIFI"
-          + "ED\020\000\022\035\n\031GOOGLE_DEFAULT_ENCRYPTION\020\001\022\037\n\033C"
-          + "USTOMER_MANAGED_ENCRYPTION\020\002*\\\n\017Database"
-          + "Dialect\022 \n\034DATABASE_DIALECT_UNSPECIFIED\020"
-          + "\000\022\027\n\023GOOGLE_STANDARD_SQL\020\001\022\016\n\nPOSTGRESQL"
-          + "\020\002B\242\004\n$com.google.spanner.admin.database"
-          + ".v1B\013CommonProtoP\001ZFcloud.google.com/go/"
-          + "spanner/admin/database/apiv1/databasepb;"
-          + "databasepb\252\002&Google.Cloud.Spanner.Admin."
-          + "Database.V1\312\002&Google\\Cloud\\Spanner\\Admin"
-          + "\\Database\\V1\352\002+Google::Cloud::Spanner::A"
-          + "dmin::Database::V1\352Ax\n!cloudkms.googleap"
-          + "is.com/CryptoKey\022Sprojects/{project}/loc"
-          + "ations/{location}/keyRings/{key_ring}/cr"
-          + "yptoKeys/{crypto_key}\352A\246\001\n(cloudkms.goog"
-          + "leapis.com/CryptoKeyVersion\022zprojects/{p"
-          + "roject}/locations/{location}/keyRings/{k"
-          + "ey_ring}/cryptoKeys/{crypto_key}/cryptoK"
-          + "eyVersions/{crypto_key_version}b\006proto3"
+          + "peB\004\342A\001\003\0223\n\021encryption_status\030\004 \001(\0132\022.go"
+          + "ogle.rpc.StatusB\004\342A\001\003\022J\n\017kms_key_version"
+          + "\030\002 \001(\tB1\342A\001\003\372A*\n(cloudkms.googleapis.com"
+          + "/CryptoKeyVersion\"\\\n\004Type\022\024\n\020TYPE_UNSPEC"
+          + "IFIED\020\000\022\035\n\031GOOGLE_DEFAULT_ENCRYPTION\020\001\022\037"
+          + "\n\033CUSTOMER_MANAGED_ENCRYPTION\020\002*\\\n\017Datab"
+          + "aseDialect\022 \n\034DATABASE_DIALECT_UNSPECIFI"
+          + "ED\020\000\022\027\n\023GOOGLE_STANDARD_SQL\020\001\022\016\n\nPOSTGRE"
+          + "SQL\020\002B\242\004\n$com.google.spanner.admin.datab"
+          + "ase.v1B\013CommonProtoP\001ZFcloud.google.com/"
+          + "go/spanner/admin/database/apiv1/database"
+          + "pb;databasepb\252\002&Google.Cloud.Spanner.Adm"
+          + "in.Database.V1\312\002&Google\\Cloud\\Spanner\\Ad"
+          + "min\\Database\\V1\352\002+Google::Cloud::Spanner"
+          + "::Admin::Database::V1\352Ax\n!cloudkms.googl"
+          + "eapis.com/CryptoKey\022Sprojects/{project}/"
+          + "locations/{location}/keyRings/{key_ring}"
+          + "/cryptoKeys/{crypto_key}\352A\246\001\n(cloudkms.g"
+          + "oogleapis.com/CryptoKeyVersion\022zprojects"
+          + "/{project}/locations/{location}/keyRings"
+          + "/{key_ring}/cryptoKeys/{crypto_key}/cryp"
+          + "toKeyVersions/{crypto_key_version}b\006prot"
+          + "o3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupEncryptionConfig.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupEncryptionConfig.java
index 3b571fd926b..bfa78ae301f 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupEncryptionConfig.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupEncryptionConfig.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new CopyBackupEncryptionConfig();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.BackupProto
         .internal_static_google_spanner_admin_database_v1_CopyBackupEncryptionConfig_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupMetadata.java
index f2bc437a1ad..63db05c5083 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupMetadata.java
@@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new CopyBackupMetadata();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.BackupProto
         .internal_static_google_spanner_admin_database_v1_CopyBackupMetadata_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupRequest.java
index 810c5043ce9..62cbd05991d 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupRequest.java
@@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new CopyBackupRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.BackupProto
         .internal_static_google_spanner_admin_database_v1_CopyBackupRequest_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupEncryptionConfig.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupEncryptionConfig.java
index 1381514795c..72efb786d53 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupEncryptionConfig.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupEncryptionConfig.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new CreateBackupEncryptionConfig();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.BackupProto
         .internal_static_google_spanner_admin_database_v1_CreateBackupEncryptionConfig_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupMetadata.java
index c534895357a..83c3b45c003 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupMetadata.java
@@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new CreateBackupMetadata();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.BackupProto
         .internal_static_google_spanner_admin_database_v1_CreateBackupMetadata_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupRequest.java
index 96197d756b5..3ac0f2c8558 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupRequest.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new CreateBackupRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.BackupProto
         .internal_static_google_spanner_admin_database_v1_CreateBackupRequest_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseMetadata.java
index b24893c407a..ebcc297cbba 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseMetadata.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new CreateDatabaseMetadata();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_CreateDatabaseMetadata_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseRequest.java
index e393b538ff4..38317542e4c 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseRequest.java
@@ -40,7 +40,7 @@ private CreateDatabaseRequest(com.google.protobuf.GeneratedMessageV3.Builder
   private CreateDatabaseRequest() {
     parent_ = "";
     createStatement_ = "";
-    extraStatements_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    extraStatements_ = com.google.protobuf.LazyStringArrayList.emptyList();
     databaseDialect_ = 0;
   }
 
@@ -50,11 +50,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new CreateDatabaseRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_CreateDatabaseRequest_descriptor;
@@ -189,7 +184,8 @@ public com.google.protobuf.ByteString getCreateStatementBytes() {
   public static final int EXTRA_STATEMENTS_FIELD_NUMBER = 3;
 
   @SuppressWarnings("serial")
-  private com.google.protobuf.LazyStringList extraStatements_;
+  private com.google.protobuf.LazyStringArrayList extraStatements_ =
+      com.google.protobuf.LazyStringArrayList.emptyList();
   /**
    *
    *
@@ -618,8 +614,7 @@ public Builder clear() {
       bitField0_ = 0;
       parent_ = "";
       createStatement_ = "";
-      extraStatements_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000004);
+      extraStatements_ = com.google.protobuf.LazyStringArrayList.emptyList();
       encryptionConfig_ = null;
       if (encryptionConfigBuilder_ != null) {
         encryptionConfigBuilder_.dispose();
@@ -653,7 +648,6 @@ public com.google.spanner.admin.database.v1.CreateDatabaseRequest build() {
     public com.google.spanner.admin.database.v1.CreateDatabaseRequest buildPartial() {
       com.google.spanner.admin.database.v1.CreateDatabaseRequest result =
           new com.google.spanner.admin.database.v1.CreateDatabaseRequest(this);
-      buildPartialRepeatedFields(result);
       if (bitField0_ != 0) {
         buildPartial0(result);
       }
@@ -661,15 +655,6 @@ public com.google.spanner.admin.database.v1.CreateDatabaseRequest buildPartial()
       return result;
     }
 
-    private void buildPartialRepeatedFields(
-        com.google.spanner.admin.database.v1.CreateDatabaseRequest result) {
-      if (((bitField0_ & 0x00000004) != 0)) {
-        extraStatements_ = extraStatements_.getUnmodifiableView();
-        bitField0_ = (bitField0_ & ~0x00000004);
-      }
-      result.extraStatements_ = extraStatements_;
-    }
-
     private void buildPartial0(com.google.spanner.admin.database.v1.CreateDatabaseRequest result) {
       int from_bitField0_ = bitField0_;
       if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -678,6 +663,10 @@ private void buildPartial0(com.google.spanner.admin.database.v1.CreateDatabaseRe
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.createStatement_ = createStatement_;
       }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        extraStatements_.makeImmutable();
+        result.extraStatements_ = extraStatements_;
+      }
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.encryptionConfig_ =
             encryptionConfigBuilder_ == null ? encryptionConfig_ : encryptionConfigBuilder_.build();
@@ -746,7 +735,7 @@ public Builder mergeFrom(com.google.spanner.admin.database.v1.CreateDatabaseRequ
       if (!other.extraStatements_.isEmpty()) {
         if (extraStatements_.isEmpty()) {
           extraStatements_ = other.extraStatements_;
-          bitField0_ = (bitField0_ & ~0x00000004);
+          bitField0_ |= 0x00000004;
         } else {
           ensureExtraStatementsIsMutable();
           extraStatements_.addAll(other.extraStatements_);
@@ -1083,14 +1072,14 @@ public Builder setCreateStatementBytes(com.google.protobuf.ByteString value) {
       return this;
     }
 
-    private com.google.protobuf.LazyStringList extraStatements_ =
-        com.google.protobuf.LazyStringArrayList.EMPTY;
+    private com.google.protobuf.LazyStringArrayList extraStatements_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
 
     private void ensureExtraStatementsIsMutable() {
-      if (!((bitField0_ & 0x00000004) != 0)) {
+      if (!extraStatements_.isModifiable()) {
         extraStatements_ = new com.google.protobuf.LazyStringArrayList(extraStatements_);
-        bitField0_ |= 0x00000004;
       }
+      bitField0_ |= 0x00000004;
     }
     /**
      *
@@ -1107,7 +1096,8 @@ private void ensureExtraStatementsIsMutable() {
      * @return A list containing the extraStatements.
      */
     public com.google.protobuf.ProtocolStringList getExtraStatementsList() {
-      return extraStatements_.getUnmodifiableView();
+      extraStatements_.makeImmutable();
+      return extraStatements_;
     }
     /**
      *
@@ -1184,6 +1174,7 @@ public Builder setExtraStatements(int index, java.lang.String value) {
       }
       ensureExtraStatementsIsMutable();
       extraStatements_.set(index, value);
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1208,6 +1199,7 @@ public Builder addExtraStatements(java.lang.String value) {
       }
       ensureExtraStatementsIsMutable();
       extraStatements_.add(value);
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1229,6 +1221,7 @@ public Builder addExtraStatements(java.lang.String value) {
     public Builder addAllExtraStatements(java.lang.Iterable values) {
       ensureExtraStatementsIsMutable();
       com.google.protobuf.AbstractMessageLite.Builder.addAll(values, extraStatements_);
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1247,8 +1240,9 @@ public Builder addAllExtraStatements(java.lang.Iterable values
      * @return This builder for chaining.
      */
     public Builder clearExtraStatements() {
-      extraStatements_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      extraStatements_ = com.google.protobuf.LazyStringArrayList.emptyList();
       bitField0_ = (bitField0_ & ~0x00000004);
+      ;
       onChanged();
       return this;
     }
@@ -1274,6 +1268,7 @@ public Builder addExtraStatementsBytes(com.google.protobuf.ByteString value) {
       checkByteStringIsUtf8(value);
       ensureExtraStatementsIsMutable();
       extraStatements_.add(value);
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Database.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Database.java
index f982cfe291a..c87638bef4d 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Database.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Database.java
@@ -52,11 +52,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new Database();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_Database_descriptor;
@@ -119,6 +114,7 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum {
      * 
      * The database is fully created and ready for use, but is still
      * being optimized for performance and cannot handle full load.
+     *
      * In this state, the database still references the backup
      * it was restore from, preventing the backup
      * from being deleted. When optimizations are complete, the full performance
@@ -169,6 +165,7 @@ public enum State implements com.google.protobuf.ProtocolMessageEnum {
      * 
      * The database is fully created and ready for use, but is still
      * being optimized for performance and cannot handle full load.
+     *
      * In this state, the database still references the backup
      * it was restore from, preventing the backup
      * from being deleted. When optimizations are complete, the full performance
@@ -550,8 +547,10 @@ public com.google.spanner.admin.database.v1.EncryptionConfig getEncryptionConfig
    * Output only. For databases that are using customer managed encryption, this
    * field contains the encryption information for the database, such as
    * encryption state and the Cloud KMS key versions that are in use.
+   *
    * For databases that are using Google default or other types of encryption,
    * this field is empty.
+   *
    * This field is propagated lazily from the backend. There might be a delay
    * from when a key version is being used and when it appears in this field.
    * 
@@ -572,8 +571,10 @@ public com.google.spanner.admin.database.v1.EncryptionConfig getEncryptionConfig * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -594,8 +595,10 @@ public com.google.spanner.admin.database.v1.EncryptionConfig getEncryptionConfig * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -615,8 +618,10 @@ public int getEncryptionInfoCount() { * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -636,8 +641,10 @@ public com.google.spanner.admin.database.v1.EncryptionInfo getEncryptionInfo(int * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -789,6 +796,7 @@ public com.google.protobuf.TimestampOrBuilder getEarliestVersionTimeOrBuilder() *
    * Output only. The read-write region which contains the database's leader
    * replicas.
+   *
    * This is the same as the value of default_leader
    * database option set using DatabaseAdmin.CreateDatabase or
    * DatabaseAdmin.UpdateDatabaseDdl. If not explicitly set, this is empty.
@@ -816,6 +824,7 @@ public java.lang.String getDefaultLeader() {
    * 
    * Output only. The read-write region which contains the database's leader
    * replicas.
+   *
    * This is the same as the value of default_leader
    * database option set using DatabaseAdmin.CreateDatabase or
    * DatabaseAdmin.UpdateDatabaseDdl. If not explicitly set, this is empty.
@@ -2503,8 +2512,10 @@ private void ensureEncryptionInfoIsMutable() {
      * Output only. For databases that are using customer managed encryption, this
      * field contains the encryption information for the database, such as
      * encryption state and the Cloud KMS key versions that are in use.
+     *
      * For databases that are using Google default or other types of encryption,
      * this field is empty.
+     *
      * This field is propagated lazily from the backend. There might be a delay
      * from when a key version is being used and when it appears in this field.
      * 
@@ -2528,8 +2539,10 @@ private void ensureEncryptionInfoIsMutable() { * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -2552,8 +2565,10 @@ public int getEncryptionInfoCount() { * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -2576,8 +2591,10 @@ public com.google.spanner.admin.database.v1.EncryptionInfo getEncryptionInfo(int * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -2607,8 +2624,10 @@ public Builder setEncryptionInfo( * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -2635,8 +2654,10 @@ public Builder setEncryptionInfo( * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -2665,8 +2686,10 @@ public Builder addEncryptionInfo(com.google.spanner.admin.database.v1.Encryption * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -2696,8 +2719,10 @@ public Builder addEncryptionInfo( * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -2724,8 +2749,10 @@ public Builder addEncryptionInfo( * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. * @@ -2752,8 +2779,10 @@ public Builder addEncryptionInfo( * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. * @@ -2780,8 +2809,10 @@ public Builder addAllEncryptionInfo( * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. * @@ -2807,8 +2838,10 @@ public Builder clearEncryptionInfo() { * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. * @@ -2834,8 +2867,10 @@ public Builder removeEncryptionInfo(int index) { * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. * @@ -2855,8 +2890,10 @@ public com.google.spanner.admin.database.v1.EncryptionInfo.Builder getEncryption * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. * @@ -2880,8 +2917,10 @@ public com.google.spanner.admin.database.v1.EncryptionInfoOrBuilder getEncryptio * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. * @@ -2905,8 +2944,10 @@ public com.google.spanner.admin.database.v1.EncryptionInfoOrBuilder getEncryptio * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. * @@ -2926,8 +2967,10 @@ public com.google.spanner.admin.database.v1.EncryptionInfo.Builder addEncryption * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. * @@ -2949,8 +2992,10 @@ public com.google.spanner.admin.database.v1.EncryptionInfo.Builder addEncryption * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. * @@ -3359,6 +3404,7 @@ public com.google.protobuf.TimestampOrBuilder getEarliestVersionTimeOrBuilder() *
      * Output only. The read-write region which contains the database's leader
      * replicas.
+     *
      * This is the same as the value of default_leader
      * database option set using DatabaseAdmin.CreateDatabase or
      * DatabaseAdmin.UpdateDatabaseDdl. If not explicitly set, this is empty.
@@ -3385,6 +3431,7 @@ public java.lang.String getDefaultLeader() {
      * 
      * Output only. The read-write region which contains the database's leader
      * replicas.
+     *
      * This is the same as the value of default_leader
      * database option set using DatabaseAdmin.CreateDatabase or
      * DatabaseAdmin.UpdateDatabaseDdl. If not explicitly set, this is empty.
@@ -3411,6 +3458,7 @@ public com.google.protobuf.ByteString getDefaultLeaderBytes() {
      * 
      * Output only. The read-write region which contains the database's leader
      * replicas.
+     *
      * This is the same as the value of default_leader
      * database option set using DatabaseAdmin.CreateDatabase or
      * DatabaseAdmin.UpdateDatabaseDdl. If not explicitly set, this is empty.
@@ -3436,6 +3484,7 @@ public Builder setDefaultLeader(java.lang.String value) {
      * 
      * Output only. The read-write region which contains the database's leader
      * replicas.
+     *
      * This is the same as the value of default_leader
      * database option set using DatabaseAdmin.CreateDatabase or
      * DatabaseAdmin.UpdateDatabaseDdl. If not explicitly set, this is empty.
@@ -3457,6 +3506,7 @@ public Builder clearDefaultLeader() {
      * 
      * Output only. The read-write region which contains the database's leader
      * replicas.
+     *
      * This is the same as the value of default_leader
      * database option set using DatabaseAdmin.CreateDatabase or
      * DatabaseAdmin.UpdateDatabaseDdl. If not explicitly set, this is empty.
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseName.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseName.java
index 93da0e4ae84..9c583702ee4 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseName.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2022 Google LLC
+ * Copyright 2023 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseOrBuilder.java
index 0252781fe91..2dd394d2c7c 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseOrBuilder.java
@@ -224,8 +224,10 @@ public interface DatabaseOrBuilder
    * Output only. For databases that are using customer managed encryption, this
    * field contains the encryption information for the database, such as
    * encryption state and the Cloud KMS key versions that are in use.
+   *
    * For databases that are using Google default or other types of encryption,
    * this field is empty.
+   *
    * This field is propagated lazily from the backend. There might be a delay
    * from when a key version is being used and when it appears in this field.
    * 
@@ -242,8 +244,10 @@ public interface DatabaseOrBuilder * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -260,8 +264,10 @@ public interface DatabaseOrBuilder * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -278,8 +284,10 @@ public interface DatabaseOrBuilder * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -297,8 +305,10 @@ public interface DatabaseOrBuilder * Output only. For databases that are using customer managed encryption, this * field contains the encryption information for the database, such as * encryption state and the Cloud KMS key versions that are in use. + * * For databases that are using Google default or other types of encryption, * this field is empty. + * * This field is propagated lazily from the backend. There might be a delay * from when a key version is being used and when it appears in this field. *
@@ -402,6 +412,7 @@ com.google.spanner.admin.database.v1.EncryptionInfoOrBuilder getEncryptionInfoOr *
    * Output only. The read-write region which contains the database's leader
    * replicas.
+   *
    * This is the same as the value of default_leader
    * database option set using DatabaseAdmin.CreateDatabase or
    * DatabaseAdmin.UpdateDatabaseDdl. If not explicitly set, this is empty.
@@ -418,6 +429,7 @@ com.google.spanner.admin.database.v1.EncryptionInfoOrBuilder getEncryptionInfoOr
    * 
    * Output only. The read-write region which contains the database's leader
    * replicas.
+   *
    * This is the same as the value of default_leader
    * database option set using DatabaseAdmin.CreateDatabase or
    * DatabaseAdmin.UpdateDatabaseDdl. If not explicitly set, this is empty.
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseRole.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseRole.java
index 42caf41f84f..d0f86946079 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseRole.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseRole.java
@@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new DatabaseRole();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_DatabaseRole_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfo.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfo.java
new file mode 100644
index 00000000000..8c57d14fb9b
--- /dev/null
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfo.java
@@ -0,0 +1,1161 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/spanner/admin/database/v1/spanner_database_admin.proto
+
+package com.google.spanner.admin.database.v1;
+
+/**
+ *
+ *
+ * 
+ * Action information extracted from a DDL statement. This proto is used to
+ * display the brief info of the DDL statement for the operation
+ * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl].
+ * 
+ * + * Protobuf type {@code google.spanner.admin.database.v1.DdlStatementActionInfo} + */ +public final class DdlStatementActionInfo extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.spanner.admin.database.v1.DdlStatementActionInfo) + DdlStatementActionInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use DdlStatementActionInfo.newBuilder() to construct. + private DdlStatementActionInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private DdlStatementActionInfo() { + action_ = ""; + entityType_ = ""; + entityNames_ = com.google.protobuf.LazyStringArrayList.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new DdlStatementActionInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto + .internal_static_google_spanner_admin_database_v1_DdlStatementActionInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto + .internal_static_google_spanner_admin_database_v1_DdlStatementActionInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.spanner.admin.database.v1.DdlStatementActionInfo.class, + com.google.spanner.admin.database.v1.DdlStatementActionInfo.Builder.class); + } + + public static final int ACTION_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object action_ = ""; + /** + * + * + *
+   * The action for the DDL statement, e.g. CREATE, ALTER, DROP, GRANT, etc.
+   * This field is a non-empty string.
+   * 
+ * + * string action = 1; + * + * @return The action. + */ + @java.lang.Override + public java.lang.String getAction() { + java.lang.Object ref = action_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + action_ = s; + return s; + } + } + /** + * + * + *
+   * The action for the DDL statement, e.g. CREATE, ALTER, DROP, GRANT, etc.
+   * This field is a non-empty string.
+   * 
+ * + * string action = 1; + * + * @return The bytes for action. + */ + @java.lang.Override + public com.google.protobuf.ByteString getActionBytes() { + java.lang.Object ref = action_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + action_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ENTITY_TYPE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object entityType_ = ""; + /** + * + * + *
+   * The entity type for the DDL statement, e.g. TABLE, INDEX, VIEW, etc.
+   * This field can be empty string for some DDL statement,
+   * e.g. for statement "ANALYZE", `entity_type` = "".
+   * 
+ * + * string entity_type = 2; + * + * @return The entityType. + */ + @java.lang.Override + public java.lang.String getEntityType() { + java.lang.Object ref = entityType_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + entityType_ = s; + return s; + } + } + /** + * + * + *
+   * The entity type for the DDL statement, e.g. TABLE, INDEX, VIEW, etc.
+   * This field can be empty string for some DDL statement,
+   * e.g. for statement "ANALYZE", `entity_type` = "".
+   * 
+ * + * string entity_type = 2; + * + * @return The bytes for entityType. + */ + @java.lang.Override + public com.google.protobuf.ByteString getEntityTypeBytes() { + java.lang.Object ref = entityType_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + entityType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ENTITY_NAMES_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList entityNames_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + * + * + *
+   * The entity name(s) being operated on the DDL statement.
+   * E.g.
+   * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+   * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+   * 3. For statement "ANALYZE", `entity_names` = [].
+   * 
+ * + * repeated string entity_names = 3; + * + * @return A list containing the entityNames. + */ + public com.google.protobuf.ProtocolStringList getEntityNamesList() { + return entityNames_; + } + /** + * + * + *
+   * The entity name(s) being operated on the DDL statement.
+   * E.g.
+   * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+   * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+   * 3. For statement "ANALYZE", `entity_names` = [].
+   * 
+ * + * repeated string entity_names = 3; + * + * @return The count of entityNames. + */ + public int getEntityNamesCount() { + return entityNames_.size(); + } + /** + * + * + *
+   * The entity name(s) being operated on the DDL statement.
+   * E.g.
+   * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+   * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+   * 3. For statement "ANALYZE", `entity_names` = [].
+   * 
+ * + * repeated string entity_names = 3; + * + * @param index The index of the element to return. + * @return The entityNames at the given index. + */ + public java.lang.String getEntityNames(int index) { + return entityNames_.get(index); + } + /** + * + * + *
+   * The entity name(s) being operated on the DDL statement.
+   * E.g.
+   * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+   * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+   * 3. For statement "ANALYZE", `entity_names` = [].
+   * 
+ * + * repeated string entity_names = 3; + * + * @param index The index of the value to return. + * @return The bytes of the entityNames at the given index. + */ + public com.google.protobuf.ByteString getEntityNamesBytes(int index) { + return entityNames_.getByteString(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(action_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, action_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(entityType_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, entityType_); + } + for (int i = 0; i < entityNames_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, entityNames_.getRaw(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(action_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, action_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(entityType_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, entityType_); + } + { + int dataSize = 0; + for (int i = 0; i < entityNames_.size(); i++) { + dataSize += computeStringSizeNoTag(entityNames_.getRaw(i)); + } + size += dataSize; + size += 1 * getEntityNamesList().size(); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.spanner.admin.database.v1.DdlStatementActionInfo)) { + return super.equals(obj); + } + com.google.spanner.admin.database.v1.DdlStatementActionInfo other = + (com.google.spanner.admin.database.v1.DdlStatementActionInfo) obj; + + if (!getAction().equals(other.getAction())) return false; + if (!getEntityType().equals(other.getEntityType())) return false; + if (!getEntityNamesList().equals(other.getEntityNamesList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ACTION_FIELD_NUMBER; + hash = (53 * hash) + getAction().hashCode(); + hash = (37 * hash) + ENTITY_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getEntityType().hashCode(); + if (getEntityNamesCount() > 0) { + hash = (37 * hash) + ENTITY_NAMES_FIELD_NUMBER; + hash = (53 * hash) + getEntityNamesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + com.google.spanner.admin.database.v1.DdlStatementActionInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * + * + *
+   * Action information extracted from a DDL statement. This proto is used to
+   * display the brief info of the DDL statement for the operation
+   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl].
+   * 
+ * + * Protobuf type {@code google.spanner.admin.database.v1.DdlStatementActionInfo} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.spanner.admin.database.v1.DdlStatementActionInfo) + com.google.spanner.admin.database.v1.DdlStatementActionInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto + .internal_static_google_spanner_admin_database_v1_DdlStatementActionInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto + .internal_static_google_spanner_admin_database_v1_DdlStatementActionInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.spanner.admin.database.v1.DdlStatementActionInfo.class, + com.google.spanner.admin.database.v1.DdlStatementActionInfo.Builder.class); + } + + // Construct using com.google.spanner.admin.database.v1.DdlStatementActionInfo.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + action_ = ""; + entityType_ = ""; + entityNames_ = com.google.protobuf.LazyStringArrayList.emptyList(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto + .internal_static_google_spanner_admin_database_v1_DdlStatementActionInfo_descriptor; + } + + @java.lang.Override + public com.google.spanner.admin.database.v1.DdlStatementActionInfo getDefaultInstanceForType() { + return com.google.spanner.admin.database.v1.DdlStatementActionInfo.getDefaultInstance(); + } + + @java.lang.Override + public com.google.spanner.admin.database.v1.DdlStatementActionInfo build() { + com.google.spanner.admin.database.v1.DdlStatementActionInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.spanner.admin.database.v1.DdlStatementActionInfo buildPartial() { + com.google.spanner.admin.database.v1.DdlStatementActionInfo result = + new com.google.spanner.admin.database.v1.DdlStatementActionInfo(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.spanner.admin.database.v1.DdlStatementActionInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.action_ = action_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.entityType_ = entityType_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + entityNames_.makeImmutable(); + result.entityNames_ = entityNames_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.spanner.admin.database.v1.DdlStatementActionInfo) { + return mergeFrom((com.google.spanner.admin.database.v1.DdlStatementActionInfo) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.spanner.admin.database.v1.DdlStatementActionInfo other) { + if (other == com.google.spanner.admin.database.v1.DdlStatementActionInfo.getDefaultInstance()) + return this; + if (!other.getAction().isEmpty()) { + action_ = other.action_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getEntityType().isEmpty()) { + entityType_ = other.entityType_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.entityNames_.isEmpty()) { + if (entityNames_.isEmpty()) { + entityNames_ = other.entityNames_; + bitField0_ |= 0x00000004; + } else { + ensureEntityNamesIsMutable(); + entityNames_.addAll(other.entityNames_); + } + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + action_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + entityType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + java.lang.String s = input.readStringRequireUtf8(); + ensureEntityNamesIsMutable(); + entityNames_.add(s); + break; + } // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object action_ = ""; + /** + * + * + *
+     * The action for the DDL statement, e.g. CREATE, ALTER, DROP, GRANT, etc.
+     * This field is a non-empty string.
+     * 
+ * + * string action = 1; + * + * @return The action. + */ + public java.lang.String getAction() { + java.lang.Object ref = action_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + action_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * + * + *
+     * The action for the DDL statement, e.g. CREATE, ALTER, DROP, GRANT, etc.
+     * This field is a non-empty string.
+     * 
+ * + * string action = 1; + * + * @return The bytes for action. + */ + public com.google.protobuf.ByteString getActionBytes() { + java.lang.Object ref = action_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + action_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * + * + *
+     * The action for the DDL statement, e.g. CREATE, ALTER, DROP, GRANT, etc.
+     * This field is a non-empty string.
+     * 
+ * + * string action = 1; + * + * @param value The action to set. + * @return This builder for chaining. + */ + public Builder setAction(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + action_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * + * + *
+     * The action for the DDL statement, e.g. CREATE, ALTER, DROP, GRANT, etc.
+     * This field is a non-empty string.
+     * 
+ * + * string action = 1; + * + * @return This builder for chaining. + */ + public Builder clearAction() { + action_ = getDefaultInstance().getAction(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * + * + *
+     * The action for the DDL statement, e.g. CREATE, ALTER, DROP, GRANT, etc.
+     * This field is a non-empty string.
+     * 
+ * + * string action = 1; + * + * @param value The bytes for action to set. + * @return This builder for chaining. + */ + public Builder setActionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + action_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object entityType_ = ""; + /** + * + * + *
+     * The entity type for the DDL statement, e.g. TABLE, INDEX, VIEW, etc.
+     * This field can be empty string for some DDL statement,
+     * e.g. for statement "ANALYZE", `entity_type` = "".
+     * 
+ * + * string entity_type = 2; + * + * @return The entityType. + */ + public java.lang.String getEntityType() { + java.lang.Object ref = entityType_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + entityType_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * + * + *
+     * The entity type for the DDL statement, e.g. TABLE, INDEX, VIEW, etc.
+     * This field can be empty string for some DDL statement,
+     * e.g. for statement "ANALYZE", `entity_type` = "".
+     * 
+ * + * string entity_type = 2; + * + * @return The bytes for entityType. + */ + public com.google.protobuf.ByteString getEntityTypeBytes() { + java.lang.Object ref = entityType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + entityType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * + * + *
+     * The entity type for the DDL statement, e.g. TABLE, INDEX, VIEW, etc.
+     * This field can be empty string for some DDL statement,
+     * e.g. for statement "ANALYZE", `entity_type` = "".
+     * 
+ * + * string entity_type = 2; + * + * @param value The entityType to set. + * @return This builder for chaining. + */ + public Builder setEntityType(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + entityType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * + * + *
+     * The entity type for the DDL statement, e.g. TABLE, INDEX, VIEW, etc.
+     * This field can be empty string for some DDL statement,
+     * e.g. for statement "ANALYZE", `entity_type` = "".
+     * 
+ * + * string entity_type = 2; + * + * @return This builder for chaining. + */ + public Builder clearEntityType() { + entityType_ = getDefaultInstance().getEntityType(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * + * + *
+     * The entity type for the DDL statement, e.g. TABLE, INDEX, VIEW, etc.
+     * This field can be empty string for some DDL statement,
+     * e.g. for statement "ANALYZE", `entity_type` = "".
+     * 
+ * + * string entity_type = 2; + * + * @param value The bytes for entityType to set. + * @return This builder for chaining. + */ + public Builder setEntityTypeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + entityType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringArrayList entityNames_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureEntityNamesIsMutable() { + if (!entityNames_.isModifiable()) { + entityNames_ = new com.google.protobuf.LazyStringArrayList(entityNames_); + } + bitField0_ |= 0x00000004; + } + /** + * + * + *
+     * The entity name(s) being operated on the DDL statement.
+     * E.g.
+     * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+     * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+     * 3. For statement "ANALYZE", `entity_names` = [].
+     * 
+ * + * repeated string entity_names = 3; + * + * @return A list containing the entityNames. + */ + public com.google.protobuf.ProtocolStringList getEntityNamesList() { + entityNames_.makeImmutable(); + return entityNames_; + } + /** + * + * + *
+     * The entity name(s) being operated on the DDL statement.
+     * E.g.
+     * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+     * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+     * 3. For statement "ANALYZE", `entity_names` = [].
+     * 
+ * + * repeated string entity_names = 3; + * + * @return The count of entityNames. + */ + public int getEntityNamesCount() { + return entityNames_.size(); + } + /** + * + * + *
+     * The entity name(s) being operated on the DDL statement.
+     * E.g.
+     * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+     * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+     * 3. For statement "ANALYZE", `entity_names` = [].
+     * 
+ * + * repeated string entity_names = 3; + * + * @param index The index of the element to return. + * @return The entityNames at the given index. + */ + public java.lang.String getEntityNames(int index) { + return entityNames_.get(index); + } + /** + * + * + *
+     * The entity name(s) being operated on the DDL statement.
+     * E.g.
+     * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+     * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+     * 3. For statement "ANALYZE", `entity_names` = [].
+     * 
+ * + * repeated string entity_names = 3; + * + * @param index The index of the value to return. + * @return The bytes of the entityNames at the given index. + */ + public com.google.protobuf.ByteString getEntityNamesBytes(int index) { + return entityNames_.getByteString(index); + } + /** + * + * + *
+     * The entity name(s) being operated on the DDL statement.
+     * E.g.
+     * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+     * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+     * 3. For statement "ANALYZE", `entity_names` = [].
+     * 
+ * + * repeated string entity_names = 3; + * + * @param index The index to set the value at. + * @param value The entityNames to set. + * @return This builder for chaining. + */ + public Builder setEntityNames(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureEntityNamesIsMutable(); + entityNames_.set(index, value); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * + * + *
+     * The entity name(s) being operated on the DDL statement.
+     * E.g.
+     * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+     * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+     * 3. For statement "ANALYZE", `entity_names` = [].
+     * 
+ * + * repeated string entity_names = 3; + * + * @param value The entityNames to add. + * @return This builder for chaining. + */ + public Builder addEntityNames(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureEntityNamesIsMutable(); + entityNames_.add(value); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * + * + *
+     * The entity name(s) being operated on the DDL statement.
+     * E.g.
+     * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+     * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+     * 3. For statement "ANALYZE", `entity_names` = [].
+     * 
+ * + * repeated string entity_names = 3; + * + * @param values The entityNames to add. + * @return This builder for chaining. + */ + public Builder addAllEntityNames(java.lang.Iterable values) { + ensureEntityNamesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, entityNames_); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * + * + *
+     * The entity name(s) being operated on the DDL statement.
+     * E.g.
+     * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+     * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+     * 3. For statement "ANALYZE", `entity_names` = [].
+     * 
+ * + * repeated string entity_names = 3; + * + * @return This builder for chaining. + */ + public Builder clearEntityNames() { + entityNames_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + ; + onChanged(); + return this; + } + /** + * + * + *
+     * The entity name(s) being operated on the DDL statement.
+     * E.g.
+     * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+     * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+     * 3. For statement "ANALYZE", `entity_names` = [].
+     * 
+ * + * repeated string entity_names = 3; + * + * @param value The bytes of the entityNames to add. + * @return This builder for chaining. + */ + public Builder addEntityNamesBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureEntityNamesIsMutable(); + entityNames_.add(value); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:google.spanner.admin.database.v1.DdlStatementActionInfo) + } + + // @@protoc_insertion_point(class_scope:google.spanner.admin.database.v1.DdlStatementActionInfo) + private static final com.google.spanner.admin.database.v1.DdlStatementActionInfo DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.spanner.admin.database.v1.DdlStatementActionInfo(); + } + + public static com.google.spanner.admin.database.v1.DdlStatementActionInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DdlStatementActionInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.spanner.admin.database.v1.DdlStatementActionInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfoOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfoOrBuilder.java new file mode 100644 index 00000000000..77632b556eb --- /dev/null +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfoOrBuilder.java @@ -0,0 +1,148 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/spanner/admin/database/v1/spanner_database_admin.proto + +package com.google.spanner.admin.database.v1; + +public interface DdlStatementActionInfoOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.spanner.admin.database.v1.DdlStatementActionInfo) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * The action for the DDL statement, e.g. CREATE, ALTER, DROP, GRANT, etc.
+   * This field is a non-empty string.
+   * 
+ * + * string action = 1; + * + * @return The action. + */ + java.lang.String getAction(); + /** + * + * + *
+   * The action for the DDL statement, e.g. CREATE, ALTER, DROP, GRANT, etc.
+   * This field is a non-empty string.
+   * 
+ * + * string action = 1; + * + * @return The bytes for action. + */ + com.google.protobuf.ByteString getActionBytes(); + + /** + * + * + *
+   * The entity type for the DDL statement, e.g. TABLE, INDEX, VIEW, etc.
+   * This field can be empty string for some DDL statement,
+   * e.g. for statement "ANALYZE", `entity_type` = "".
+   * 
+ * + * string entity_type = 2; + * + * @return The entityType. + */ + java.lang.String getEntityType(); + /** + * + * + *
+   * The entity type for the DDL statement, e.g. TABLE, INDEX, VIEW, etc.
+   * This field can be empty string for some DDL statement,
+   * e.g. for statement "ANALYZE", `entity_type` = "".
+   * 
+ * + * string entity_type = 2; + * + * @return The bytes for entityType. + */ + com.google.protobuf.ByteString getEntityTypeBytes(); + + /** + * + * + *
+   * The entity name(s) being operated on the DDL statement.
+   * E.g.
+   * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+   * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+   * 3. For statement "ANALYZE", `entity_names` = [].
+   * 
+ * + * repeated string entity_names = 3; + * + * @return A list containing the entityNames. + */ + java.util.List getEntityNamesList(); + /** + * + * + *
+   * The entity name(s) being operated on the DDL statement.
+   * E.g.
+   * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+   * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+   * 3. For statement "ANALYZE", `entity_names` = [].
+   * 
+ * + * repeated string entity_names = 3; + * + * @return The count of entityNames. + */ + int getEntityNamesCount(); + /** + * + * + *
+   * The entity name(s) being operated on the DDL statement.
+   * E.g.
+   * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+   * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+   * 3. For statement "ANALYZE", `entity_names` = [].
+   * 
+ * + * repeated string entity_names = 3; + * + * @param index The index of the element to return. + * @return The entityNames at the given index. + */ + java.lang.String getEntityNames(int index); + /** + * + * + *
+   * The entity name(s) being operated on the DDL statement.
+   * E.g.
+   * 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"].
+   * 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"].
+   * 3. For statement "ANALYZE", `entity_names` = [].
+   * 
+ * + * repeated string entity_names = 3; + * + * @param index The index of the value to return. + * @return The bytes of the entityNames at the given index. + */ + com.google.protobuf.ByteString getEntityNamesBytes(int index); +} diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupRequest.java index e095273e163..b7ec86f086c 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupRequest.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupRequest.java @@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new DeleteBackupRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.BackupProto .internal_static_google_spanner_admin_database_v1_DeleteBackupRequest_descriptor; diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DropDatabaseRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DropDatabaseRequest.java index 2aea18dad1a..401e68627a3 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DropDatabaseRequest.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DropDatabaseRequest.java @@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new DropDatabaseRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto .internal_static_google_spanner_admin_database_v1_DropDatabaseRequest_descriptor; diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionConfig.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionConfig.java index 1ef8ecc89c4..77046a46e50 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionConfig.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionConfig.java @@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new EncryptionConfig(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.CommonProto .internal_static_google_spanner_admin_database_v1_EncryptionConfig_descriptor; diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionInfo.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionInfo.java index 87cecf2d4a4..b5a473e4b8b 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionInfo.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionInfo.java @@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new EncryptionInfo(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.CommonProto .internal_static_google_spanner_admin_database_v1_EncryptionInfo_descriptor; diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupRequest.java index 7f3cad81b14..cd3c0180bc6 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupRequest.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupRequest.java @@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new GetBackupRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.BackupProto .internal_static_google_spanner_admin_database_v1_GetBackupRequest_descriptor; diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlRequest.java index 528e3bb5d78..311555b751c 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlRequest.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlRequest.java @@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new GetDatabaseDdlRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto .internal_static_google_spanner_admin_database_v1_GetDatabaseDdlRequest_descriptor; diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlResponse.java index c4ad5e76da3..fd710da5da0 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlResponse.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlResponse.java @@ -38,7 +38,7 @@ private GetDatabaseDdlResponse(com.google.protobuf.GeneratedMessageV3.Builder } private GetDatabaseDdlResponse() { - statements_ = com.google.protobuf.LazyStringArrayList.EMPTY; + statements_ = com.google.protobuf.LazyStringArrayList.emptyList(); } @java.lang.Override @@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new GetDatabaseDdlResponse(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto .internal_static_google_spanner_admin_database_v1_GetDatabaseDdlResponse_descriptor; @@ -70,7 +65,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { public static final int STATEMENTS_FIELD_NUMBER = 1; @SuppressWarnings("serial") - private com.google.protobuf.LazyStringList statements_; + private com.google.protobuf.LazyStringArrayList statements_ = + com.google.protobuf.LazyStringArrayList.emptyList(); /** * * @@ -340,8 +336,7 @@ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { public Builder clear() { super.clear(); bitField0_ = 0; - statements_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); + statements_ = com.google.protobuf.LazyStringArrayList.emptyList(); return this; } @@ -369,7 +364,6 @@ public com.google.spanner.admin.database.v1.GetDatabaseDdlResponse build() { public com.google.spanner.admin.database.v1.GetDatabaseDdlResponse buildPartial() { com.google.spanner.admin.database.v1.GetDatabaseDdlResponse result = new com.google.spanner.admin.database.v1.GetDatabaseDdlResponse(this); - buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } @@ -377,17 +371,12 @@ public com.google.spanner.admin.database.v1.GetDatabaseDdlResponse buildPartial( return result; } - private void buildPartialRepeatedFields( - com.google.spanner.admin.database.v1.GetDatabaseDdlResponse result) { - if (((bitField0_ & 0x00000001) != 0)) { - statements_ = statements_.getUnmodifiableView(); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.statements_ = statements_; - } - private void buildPartial0(com.google.spanner.admin.database.v1.GetDatabaseDdlResponse result) { int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + statements_.makeImmutable(); + result.statements_ = statements_; + } } @java.lang.Override @@ -439,7 +428,7 @@ public Builder mergeFrom(com.google.spanner.admin.database.v1.GetDatabaseDdlResp if (!other.statements_.isEmpty()) { if (statements_.isEmpty()) { statements_ = other.statements_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ |= 0x00000001; } else { ensureStatementsIsMutable(); statements_.addAll(other.statements_); @@ -498,14 +487,14 @@ public Builder mergeFrom( private int bitField0_; - private com.google.protobuf.LazyStringList statements_ = - com.google.protobuf.LazyStringArrayList.EMPTY; + private com.google.protobuf.LazyStringArrayList statements_ = + com.google.protobuf.LazyStringArrayList.emptyList(); private void ensureStatementsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!statements_.isModifiable()) { statements_ = new com.google.protobuf.LazyStringArrayList(statements_); - bitField0_ |= 0x00000001; } + bitField0_ |= 0x00000001; } /** * @@ -520,7 +509,8 @@ private void ensureStatementsIsMutable() { * @return A list containing the statements. */ public com.google.protobuf.ProtocolStringList getStatementsList() { - return statements_.getUnmodifiableView(); + statements_.makeImmutable(); + return statements_; } /** * @@ -589,6 +579,7 @@ public Builder setStatements(int index, java.lang.String value) { } ensureStatementsIsMutable(); statements_.set(index, value); + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -611,6 +602,7 @@ public Builder addStatements(java.lang.String value) { } ensureStatementsIsMutable(); statements_.add(value); + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -630,6 +622,7 @@ public Builder addStatements(java.lang.String value) { public Builder addAllStatements(java.lang.Iterable values) { ensureStatementsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll(values, statements_); + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -646,8 +639,9 @@ public Builder addAllStatements(java.lang.Iterable values) { * @return This builder for chaining. */ public Builder clearStatements() { - statements_ = com.google.protobuf.LazyStringArrayList.EMPTY; + statements_ = com.google.protobuf.LazyStringArrayList.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); + ; onChanged(); return this; } @@ -671,6 +665,7 @@ public Builder addStatementsBytes(com.google.protobuf.ByteString value) { checkByteStringIsUtf8(value); ensureStatementsIsMutable(); statements_.add(value); + bitField0_ |= 0x00000001; onChanged(); return this; } diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseRequest.java index 2a501d6d7cf..d6b52bfbbfa 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseRequest.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseRequest.java @@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new GetDatabaseRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto .internal_static_google_spanner_admin_database_v1_GetDatabaseRequest_descriptor; diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/InstanceName.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/InstanceName.java index abe1ad6b3d8..afc77685648 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/InstanceName.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/InstanceName.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequest.java index 5426f3dd857..a871c005dc6 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequest.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequest.java @@ -50,11 +50,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new ListBackupOperationsRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.BackupProto .internal_static_google_spanner_admin_database_v1_ListBackupOperationsRequest_descriptor; @@ -136,13 +131,16 @@ public com.google.protobuf.ByteString getParentBytes() { * *
    * An expression that filters the list of returned backup operations.
+   *
    * A filter expression consists of a field name, a
    * comparison operator, and a value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [operation][google.longrunning.Operation]
    * are eligible for filtering:
+   *
    *   * `name` - The name of the long-running operation
    *   * `done` - False if the operation is in progress, else true.
    *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -154,10 +152,13 @@ public com.google.protobuf.ByteString getParentBytes() {
    *   * `error` - Error associated with the long-running operation.
    *   * `response.@type` - the type of response.
    *   * `response.<field_name>` - any field in response.value.
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic, but
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `done:true` - The operation is complete.
    *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
    *      `metadata.database:prod` - Returns operations where:
@@ -218,13 +219,16 @@ public java.lang.String getFilter() {
    *
    * 
    * An expression that filters the list of returned backup operations.
+   *
    * A filter expression consists of a field name, a
    * comparison operator, and a value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [operation][google.longrunning.Operation]
    * are eligible for filtering:
+   *
    *   * `name` - The name of the long-running operation
    *   * `done` - False if the operation is in progress, else true.
    *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -236,10 +240,13 @@ public java.lang.String getFilter() {
    *   * `error` - Error associated with the long-running operation.
    *   * `response.@type` - the type of response.
    *   * `response.<field_name>` - any field in response.value.
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic, but
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `done:true` - The operation is complete.
    *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
    *      `metadata.database:prod` - Returns operations where:
@@ -917,13 +924,16 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
      *
      * 
      * An expression that filters the list of returned backup operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -935,10 +945,13 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic, but
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
      *      `metadata.database:prod` - Returns operations where:
@@ -998,13 +1011,16 @@ public java.lang.String getFilter() {
      *
      * 
      * An expression that filters the list of returned backup operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -1016,10 +1032,13 @@ public java.lang.String getFilter() {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic, but
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
      *      `metadata.database:prod` - Returns operations where:
@@ -1079,13 +1098,16 @@ public com.google.protobuf.ByteString getFilterBytes() {
      *
      * 
      * An expression that filters the list of returned backup operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -1097,10 +1119,13 @@ public com.google.protobuf.ByteString getFilterBytes() {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic, but
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
      *      `metadata.database:prod` - Returns operations where:
@@ -1159,13 +1184,16 @@ public Builder setFilter(java.lang.String value) {
      *
      * 
      * An expression that filters the list of returned backup operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -1177,10 +1205,13 @@ public Builder setFilter(java.lang.String value) {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic, but
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
      *      `metadata.database:prod` - Returns operations where:
@@ -1235,13 +1266,16 @@ public Builder clearFilter() {
      *
      * 
      * An expression that filters the list of returned backup operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -1253,10 +1287,13 @@ public Builder clearFilter() {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic, but
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
      *      `metadata.database:prod` - Returns operations where:
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequestOrBuilder.java
index 4d862ccc097..4268655ed60 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequestOrBuilder.java
@@ -59,13 +59,16 @@ public interface ListBackupOperationsRequestOrBuilder
    *
    * 
    * An expression that filters the list of returned backup operations.
+   *
    * A filter expression consists of a field name, a
    * comparison operator, and a value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [operation][google.longrunning.Operation]
    * are eligible for filtering:
+   *
    *   * `name` - The name of the long-running operation
    *   * `done` - False if the operation is in progress, else true.
    *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -77,10 +80,13 @@ public interface ListBackupOperationsRequestOrBuilder
    *   * `error` - Error associated with the long-running operation.
    *   * `response.@type` - the type of response.
    *   * `response.<field_name>` - any field in response.value.
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic, but
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `done:true` - The operation is complete.
    *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
    *      `metadata.database:prod` - Returns operations where:
@@ -130,13 +136,16 @@ public interface ListBackupOperationsRequestOrBuilder
    *
    * 
    * An expression that filters the list of returned backup operations.
+   *
    * A filter expression consists of a field name, a
    * comparison operator, and a value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [operation][google.longrunning.Operation]
    * are eligible for filtering:
+   *
    *   * `name` - The name of the long-running operation
    *   * `done` - False if the operation is in progress, else true.
    *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -148,10 +157,13 @@ public interface ListBackupOperationsRequestOrBuilder
    *   * `error` - Error associated with the long-running operation.
    *   * `response.@type` - the type of response.
    *   * `response.<field_name>` - any field in response.value.
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic, but
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `done:true` - The operation is complete.
    *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
    *      `metadata.database:prod` - Returns operations where:
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsResponse.java
index a1a12ed3bf8..4afe5a1cc6a 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsResponse.java
@@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListBackupOperationsResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.BackupProto
         .internal_static_google_spanner_admin_database_v1_ListBackupOperationsResponse_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequest.java
index 0140292e32b..69c1786eec9 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequest.java
@@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListBackupsRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.BackupProto
         .internal_static_google_spanner_admin_database_v1_ListBackupsRequest_descriptor;
@@ -135,12 +130,15 @@ public com.google.protobuf.ByteString getParentBytes() {
    *
    * 
    * An expression that filters the list of returned backups.
+   *
    * A filter expression consists of a field name, a comparison operator, and a
    * value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [Backup][google.spanner.admin.database.v1.Backup] are eligible for filtering:
+   *
    *   * `name`
    *   * `database`
    *   * `state`
@@ -148,10 +146,13 @@ public com.google.protobuf.ByteString getParentBytes() {
    *   * `expire_time`  (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
    *   * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
    *   * `size_bytes`
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic, but
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `name:Howl` - The backup's name contains the string "howl".
    *   * `database:prod`
    *          - The database's name contains the string "prod".
@@ -186,12 +187,15 @@ public java.lang.String getFilter() {
    *
    * 
    * An expression that filters the list of returned backups.
+   *
    * A filter expression consists of a field name, a comparison operator, and a
    * value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [Backup][google.spanner.admin.database.v1.Backup] are eligible for filtering:
+   *
    *   * `name`
    *   * `database`
    *   * `state`
@@ -199,10 +203,13 @@ public java.lang.String getFilter() {
    *   * `expire_time`  (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
    *   * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
    *   * `size_bytes`
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic, but
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `name:Howl` - The backup's name contains the string "howl".
    *   * `database:prod`
    *          - The database's name contains the string "prod".
@@ -849,12 +856,15 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
      *
      * 
      * An expression that filters the list of returned backups.
+     *
      * A filter expression consists of a field name, a comparison operator, and a
      * value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Backup][google.spanner.admin.database.v1.Backup] are eligible for filtering:
+     *
      *   * `name`
      *   * `database`
      *   * `state`
@@ -862,10 +872,13 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
      *   * `expire_time`  (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
      *   * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
      *   * `size_bytes`
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic, but
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `name:Howl` - The backup's name contains the string "howl".
      *   * `database:prod`
      *          - The database's name contains the string "prod".
@@ -899,12 +912,15 @@ public java.lang.String getFilter() {
      *
      * 
      * An expression that filters the list of returned backups.
+     *
      * A filter expression consists of a field name, a comparison operator, and a
      * value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Backup][google.spanner.admin.database.v1.Backup] are eligible for filtering:
+     *
      *   * `name`
      *   * `database`
      *   * `state`
@@ -912,10 +928,13 @@ public java.lang.String getFilter() {
      *   * `expire_time`  (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
      *   * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
      *   * `size_bytes`
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic, but
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `name:Howl` - The backup's name contains the string "howl".
      *   * `database:prod`
      *          - The database's name contains the string "prod".
@@ -949,12 +968,15 @@ public com.google.protobuf.ByteString getFilterBytes() {
      *
      * 
      * An expression that filters the list of returned backups.
+     *
      * A filter expression consists of a field name, a comparison operator, and a
      * value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Backup][google.spanner.admin.database.v1.Backup] are eligible for filtering:
+     *
      *   * `name`
      *   * `database`
      *   * `state`
@@ -962,10 +984,13 @@ public com.google.protobuf.ByteString getFilterBytes() {
      *   * `expire_time`  (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
      *   * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
      *   * `size_bytes`
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic, but
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `name:Howl` - The backup's name contains the string "howl".
      *   * `database:prod`
      *          - The database's name contains the string "prod".
@@ -998,12 +1023,15 @@ public Builder setFilter(java.lang.String value) {
      *
      * 
      * An expression that filters the list of returned backups.
+     *
      * A filter expression consists of a field name, a comparison operator, and a
      * value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Backup][google.spanner.admin.database.v1.Backup] are eligible for filtering:
+     *
      *   * `name`
      *   * `database`
      *   * `state`
@@ -1011,10 +1039,13 @@ public Builder setFilter(java.lang.String value) {
      *   * `expire_time`  (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
      *   * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
      *   * `size_bytes`
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic, but
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `name:Howl` - The backup's name contains the string "howl".
      *   * `database:prod`
      *          - The database's name contains the string "prod".
@@ -1043,12 +1074,15 @@ public Builder clearFilter() {
      *
      * 
      * An expression that filters the list of returned backups.
+     *
      * A filter expression consists of a field name, a comparison operator, and a
      * value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Backup][google.spanner.admin.database.v1.Backup] are eligible for filtering:
+     *
      *   * `name`
      *   * `database`
      *   * `state`
@@ -1056,10 +1090,13 @@ public Builder clearFilter() {
      *   * `expire_time`  (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
      *   * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
      *   * `size_bytes`
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic, but
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `name:Howl` - The backup's name contains the string "howl".
      *   * `database:prod`
      *          - The database's name contains the string "prod".
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequestOrBuilder.java
index 4ea911b53ce..3c253ef05bf 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequestOrBuilder.java
@@ -59,12 +59,15 @@ public interface ListBackupsRequestOrBuilder
    *
    * 
    * An expression that filters the list of returned backups.
+   *
    * A filter expression consists of a field name, a comparison operator, and a
    * value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [Backup][google.spanner.admin.database.v1.Backup] are eligible for filtering:
+   *
    *   * `name`
    *   * `database`
    *   * `state`
@@ -72,10 +75,13 @@ public interface ListBackupsRequestOrBuilder
    *   * `expire_time`  (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
    *   * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
    *   * `size_bytes`
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic, but
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `name:Howl` - The backup's name contains the string "howl".
    *   * `database:prod`
    *          - The database's name contains the string "prod".
@@ -99,12 +105,15 @@ public interface ListBackupsRequestOrBuilder
    *
    * 
    * An expression that filters the list of returned backups.
+   *
    * A filter expression consists of a field name, a comparison operator, and a
    * value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [Backup][google.spanner.admin.database.v1.Backup] are eligible for filtering:
+   *
    *   * `name`
    *   * `database`
    *   * `state`
@@ -112,10 +121,13 @@ public interface ListBackupsRequestOrBuilder
    *   * `expire_time`  (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
    *   * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
    *   * `size_bytes`
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic, but
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `name:Howl` - The backup's name contains the string "howl".
    *   * `database:prod`
    *          - The database's name contains the string "prod".
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsResponse.java
index e320ee4aba2..8c06fc77b79 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsResponse.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListBackupsResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.BackupProto
         .internal_static_google_spanner_admin_database_v1_ListBackupsResponse_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequest.java
index 9bf375def87..4b0abaf18d2 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequest.java
@@ -50,11 +50,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListDatabaseOperationsRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_ListDatabaseOperationsRequest_descriptor;
@@ -136,13 +131,16 @@ public com.google.protobuf.ByteString getParentBytes() {
    *
    * 
    * An expression that filters the list of returned operations.
+   *
    * A filter expression consists of a field name, a
    * comparison operator, and a value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [Operation][google.longrunning.Operation]
    * are eligible for filtering:
+   *
    *   * `name` - The name of the long-running operation
    *   * `done` - False if the operation is in progress, else true.
    *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -154,10 +152,13 @@ public com.google.protobuf.ByteString getParentBytes() {
    *   * `error` - Error associated with the long-running operation.
    *   * `response.@type` - the type of response.
    *   * `response.<field_name>` - any field in response.value.
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic. However,
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `done:true` - The operation is complete.
    *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) AND` \
    *     `(metadata.source_type:BACKUP) AND` \
@@ -194,13 +195,16 @@ public java.lang.String getFilter() {
    *
    * 
    * An expression that filters the list of returned operations.
+   *
    * A filter expression consists of a field name, a
    * comparison operator, and a value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [Operation][google.longrunning.Operation]
    * are eligible for filtering:
+   *
    *   * `name` - The name of the long-running operation
    *   * `done` - False if the operation is in progress, else true.
    *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -212,10 +216,13 @@ public java.lang.String getFilter() {
    *   * `error` - Error associated with the long-running operation.
    *   * `response.@type` - the type of response.
    *   * `response.<field_name>` - any field in response.value.
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic. However,
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `done:true` - The operation is complete.
    *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) AND` \
    *     `(metadata.source_type:BACKUP) AND` \
@@ -873,13 +880,16 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
      *
      * 
      * An expression that filters the list of returned operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -891,10 +901,13 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic. However,
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) AND` \
      *     `(metadata.source_type:BACKUP) AND` \
@@ -930,13 +943,16 @@ public java.lang.String getFilter() {
      *
      * 
      * An expression that filters the list of returned operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -948,10 +964,13 @@ public java.lang.String getFilter() {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic. However,
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) AND` \
      *     `(metadata.source_type:BACKUP) AND` \
@@ -987,13 +1006,16 @@ public com.google.protobuf.ByteString getFilterBytes() {
      *
      * 
      * An expression that filters the list of returned operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -1005,10 +1027,13 @@ public com.google.protobuf.ByteString getFilterBytes() {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic. However,
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) AND` \
      *     `(metadata.source_type:BACKUP) AND` \
@@ -1043,13 +1068,16 @@ public Builder setFilter(java.lang.String value) {
      *
      * 
      * An expression that filters the list of returned operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -1061,10 +1089,13 @@ public Builder setFilter(java.lang.String value) {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic. However,
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) AND` \
      *     `(metadata.source_type:BACKUP) AND` \
@@ -1095,13 +1126,16 @@ public Builder clearFilter() {
      *
      * 
      * An expression that filters the list of returned operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -1113,10 +1147,13 @@ public Builder clearFilter() {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic. However,
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) AND` \
      *     `(metadata.source_type:BACKUP) AND` \
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequestOrBuilder.java
index e020307e57f..4d1f7f23c82 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequestOrBuilder.java
@@ -59,13 +59,16 @@ public interface ListDatabaseOperationsRequestOrBuilder
    *
    * 
    * An expression that filters the list of returned operations.
+   *
    * A filter expression consists of a field name, a
    * comparison operator, and a value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [Operation][google.longrunning.Operation]
    * are eligible for filtering:
+   *
    *   * `name` - The name of the long-running operation
    *   * `done` - False if the operation is in progress, else true.
    *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -77,10 +80,13 @@ public interface ListDatabaseOperationsRequestOrBuilder
    *   * `error` - Error associated with the long-running operation.
    *   * `response.@type` - the type of response.
    *   * `response.<field_name>` - any field in response.value.
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic. However,
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `done:true` - The operation is complete.
    *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) AND` \
    *     `(metadata.source_type:BACKUP) AND` \
@@ -106,13 +112,16 @@ public interface ListDatabaseOperationsRequestOrBuilder
    *
    * 
    * An expression that filters the list of returned operations.
+   *
    * A filter expression consists of a field name, a
    * comparison operator, and a value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [Operation][google.longrunning.Operation]
    * are eligible for filtering:
+   *
    *   * `name` - The name of the long-running operation
    *   * `done` - False if the operation is in progress, else true.
    *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -124,10 +133,13 @@ public interface ListDatabaseOperationsRequestOrBuilder
    *   * `error` - Error associated with the long-running operation.
    *   * `response.@type` - the type of response.
    *   * `response.<field_name>` - any field in response.value.
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic. However,
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `done:true` - The operation is complete.
    *   * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) AND` \
    *     `(metadata.source_type:BACKUP) AND` \
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsResponse.java
index 763faff8830..110f68ff83d 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsResponse.java
@@ -50,11 +50,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListDatabaseOperationsResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_ListDatabaseOperationsResponse_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesRequest.java
index 4b7453090ce..e26e0089963 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesRequest.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListDatabaseRolesRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_ListDatabaseRolesRequest_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesResponse.java
index ac539aa5acf..442ed797d6f 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesResponse.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListDatabaseRolesResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_ListDatabaseRolesResponse_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesRequest.java
index eac171f8df9..c6c3c695459 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesRequest.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListDatabasesRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_ListDatabasesRequest_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesResponse.java
index dd3ce964137..6063e3bb8a3 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesResponse.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListDatabasesResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_ListDatabasesResponse_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OperationProgress.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OperationProgress.java
index dceff032df0..7a4a49e58e6 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OperationProgress.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OperationProgress.java
@@ -46,11 +46,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new OperationProgress();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.CommonProto
         .internal_static_google_spanner_admin_database_v1_OperationProgress_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OptimizeRestoredDatabaseMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OptimizeRestoredDatabaseMetadata.java
index ce652f5318f..372757476db 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OptimizeRestoredDatabaseMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OptimizeRestoredDatabaseMetadata.java
@@ -51,11 +51,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new OptimizeRestoredDatabaseMetadata();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_OptimizeRestoredDatabaseMetadata_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseEncryptionConfig.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseEncryptionConfig.java
index 54aa3135f07..19523910055 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseEncryptionConfig.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseEncryptionConfig.java
@@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new RestoreDatabaseEncryptionConfig();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_RestoreDatabaseEncryptionConfig_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadata.java
index 0225666e1ff..49ca8fde967 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadata.java
@@ -50,11 +50,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new RestoreDatabaseMetadata();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_RestoreDatabaseMetadata_descriptor;
@@ -71,6 +66,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
   }
 
   private int sourceInfoCase_ = 0;
+
+  @SuppressWarnings("serial")
   private java.lang.Object sourceInfo_;
 
   public enum SourceInfoCase
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadataOrBuilder.java
index 35ad6d76e9d..a6b1bc97877 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadataOrBuilder.java
@@ -259,6 +259,5 @@ public interface RestoreDatabaseMetadataOrBuilder
    */
   com.google.protobuf.ByteString getOptimizeDatabaseOperationNameBytes();
 
-  public com.google.spanner.admin.database.v1.RestoreDatabaseMetadata.SourceInfoCase
-      getSourceInfoCase();
+  com.google.spanner.admin.database.v1.RestoreDatabaseMetadata.SourceInfoCase getSourceInfoCase();
 }
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequest.java
index c89cf015544..96d866db827 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequest.java
@@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new RestoreDatabaseRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_RestoreDatabaseRequest_descriptor;
@@ -70,6 +65,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
   }
 
   private int sourceCase_ = 0;
+
+  @SuppressWarnings("serial")
   private java.lang.Object source_;
 
   public enum SourceCase
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequestOrBuilder.java
index f7c1c6e1f82..e2047038bd5 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequestOrBuilder.java
@@ -188,5 +188,5 @@ public interface RestoreDatabaseRequestOrBuilder
   com.google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfigOrBuilder
       getEncryptionConfigOrBuilder();
 
-  public com.google.spanner.admin.database.v1.RestoreDatabaseRequest.SourceCase getSourceCase();
+  com.google.spanner.admin.database.v1.RestoreDatabaseRequest.SourceCase getSourceCase();
 }
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfo.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfo.java
index e76b3bcef86..02c67d53686 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfo.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfo.java
@@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new RestoreInfo();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_RestoreInfo_descriptor;
@@ -68,6 +63,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
   }
 
   private int sourceInfoCase_ = 0;
+
+  @SuppressWarnings("serial")
   private java.lang.Object sourceInfo_;
 
   public enum SourceInfoCase
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfoOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfoOrBuilder.java
index f1b55bcc5f5..d02746a0ed6 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfoOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfoOrBuilder.java
@@ -86,5 +86,5 @@ public interface RestoreInfoOrBuilder
    */
   com.google.spanner.admin.database.v1.BackupInfoOrBuilder getBackupInfoOrBuilder();
 
-  public com.google.spanner.admin.database.v1.RestoreInfo.SourceInfoCase getSourceInfoCase();
+  com.google.spanner.admin.database.v1.RestoreInfo.SourceInfoCase getSourceInfoCase();
 }
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SpannerDatabaseAdminProto.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SpannerDatabaseAdminProto.java
index 0045ee30f35..4ac1d45264c 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SpannerDatabaseAdminProto.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SpannerDatabaseAdminProto.java
@@ -67,6 +67,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
       internal_static_google_spanner_admin_database_v1_UpdateDatabaseDdlRequest_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_google_spanner_admin_database_v1_UpdateDatabaseDdlRequest_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_spanner_admin_database_v1_DdlStatementActionInfo_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_spanner_admin_database_v1_DdlStatementActionInfo_fieldAccessorTable;
   static final com.google.protobuf.Descriptors.Descriptor
       internal_static_google_spanner_admin_database_v1_UpdateDatabaseDdlMetadata_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
@@ -144,249 +148,253 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
           + "ource_type\030\001 \001(\01623.google.spanner.admin."
           + "database.v1.RestoreSourceType\022C\n\013backup_"
           + "info\030\002 \001(\0132,.google.spanner.admin.databa"
-          + "se.v1.BackupInfoH\000B\r\n\013source_info\"\312\006\n\010Da"
-          + "tabase\022\021\n\004name\030\001 \001(\tB\003\340A\002\022D\n\005state\030\002 \001(\016"
-          + "20.google.spanner.admin.database.v1.Data"
-          + "base.StateB\003\340A\003\0224\n\013create_time\030\003 \001(\0132\032.g"
-          + "oogle.protobuf.TimestampB\003\340A\003\022H\n\014restore"
-          + "_info\030\004 \001(\0132-.google.spanner.admin.datab"
-          + "ase.v1.RestoreInfoB\003\340A\003\022R\n\021encryption_co"
-          + "nfig\030\005 \001(\01322.google.spanner.admin.databa"
-          + "se.v1.EncryptionConfigB\003\340A\003\022N\n\017encryptio"
-          + "n_info\030\010 \003(\01320.google.spanner.admin.data"
-          + "base.v1.EncryptionInfoB\003\340A\003\022%\n\030version_r"
-          + "etention_period\030\006 \001(\tB\003\340A\003\022>\n\025earliest_v"
-          + "ersion_time\030\007 \001(\0132\032.google.protobuf.Time"
-          + "stampB\003\340A\003\022\033\n\016default_leader\030\t \001(\tB\003\340A\003\022"
-          + "P\n\020database_dialect\030\n \001(\01621.google.spann"
-          + "er.admin.database.v1.DatabaseDialectB\003\340A"
-          + "\003\022\036\n\026enable_drop_protection\030\013 \001(\010\022\030\n\013rec"
-          + "onciling\030\014 \001(\010B\003\340A\003\"M\n\005State\022\025\n\021STATE_UN"
-          + "SPECIFIED\020\000\022\014\n\010CREATING\020\001\022\t\n\005READY\020\002\022\024\n\020"
-          + "READY_OPTIMIZING\020\003:b\352A_\n\037spanner.googlea"
-          + "pis.com/Database\022\202\323\344\223\002/\022-"
-          + "/v1/{parent=projects/*/instances/*}/data"
-          + "bases\332A\006parent\022\244\002\n\016CreateDatabase\0227.goog"
-          + "le.spanner.admin.database.v1.CreateDatab"
-          + "aseRequest\032\035.google.longrunning.Operatio"
-          + "n\"\271\001\202\323\344\223\0022\"-/v1/{parent=projects/*/insta"
-          + "nces/*}/databases:\001*\332A\027parent,create_sta"
-          + "tement\312Ad\n)google.spanner.admin.database"
-          + ".v1.Database\0227google.spanner.admin.datab"
-          + "ase.v1.CreateDatabaseMetadata\022\255\001\n\013GetDat"
-          + "abase\0224.google.spanner.admin.database.v1"
-          + ".GetDatabaseRequest\032*.google.spanner.adm"
-          + "in.database.v1.Database\"<\202\323\344\223\002/\022-/v1/{na"
-          + "me=projects/*/instances/*/databases/*}\332A"
-          + "\004name\022\357\001\n\016UpdateDatabase\0227.google.spanne"
-          + "r.admin.database.v1.UpdateDatabaseReques"
-          + "t\032\035.google.longrunning.Operation\"\204\001\202\323\344\223\002"
-          + "B26/v1/{database.name=projects/*/instanc"
-          + "es/*/databases/*}:\010database\332A\024database,u"
-          + "pdate_mask\312A\"\n\010Database\022\026UpdateDatabaseM"
-          + "etadata\022\235\002\n\021UpdateDatabaseDdl\022:.google.s"
-          + "panner.admin.database.v1.UpdateDatabaseD"
-          + "dlRequest\032\035.google.longrunning.Operation"
-          + "\"\254\001\202\323\344\223\002:25/v1/{database=projects/*/inst"
-          + "ances/*/databases/*}/ddl:\001*\332A\023database,s"
-          + "tatements\312AS\n\025google.protobuf.Empty\022:goo"
-          + "gle.spanner.admin.database.v1.UpdateData"
-          + "baseDdlMetadata\022\243\001\n\014DropDatabase\0225.googl"
-          + "e.spanner.admin.database.v1.DropDatabase"
-          + "Request\032\026.google.protobuf.Empty\"D\202\323\344\223\0023*"
-          + "1/v1/{database=projects/*/instances/*/da"
-          + "tabases/*}\332A\010database\022\315\001\n\016GetDatabaseDdl"
-          + "\0227.google.spanner.admin.database.v1.GetD"
-          + "atabaseDdlRequest\0328.google.spanner.admin"
-          + ".database.v1.GetDatabaseDdlResponse\"H\202\323\344"
-          + "\223\0027\0225/v1/{database=projects/*/instances/"
-          + "*/databases/*}/ddl\332A\010database\022\353\001\n\014SetIam"
-          + "Policy\022\".google.iam.v1.SetIamPolicyReque"
-          + "st\032\025.google.iam.v1.Policy\"\237\001\202\323\344\223\002\206\001\">/v1"
-          + "/{resource=projects/*/instances/*/databa"
-          + "ses/*}:setIamPolicy:\001*ZA\"/v1/{"
-          + "resource=projects/*/instances/*/database"
-          + "s/*}:getIamPolicy:\001*ZA\".google.spanner.admin.databa"
-          + "se.v1.ListBackupOperationsResponse\"E\202\323\344\223"
-          + "\0026\0224/v1/{parent=projects/*/instances/*}/"
-          + "backupOperations\332A\006parent\022\334\001\n\021ListDataba"
-          + "seRoles\022:.google.spanner.admin.database."
-          + "v1.ListDatabaseRolesRequest\032;.google.spa"
-          + "nner.admin.database.v1.ListDatabaseRoles"
-          + "Response\"N\202\323\344\223\002?\022=/v1/{parent=projects/*"
-          + "/instances/*/databases/*}/databaseRoles\332"
-          + "A\006parent\032x\312A\026spanner.googleapis.com\322A\\ht"
-          + "tps://www.googleapis.com/auth/cloud-plat"
-          + "form,https://www.googleapis.com/auth/spa"
-          + "nner.adminB\330\002\n$com.google.spanner.admin."
-          + "database.v1B\031SpannerDatabaseAdminProtoP\001"
-          + "ZFcloud.google.com/go/spanner/admin/data"
-          + "base/apiv1/databasepb;databasepb\252\002&Googl"
-          + "e.Cloud.Spanner.Admin.Database.V1\312\002&Goog"
-          + "le\\Cloud\\Spanner\\Admin\\Database\\V1\352\002+Goo"
-          + "gle::Cloud::Spanner::Admin::Database::V1"
-          + "\352AJ\n\037spanner.googleapis.com/Instance\022\'pr"
-          + "ojects/{project}/instances/{instance}b\006p"
-          + "roto3"
+          + "is.com/Database\022E\n\010progress\030\002 \001(\01323.goog"
+          + "le.spanner.admin.database.v1.OperationPr"
+          + "ogress\"\237\001\n\014DatabaseRole\022\022\n\004name\030\001 \001(\tB\004\342"
+          + "A\001\002:{\352Ax\n#spanner.googleapis.com/Databas"
+          + "eRole\022Qprojects/{project}/instances/{ins"
+          + "tance}/databases/{database}/databaseRole"
+          + "s/{role}\"{\n\030ListDatabaseRolesRequest\0228\n\006"
+          + "parent\030\001 \001(\tB(\342A\001\002\372A!\n\037spanner.googleapi"
+          + "s.com/Database\022\021\n\tpage_size\030\002 \001(\005\022\022\n\npag"
+          + "e_token\030\003 \001(\t\"|\n\031ListDatabaseRolesRespon"
+          + "se\022F\n\016database_roles\030\001 \003(\0132..google.span"
+          + "ner.admin.database.v1.DatabaseRole\022\027\n\017ne"
+          + "xt_page_token\030\002 \001(\t*5\n\021RestoreSourceType"
+          + "\022\024\n\020TYPE_UNSPECIFIED\020\000\022\n\n\006BACKUP\020\0012\356%\n\rD"
+          + "atabaseAdmin\022\300\001\n\rListDatabases\0226.google."
+          + "spanner.admin.database.v1.ListDatabasesR"
+          + "equest\0327.google.spanner.admin.database.v"
+          + "1.ListDatabasesResponse\">\332A\006parent\202\323\344\223\002/"
+          + "\022-/v1/{parent=projects/*/instances/*}/da"
+          + "tabases\022\244\002\n\016CreateDatabase\0227.google.span"
+          + "ner.admin.database.v1.CreateDatabaseRequ"
+          + "est\032\035.google.longrunning.Operation\"\271\001\312Ad"
+          + "\n)google.spanner.admin.database.v1.Datab"
+          + "ase\0227google.spanner.admin.database.v1.Cr"
+          + "eateDatabaseMetadata\332A\027parent,create_sta"
+          + "tement\202\323\344\223\0022\"-/v1/{parent=projects/*/ins"
+          + "tances/*}/databases:\001*\022\255\001\n\013GetDatabase\0224"
+          + ".google.spanner.admin.database.v1.GetDat"
+          + "abaseRequest\032*.google.spanner.admin.data"
+          + "base.v1.Database\"<\332A\004name\202\323\344\223\002/\022-/v1/{na"
+          + "me=projects/*/instances/*/databases/*}\022\357"
+          + "\001\n\016UpdateDatabase\0227.google.spanner.admin"
+          + ".database.v1.UpdateDatabaseRequest\032\035.goo"
+          + "gle.longrunning.Operation\"\204\001\312A\"\n\010Databas"
+          + "e\022\026UpdateDatabaseMetadata\332A\024database,upd"
+          + "ate_mask\202\323\344\223\002B26/v1/{database.name=proje"
+          + "cts/*/instances/*/databases/*}:\010database"
+          + "\022\235\002\n\021UpdateDatabaseDdl\022:.google.spanner."
+          + "admin.database.v1.UpdateDatabaseDdlReque"
+          + "st\032\035.google.longrunning.Operation\"\254\001\312AS\n"
+          + "\025google.protobuf.Empty\022:google.spanner.a"
+          + "dmin.database.v1.UpdateDatabaseDdlMetada"
+          + "ta\332A\023database,statements\202\323\344\223\002:25/v1/{dat"
+          + "abase=projects/*/instances/*/databases/*"
+          + "}/ddl:\001*\022\243\001\n\014DropDatabase\0225.google.spann"
+          + "er.admin.database.v1.DropDatabaseRequest"
+          + "\032\026.google.protobuf.Empty\"D\332A\010database\202\323\344"
+          + "\223\0023*1/v1/{database=projects/*/instances/"
+          + "*/databases/*}\022\315\001\n\016GetDatabaseDdl\0227.goog"
+          + "le.spanner.admin.database.v1.GetDatabase"
+          + "DdlRequest\0328.google.spanner.admin.databa"
+          + "se.v1.GetDatabaseDdlResponse\"H\332A\010databas"
+          + "e\202\323\344\223\0027\0225/v1/{database=projects/*/instan"
+          + "ces/*/databases/*}/ddl\022\353\001\n\014SetIamPolicy\022"
+          + "\".google.iam.v1.SetIamPolicyRequest\032\025.go"
+          + "ogle.iam.v1.Policy\"\237\001\332A\017resource,policy\202"
+          + "\323\344\223\002\206\001\">/v1/{resource=projects/*/instanc"
+          + "es/*/databases/*}:setIamPolicy:\001*ZA\"/"
+          + "v1/{resource=projects/*/instances/*/data"
+          + "bases/*}:getIamPolicy:\001*ZA\".google.spanner.admin.database.v1.L"
+          + "istBackupOperationsResponse\"E\332A\006parent\202\323"
+          + "\344\223\0026\0224/v1/{parent=projects/*/instances/*"
+          + "}/backupOperations\022\334\001\n\021ListDatabaseRoles"
+          + "\022:.google.spanner.admin.database.v1.List"
+          + "DatabaseRolesRequest\032;.google.spanner.ad"
+          + "min.database.v1.ListDatabaseRolesRespons"
+          + "e\"N\332A\006parent\202\323\344\223\002?\022=/v1/{parent=projects"
+          + "/*/instances/*/databases/*}/databaseRole"
+          + "s\032x\312A\026spanner.googleapis.com\322A\\https://w"
+          + "ww.googleapis.com/auth/cloud-platform,ht"
+          + "tps://www.googleapis.com/auth/spanner.ad"
+          + "minB\330\002\n$com.google.spanner.admin.databas"
+          + "e.v1B\031SpannerDatabaseAdminProtoP\001ZFcloud"
+          + ".google.com/go/spanner/admin/database/ap"
+          + "iv1/databasepb;databasepb\252\002&Google.Cloud"
+          + ".Spanner.Admin.Database.V1\312\002&Google\\Clou"
+          + "d\\Spanner\\Admin\\Database\\V1\352\002+Google::Cl"
+          + "oud::Spanner::Admin::Database::V1\352AJ\n\037sp"
+          + "anner.googleapis.com/Instance\022\'projects/"
+          + "{project}/instances/{instance}b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -496,16 +504,24 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
             new java.lang.String[] {
               "Database", "Statements", "OperationId",
             });
-    internal_static_google_spanner_admin_database_v1_UpdateDatabaseDdlMetadata_descriptor =
+    internal_static_google_spanner_admin_database_v1_DdlStatementActionInfo_descriptor =
         getDescriptor().getMessageTypes().get(10);
+    internal_static_google_spanner_admin_database_v1_DdlStatementActionInfo_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_spanner_admin_database_v1_DdlStatementActionInfo_descriptor,
+            new java.lang.String[] {
+              "Action", "EntityType", "EntityNames",
+            });
+    internal_static_google_spanner_admin_database_v1_UpdateDatabaseDdlMetadata_descriptor =
+        getDescriptor().getMessageTypes().get(11);
     internal_static_google_spanner_admin_database_v1_UpdateDatabaseDdlMetadata_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_UpdateDatabaseDdlMetadata_descriptor,
             new java.lang.String[] {
-              "Database", "Statements", "CommitTimestamps", "Throttled", "Progress",
+              "Database", "Statements", "CommitTimestamps", "Throttled", "Progress", "Actions",
             });
     internal_static_google_spanner_admin_database_v1_DropDatabaseRequest_descriptor =
-        getDescriptor().getMessageTypes().get(11);
+        getDescriptor().getMessageTypes().get(12);
     internal_static_google_spanner_admin_database_v1_DropDatabaseRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_DropDatabaseRequest_descriptor,
@@ -513,7 +529,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
               "Database",
             });
     internal_static_google_spanner_admin_database_v1_GetDatabaseDdlRequest_descriptor =
-        getDescriptor().getMessageTypes().get(12);
+        getDescriptor().getMessageTypes().get(13);
     internal_static_google_spanner_admin_database_v1_GetDatabaseDdlRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_GetDatabaseDdlRequest_descriptor,
@@ -521,7 +537,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
               "Database",
             });
     internal_static_google_spanner_admin_database_v1_GetDatabaseDdlResponse_descriptor =
-        getDescriptor().getMessageTypes().get(13);
+        getDescriptor().getMessageTypes().get(14);
     internal_static_google_spanner_admin_database_v1_GetDatabaseDdlResponse_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_GetDatabaseDdlResponse_descriptor,
@@ -529,7 +545,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
               "Statements",
             });
     internal_static_google_spanner_admin_database_v1_ListDatabaseOperationsRequest_descriptor =
-        getDescriptor().getMessageTypes().get(14);
+        getDescriptor().getMessageTypes().get(15);
     internal_static_google_spanner_admin_database_v1_ListDatabaseOperationsRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_ListDatabaseOperationsRequest_descriptor,
@@ -537,7 +553,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
               "Parent", "Filter", "PageSize", "PageToken",
             });
     internal_static_google_spanner_admin_database_v1_ListDatabaseOperationsResponse_descriptor =
-        getDescriptor().getMessageTypes().get(15);
+        getDescriptor().getMessageTypes().get(16);
     internal_static_google_spanner_admin_database_v1_ListDatabaseOperationsResponse_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_ListDatabaseOperationsResponse_descriptor,
@@ -545,7 +561,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
               "Operations", "NextPageToken",
             });
     internal_static_google_spanner_admin_database_v1_RestoreDatabaseRequest_descriptor =
-        getDescriptor().getMessageTypes().get(16);
+        getDescriptor().getMessageTypes().get(17);
     internal_static_google_spanner_admin_database_v1_RestoreDatabaseRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_RestoreDatabaseRequest_descriptor,
@@ -553,7 +569,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
               "Parent", "DatabaseId", "Backup", "EncryptionConfig", "Source",
             });
     internal_static_google_spanner_admin_database_v1_RestoreDatabaseEncryptionConfig_descriptor =
-        getDescriptor().getMessageTypes().get(17);
+        getDescriptor().getMessageTypes().get(18);
     internal_static_google_spanner_admin_database_v1_RestoreDatabaseEncryptionConfig_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_RestoreDatabaseEncryptionConfig_descriptor,
@@ -561,7 +577,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
               "EncryptionType", "KmsKeyName",
             });
     internal_static_google_spanner_admin_database_v1_RestoreDatabaseMetadata_descriptor =
-        getDescriptor().getMessageTypes().get(18);
+        getDescriptor().getMessageTypes().get(19);
     internal_static_google_spanner_admin_database_v1_RestoreDatabaseMetadata_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_RestoreDatabaseMetadata_descriptor,
@@ -575,7 +591,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
               "SourceInfo",
             });
     internal_static_google_spanner_admin_database_v1_OptimizeRestoredDatabaseMetadata_descriptor =
-        getDescriptor().getMessageTypes().get(19);
+        getDescriptor().getMessageTypes().get(20);
     internal_static_google_spanner_admin_database_v1_OptimizeRestoredDatabaseMetadata_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_OptimizeRestoredDatabaseMetadata_descriptor,
@@ -583,7 +599,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
               "Name", "Progress",
             });
     internal_static_google_spanner_admin_database_v1_DatabaseRole_descriptor =
-        getDescriptor().getMessageTypes().get(20);
+        getDescriptor().getMessageTypes().get(21);
     internal_static_google_spanner_admin_database_v1_DatabaseRole_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_DatabaseRole_descriptor,
@@ -591,7 +607,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
               "Name",
             });
     internal_static_google_spanner_admin_database_v1_ListDatabaseRolesRequest_descriptor =
-        getDescriptor().getMessageTypes().get(21);
+        getDescriptor().getMessageTypes().get(22);
     internal_static_google_spanner_admin_database_v1_ListDatabaseRolesRequest_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_ListDatabaseRolesRequest_descriptor,
@@ -599,7 +615,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
               "Parent", "PageSize", "PageToken",
             });
     internal_static_google_spanner_admin_database_v1_ListDatabaseRolesResponse_descriptor =
-        getDescriptor().getMessageTypes().get(22);
+        getDescriptor().getMessageTypes().get(23);
     internal_static_google_spanner_admin_database_v1_ListDatabaseRolesResponse_fieldAccessorTable =
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_spanner_admin_database_v1_ListDatabaseRolesResponse_descriptor,
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupRequest.java
index ccd25df5763..9da77849b35 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupRequest.java
@@ -45,11 +45,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new UpdateBackupRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.BackupProto
         .internal_static_google_spanner_admin_database_v1_UpdateBackupRequest_descriptor;
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadata.java
index d4625807d12..0e9f3b0a5d3 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadata.java
@@ -40,9 +40,10 @@ private UpdateDatabaseDdlMetadata(com.google.protobuf.GeneratedMessageV3.Builder
 
   private UpdateDatabaseDdlMetadata() {
     database_ = "";
-    statements_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    statements_ = com.google.protobuf.LazyStringArrayList.emptyList();
     commitTimestamps_ = java.util.Collections.emptyList();
     progress_ = java.util.Collections.emptyList();
+    actions_ = java.util.Collections.emptyList();
   }
 
   @java.lang.Override
@@ -51,11 +52,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new UpdateDatabaseDdlMetadata();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto
         .internal_static_google_spanner_admin_database_v1_UpdateDatabaseDdlMetadata_descriptor;
@@ -125,7 +121,8 @@ public com.google.protobuf.ByteString getDatabaseBytes() {
   public static final int STATEMENTS_FIELD_NUMBER = 2;
 
   @SuppressWarnings("serial")
-  private com.google.protobuf.LazyStringList statements_;
+  private com.google.protobuf.LazyStringArrayList statements_ =
+      com.google.protobuf.LazyStringArrayList.emptyList();
   /**
    *
    *
@@ -276,7 +273,7 @@ public com.google.protobuf.TimestampOrBuilder getCommitTimestampsOrBuilder(int i
    *
    *
    * 
-   * Output only. When true, indicates that the operation is throttled e.g
+   * Output only. When true, indicates that the operation is throttled e.g.
    * due to resource constraints. When resources become available the operation
    * will resume and this field will be false again.
    * 
@@ -299,13 +296,12 @@ public boolean getThrottled() { * *
    * The progress of the
-   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-   * Currently, only index creation statements will have a continuously
-   * updating progress.
-   * For non-index creation statements, `progress[i]` will have start time
-   * and end time populated with commit timestamp of operation,
-   * as well as a progress of 100% once the operation has completed.
-   * `progress[i]` is the operation progress for `statements[i]`.
+   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+   * operations. All DDL statements will have continuously updating progress,
+   * and `progress[i]` is the operation progress for `statements[i]`. Also,
+   * `progress[i]` will have start time and end time populated with commit
+   * timestamp of operation, as well as a progress of 100% once the operation
+   * has completed.
    * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -319,13 +315,12 @@ public java.util.List ge * *
    * The progress of the
-   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-   * Currently, only index creation statements will have a continuously
-   * updating progress.
-   * For non-index creation statements, `progress[i]` will have start time
-   * and end time populated with commit timestamp of operation,
-   * as well as a progress of 100% once the operation has completed.
-   * `progress[i]` is the operation progress for `statements[i]`.
+   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+   * operations. All DDL statements will have continuously updating progress,
+   * and `progress[i]` is the operation progress for `statements[i]`. Also,
+   * `progress[i]` will have start time and end time populated with commit
+   * timestamp of operation, as well as a progress of 100% once the operation
+   * has completed.
    * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -340,13 +335,12 @@ public java.util.List ge * *
    * The progress of the
-   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-   * Currently, only index creation statements will have a continuously
-   * updating progress.
-   * For non-index creation statements, `progress[i]` will have start time
-   * and end time populated with commit timestamp of operation,
-   * as well as a progress of 100% once the operation has completed.
-   * `progress[i]` is the operation progress for `statements[i]`.
+   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+   * operations. All DDL statements will have continuously updating progress,
+   * and `progress[i]` is the operation progress for `statements[i]`. Also,
+   * `progress[i]` will have start time and end time populated with commit
+   * timestamp of operation, as well as a progress of 100% once the operation
+   * has completed.
    * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -360,13 +354,12 @@ public int getProgressCount() { * *
    * The progress of the
-   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-   * Currently, only index creation statements will have a continuously
-   * updating progress.
-   * For non-index creation statements, `progress[i]` will have start time
-   * and end time populated with commit timestamp of operation,
-   * as well as a progress of 100% once the operation has completed.
-   * `progress[i]` is the operation progress for `statements[i]`.
+   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+   * operations. All DDL statements will have continuously updating progress,
+   * and `progress[i]` is the operation progress for `statements[i]`. Also,
+   * `progress[i]` will have start time and end time populated with commit
+   * timestamp of operation, as well as a progress of 100% once the operation
+   * has completed.
    * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -380,13 +373,12 @@ public com.google.spanner.admin.database.v1.OperationProgress getProgress(int in * *
    * The progress of the
-   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-   * Currently, only index creation statements will have a continuously
-   * updating progress.
-   * For non-index creation statements, `progress[i]` will have start time
-   * and end time populated with commit timestamp of operation,
-   * as well as a progress of 100% once the operation has completed.
-   * `progress[i]` is the operation progress for `statements[i]`.
+   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+   * operations. All DDL statements will have continuously updating progress,
+   * and `progress[i]` is the operation progress for `statements[i]`. Also,
+   * `progress[i]` will have start time and end time populated with commit
+   * timestamp of operation, as well as a progress of 100% once the operation
+   * has completed.
    * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -397,6 +389,85 @@ public com.google.spanner.admin.database.v1.OperationProgressOrBuilder getProgre return progress_.get(index); } + public static final int ACTIONS_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private java.util.List actions_; + /** + * + * + *
+   * The brief action info for the DDL statements.
+   * `actions[i]` is the brief info for `statements[i]`.
+   * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + @java.lang.Override + public java.util.List + getActionsList() { + return actions_; + } + /** + * + * + *
+   * The brief action info for the DDL statements.
+   * `actions[i]` is the brief info for `statements[i]`.
+   * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + @java.lang.Override + public java.util.List< + ? extends com.google.spanner.admin.database.v1.DdlStatementActionInfoOrBuilder> + getActionsOrBuilderList() { + return actions_; + } + /** + * + * + *
+   * The brief action info for the DDL statements.
+   * `actions[i]` is the brief info for `statements[i]`.
+   * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + @java.lang.Override + public int getActionsCount() { + return actions_.size(); + } + /** + * + * + *
+   * The brief action info for the DDL statements.
+   * `actions[i]` is the brief info for `statements[i]`.
+   * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + @java.lang.Override + public com.google.spanner.admin.database.v1.DdlStatementActionInfo getActions(int index) { + return actions_.get(index); + } + /** + * + * + *
+   * The brief action info for the DDL statements.
+   * `actions[i]` is the brief info for `statements[i]`.
+   * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + @java.lang.Override + public com.google.spanner.admin.database.v1.DdlStatementActionInfoOrBuilder getActionsOrBuilder( + int index) { + return actions_.get(index); + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -426,6 +497,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io for (int i = 0; i < progress_.size(); i++) { output.writeMessage(5, progress_.get(i)); } + for (int i = 0; i < actions_.size(); i++) { + output.writeMessage(6, actions_.get(i)); + } getUnknownFields().writeTo(output); } @@ -455,6 +529,9 @@ public int getSerializedSize() { for (int i = 0; i < progress_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, progress_.get(i)); } + for (int i = 0; i < actions_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, actions_.get(i)); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -476,6 +553,7 @@ public boolean equals(final java.lang.Object obj) { if (!getCommitTimestampsList().equals(other.getCommitTimestampsList())) return false; if (getThrottled() != other.getThrottled()) return false; if (!getProgressList().equals(other.getProgressList())) return false; + if (!getActionsList().equals(other.getActionsList())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -503,6 +581,10 @@ public int hashCode() { hash = (37 * hash) + PROGRESS_FIELD_NUMBER; hash = (53 * hash) + getProgressList().hashCode(); } + if (getActionsCount() > 0) { + hash = (37 * hash) + ACTIONS_FIELD_NUMBER; + hash = (53 * hash) + getActionsList().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -645,8 +727,7 @@ public Builder clear() { super.clear(); bitField0_ = 0; database_ = ""; - statements_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); + statements_ = com.google.protobuf.LazyStringArrayList.emptyList(); if (commitTimestampsBuilder_ == null) { commitTimestamps_ = java.util.Collections.emptyList(); } else { @@ -662,6 +743,13 @@ public Builder clear() { progressBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000010); + if (actionsBuilder_ == null) { + actions_ = java.util.Collections.emptyList(); + } else { + actions_ = null; + actionsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000020); return this; } @@ -700,11 +788,6 @@ public com.google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata buildParti private void buildPartialRepeatedFields( com.google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata result) { - if (((bitField0_ & 0x00000002) != 0)) { - statements_ = statements_.getUnmodifiableView(); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.statements_ = statements_; if (commitTimestampsBuilder_ == null) { if (((bitField0_ & 0x00000004) != 0)) { commitTimestamps_ = java.util.Collections.unmodifiableList(commitTimestamps_); @@ -723,6 +806,15 @@ private void buildPartialRepeatedFields( } else { result.progress_ = progressBuilder_.build(); } + if (actionsBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0)) { + actions_ = java.util.Collections.unmodifiableList(actions_); + bitField0_ = (bitField0_ & ~0x00000020); + } + result.actions_ = actions_; + } else { + result.actions_ = actionsBuilder_.build(); + } } private void buildPartial0( @@ -731,6 +823,10 @@ private void buildPartial0( if (((from_bitField0_ & 0x00000001) != 0)) { result.database_ = database_; } + if (((from_bitField0_ & 0x00000002) != 0)) { + statements_.makeImmutable(); + result.statements_ = statements_; + } if (((from_bitField0_ & 0x00000008) != 0)) { result.throttled_ = throttled_; } @@ -791,7 +887,7 @@ public Builder mergeFrom(com.google.spanner.admin.database.v1.UpdateDatabaseDdlM if (!other.statements_.isEmpty()) { if (statements_.isEmpty()) { statements_ = other.statements_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ |= 0x00000002; } else { ensureStatementsIsMutable(); statements_.addAll(other.statements_); @@ -855,6 +951,33 @@ public Builder mergeFrom(com.google.spanner.admin.database.v1.UpdateDatabaseDdlM } } } + if (actionsBuilder_ == null) { + if (!other.actions_.isEmpty()) { + if (actions_.isEmpty()) { + actions_ = other.actions_; + bitField0_ = (bitField0_ & ~0x00000020); + } else { + ensureActionsIsMutable(); + actions_.addAll(other.actions_); + } + onChanged(); + } + } else { + if (!other.actions_.isEmpty()) { + if (actionsBuilder_.isEmpty()) { + actionsBuilder_.dispose(); + actionsBuilder_ = null; + actions_ = other.actions_; + bitField0_ = (bitField0_ & ~0x00000020); + actionsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getActionsFieldBuilder() + : null; + } else { + actionsBuilder_.addAllMessages(other.actions_); + } + } + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -926,6 +1049,20 @@ public Builder mergeFrom( } break; } // case 42 + case 50: + { + com.google.spanner.admin.database.v1.DdlStatementActionInfo m = + input.readMessage( + com.google.spanner.admin.database.v1.DdlStatementActionInfo.parser(), + extensionRegistry); + if (actionsBuilder_ == null) { + ensureActionsIsMutable(); + actions_.add(m); + } else { + actionsBuilder_.addMessage(m); + } + break; + } // case 50 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -1051,14 +1188,14 @@ public Builder setDatabaseBytes(com.google.protobuf.ByteString value) { return this; } - private com.google.protobuf.LazyStringList statements_ = - com.google.protobuf.LazyStringArrayList.EMPTY; + private com.google.protobuf.LazyStringArrayList statements_ = + com.google.protobuf.LazyStringArrayList.emptyList(); private void ensureStatementsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { + if (!statements_.isModifiable()) { statements_ = new com.google.protobuf.LazyStringArrayList(statements_); - bitField0_ |= 0x00000002; } + bitField0_ |= 0x00000002; } /** * @@ -1073,7 +1210,8 @@ private void ensureStatementsIsMutable() { * @return A list containing the statements. */ public com.google.protobuf.ProtocolStringList getStatementsList() { - return statements_.getUnmodifiableView(); + statements_.makeImmutable(); + return statements_; } /** * @@ -1142,6 +1280,7 @@ public Builder setStatements(int index, java.lang.String value) { } ensureStatementsIsMutable(); statements_.set(index, value); + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -1164,6 +1303,7 @@ public Builder addStatements(java.lang.String value) { } ensureStatementsIsMutable(); statements_.add(value); + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -1183,6 +1323,7 @@ public Builder addStatements(java.lang.String value) { public Builder addAllStatements(java.lang.Iterable values) { ensureStatementsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll(values, statements_); + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -1199,8 +1340,9 @@ public Builder addAllStatements(java.lang.Iterable values) { * @return This builder for chaining. */ public Builder clearStatements() { - statements_ = com.google.protobuf.LazyStringArrayList.EMPTY; + statements_ = com.google.protobuf.LazyStringArrayList.emptyList(); bitField0_ = (bitField0_ & ~0x00000002); + ; onChanged(); return this; } @@ -1224,6 +1366,7 @@ public Builder addStatementsBytes(com.google.protobuf.ByteString value) { checkByteStringIsUtf8(value); ensureStatementsIsMutable(); statements_.add(value); + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -1621,7 +1764,7 @@ public java.util.List getCommitTimestamps * * *
-     * Output only. When true, indicates that the operation is throttled e.g
+     * Output only. When true, indicates that the operation is throttled e.g.
      * due to resource constraints. When resources become available the operation
      * will resume and this field will be false again.
      * 
@@ -1638,7 +1781,7 @@ public boolean getThrottled() { * * *
-     * Output only. When true, indicates that the operation is throttled e.g
+     * Output only. When true, indicates that the operation is throttled e.g.
      * due to resource constraints. When resources become available the operation
      * will resume and this field will be false again.
      * 
@@ -1659,7 +1802,7 @@ public Builder setThrottled(boolean value) { * * *
-     * Output only. When true, indicates that the operation is throttled e.g
+     * Output only. When true, indicates that the operation is throttled e.g.
      * due to resource constraints. When resources become available the operation
      * will resume and this field will be false again.
      * 
@@ -1698,13 +1841,12 @@ private void ensureProgressIsMutable() { * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -1722,13 +1864,12 @@ private void ensureProgressIsMutable() { * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -1745,13 +1886,12 @@ public int getProgressCount() { * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -1768,13 +1908,12 @@ public com.google.spanner.admin.database.v1.OperationProgress getProgress(int in * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -1798,13 +1937,12 @@ public Builder setProgress( * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -1825,13 +1963,12 @@ public Builder setProgress( * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -1854,13 +1991,12 @@ public Builder addProgress(com.google.spanner.admin.database.v1.OperationProgres * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -1884,13 +2020,12 @@ public Builder addProgress( * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -1911,13 +2046,12 @@ public Builder addProgress( * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -1938,13 +2072,12 @@ public Builder addProgress( * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -1966,13 +2099,12 @@ public Builder addAllProgress( * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -1992,13 +2124,12 @@ public Builder clearProgress() { * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -2018,13 +2149,12 @@ public Builder removeProgress(int index) { * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -2038,13 +2168,12 @@ public com.google.spanner.admin.database.v1.OperationProgress.Builder getProgres * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -2062,13 +2191,12 @@ public com.google.spanner.admin.database.v1.OperationProgressOrBuilder getProgre * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -2086,13 +2214,12 @@ public com.google.spanner.admin.database.v1.OperationProgressOrBuilder getProgre * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -2106,13 +2233,12 @@ public com.google.spanner.admin.database.v1.OperationProgress.Builder addProgres * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -2128,13 +2254,12 @@ public com.google.spanner.admin.database.v1.OperationProgress.Builder addProgres * *
      * The progress of the
-     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-     * Currently, only index creation statements will have a continuously
-     * updating progress.
-     * For non-index creation statements, `progress[i]` will have start time
-     * and end time populated with commit timestamp of operation,
-     * as well as a progress of 100% once the operation has completed.
-     * `progress[i]` is the operation progress for `statements[i]`.
+     * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+     * operations. All DDL statements will have continuously updating progress,
+     * and `progress[i]` is the operation progress for `statements[i]`. Also,
+     * `progress[i]` will have start time and end time populated with commit
+     * timestamp of operation, as well as a progress of 100% once the operation
+     * has completed.
      * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -2161,6 +2286,389 @@ public com.google.spanner.admin.database.v1.OperationProgress.Builder addProgres return progressBuilder_; } + private java.util.List actions_ = + java.util.Collections.emptyList(); + + private void ensureActionsIsMutable() { + if (!((bitField0_ & 0x00000020) != 0)) { + actions_ = + new java.util.ArrayList( + actions_); + bitField0_ |= 0x00000020; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.spanner.admin.database.v1.DdlStatementActionInfo, + com.google.spanner.admin.database.v1.DdlStatementActionInfo.Builder, + com.google.spanner.admin.database.v1.DdlStatementActionInfoOrBuilder> + actionsBuilder_; + + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public java.util.List + getActionsList() { + if (actionsBuilder_ == null) { + return java.util.Collections.unmodifiableList(actions_); + } else { + return actionsBuilder_.getMessageList(); + } + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public int getActionsCount() { + if (actionsBuilder_ == null) { + return actions_.size(); + } else { + return actionsBuilder_.getCount(); + } + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public com.google.spanner.admin.database.v1.DdlStatementActionInfo getActions(int index) { + if (actionsBuilder_ == null) { + return actions_.get(index); + } else { + return actionsBuilder_.getMessage(index); + } + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public Builder setActions( + int index, com.google.spanner.admin.database.v1.DdlStatementActionInfo value) { + if (actionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureActionsIsMutable(); + actions_.set(index, value); + onChanged(); + } else { + actionsBuilder_.setMessage(index, value); + } + return this; + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public Builder setActions( + int index, + com.google.spanner.admin.database.v1.DdlStatementActionInfo.Builder builderForValue) { + if (actionsBuilder_ == null) { + ensureActionsIsMutable(); + actions_.set(index, builderForValue.build()); + onChanged(); + } else { + actionsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public Builder addActions(com.google.spanner.admin.database.v1.DdlStatementActionInfo value) { + if (actionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureActionsIsMutable(); + actions_.add(value); + onChanged(); + } else { + actionsBuilder_.addMessage(value); + } + return this; + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public Builder addActions( + int index, com.google.spanner.admin.database.v1.DdlStatementActionInfo value) { + if (actionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureActionsIsMutable(); + actions_.add(index, value); + onChanged(); + } else { + actionsBuilder_.addMessage(index, value); + } + return this; + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public Builder addActions( + com.google.spanner.admin.database.v1.DdlStatementActionInfo.Builder builderForValue) { + if (actionsBuilder_ == null) { + ensureActionsIsMutable(); + actions_.add(builderForValue.build()); + onChanged(); + } else { + actionsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public Builder addActions( + int index, + com.google.spanner.admin.database.v1.DdlStatementActionInfo.Builder builderForValue) { + if (actionsBuilder_ == null) { + ensureActionsIsMutable(); + actions_.add(index, builderForValue.build()); + onChanged(); + } else { + actionsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public Builder addAllActions( + java.lang.Iterable + values) { + if (actionsBuilder_ == null) { + ensureActionsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, actions_); + onChanged(); + } else { + actionsBuilder_.addAllMessages(values); + } + return this; + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public Builder clearActions() { + if (actionsBuilder_ == null) { + actions_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + } else { + actionsBuilder_.clear(); + } + return this; + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public Builder removeActions(int index) { + if (actionsBuilder_ == null) { + ensureActionsIsMutable(); + actions_.remove(index); + onChanged(); + } else { + actionsBuilder_.remove(index); + } + return this; + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public com.google.spanner.admin.database.v1.DdlStatementActionInfo.Builder getActionsBuilder( + int index) { + return getActionsFieldBuilder().getBuilder(index); + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public com.google.spanner.admin.database.v1.DdlStatementActionInfoOrBuilder getActionsOrBuilder( + int index) { + if (actionsBuilder_ == null) { + return actions_.get(index); + } else { + return actionsBuilder_.getMessageOrBuilder(index); + } + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public java.util.List< + ? extends com.google.spanner.admin.database.v1.DdlStatementActionInfoOrBuilder> + getActionsOrBuilderList() { + if (actionsBuilder_ != null) { + return actionsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(actions_); + } + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public com.google.spanner.admin.database.v1.DdlStatementActionInfo.Builder addActionsBuilder() { + return getActionsFieldBuilder() + .addBuilder( + com.google.spanner.admin.database.v1.DdlStatementActionInfo.getDefaultInstance()); + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public com.google.spanner.admin.database.v1.DdlStatementActionInfo.Builder addActionsBuilder( + int index) { + return getActionsFieldBuilder() + .addBuilder( + index, + com.google.spanner.admin.database.v1.DdlStatementActionInfo.getDefaultInstance()); + } + /** + * + * + *
+     * The brief action info for the DDL statements.
+     * `actions[i]` is the brief info for `statements[i]`.
+     * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + public java.util.List + getActionsBuilderList() { + return getActionsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.spanner.admin.database.v1.DdlStatementActionInfo, + com.google.spanner.admin.database.v1.DdlStatementActionInfo.Builder, + com.google.spanner.admin.database.v1.DdlStatementActionInfoOrBuilder> + getActionsFieldBuilder() { + if (actionsBuilder_ == null) { + actionsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.spanner.admin.database.v1.DdlStatementActionInfo, + com.google.spanner.admin.database.v1.DdlStatementActionInfo.Builder, + com.google.spanner.admin.database.v1.DdlStatementActionInfoOrBuilder>( + actions_, ((bitField0_ & 0x00000020) != 0), getParentForChildren(), isClean()); + actions_ = null; + } + return actionsBuilder_; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadataOrBuilder.java index 0557d7314d1..5b435a6844c 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadataOrBuilder.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadataOrBuilder.java @@ -169,7 +169,7 @@ public interface UpdateDatabaseDdlMetadataOrBuilder * * *
-   * Output only. When true, indicates that the operation is throttled e.g
+   * Output only. When true, indicates that the operation is throttled e.g.
    * due to resource constraints. When resources become available the operation
    * will resume and this field will be false again.
    * 
@@ -185,13 +185,12 @@ public interface UpdateDatabaseDdlMetadataOrBuilder * *
    * The progress of the
-   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-   * Currently, only index creation statements will have a continuously
-   * updating progress.
-   * For non-index creation statements, `progress[i]` will have start time
-   * and end time populated with commit timestamp of operation,
-   * as well as a progress of 100% once the operation has completed.
-   * `progress[i]` is the operation progress for `statements[i]`.
+   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+   * operations. All DDL statements will have continuously updating progress,
+   * and `progress[i]` is the operation progress for `statements[i]`. Also,
+   * `progress[i]` will have start time and end time populated with commit
+   * timestamp of operation, as well as a progress of 100% once the operation
+   * has completed.
    * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -202,13 +201,12 @@ public interface UpdateDatabaseDdlMetadataOrBuilder * *
    * The progress of the
-   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-   * Currently, only index creation statements will have a continuously
-   * updating progress.
-   * For non-index creation statements, `progress[i]` will have start time
-   * and end time populated with commit timestamp of operation,
-   * as well as a progress of 100% once the operation has completed.
-   * `progress[i]` is the operation progress for `statements[i]`.
+   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+   * operations. All DDL statements will have continuously updating progress,
+   * and `progress[i]` is the operation progress for `statements[i]`. Also,
+   * `progress[i]` will have start time and end time populated with commit
+   * timestamp of operation, as well as a progress of 100% once the operation
+   * has completed.
    * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -219,13 +217,12 @@ public interface UpdateDatabaseDdlMetadataOrBuilder * *
    * The progress of the
-   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-   * Currently, only index creation statements will have a continuously
-   * updating progress.
-   * For non-index creation statements, `progress[i]` will have start time
-   * and end time populated with commit timestamp of operation,
-   * as well as a progress of 100% once the operation has completed.
-   * `progress[i]` is the operation progress for `statements[i]`.
+   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+   * operations. All DDL statements will have continuously updating progress,
+   * and `progress[i]` is the operation progress for `statements[i]`. Also,
+   * `progress[i]` will have start time and end time populated with commit
+   * timestamp of operation, as well as a progress of 100% once the operation
+   * has completed.
    * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -236,13 +233,12 @@ public interface UpdateDatabaseDdlMetadataOrBuilder * *
    * The progress of the
-   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-   * Currently, only index creation statements will have a continuously
-   * updating progress.
-   * For non-index creation statements, `progress[i]` will have start time
-   * and end time populated with commit timestamp of operation,
-   * as well as a progress of 100% once the operation has completed.
-   * `progress[i]` is the operation progress for `statements[i]`.
+   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+   * operations. All DDL statements will have continuously updating progress,
+   * and `progress[i]` is the operation progress for `statements[i]`. Also,
+   * `progress[i]` will have start time and end time populated with commit
+   * timestamp of operation, as well as a progress of 100% once the operation
+   * has completed.
    * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; @@ -254,16 +250,73 @@ public interface UpdateDatabaseDdlMetadataOrBuilder * *
    * The progress of the
-   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations.
-   * Currently, only index creation statements will have a continuously
-   * updating progress.
-   * For non-index creation statements, `progress[i]` will have start time
-   * and end time populated with commit timestamp of operation,
-   * as well as a progress of 100% once the operation has completed.
-   * `progress[i]` is the operation progress for `statements[i]`.
+   * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
+   * operations. All DDL statements will have continuously updating progress,
+   * and `progress[i]` is the operation progress for `statements[i]`. Also,
+   * `progress[i]` will have start time and end time populated with commit
+   * timestamp of operation, as well as a progress of 100% once the operation
+   * has completed.
    * 
* * repeated .google.spanner.admin.database.v1.OperationProgress progress = 5; */ com.google.spanner.admin.database.v1.OperationProgressOrBuilder getProgressOrBuilder(int index); + + /** + * + * + *
+   * The brief action info for the DDL statements.
+   * `actions[i]` is the brief info for `statements[i]`.
+   * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + java.util.List getActionsList(); + /** + * + * + *
+   * The brief action info for the DDL statements.
+   * `actions[i]` is the brief info for `statements[i]`.
+   * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + com.google.spanner.admin.database.v1.DdlStatementActionInfo getActions(int index); + /** + * + * + *
+   * The brief action info for the DDL statements.
+   * `actions[i]` is the brief info for `statements[i]`.
+   * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + int getActionsCount(); + /** + * + * + *
+   * The brief action info for the DDL statements.
+   * `actions[i]` is the brief info for `statements[i]`.
+   * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + java.util.List + getActionsOrBuilderList(); + /** + * + * + *
+   * The brief action info for the DDL statements.
+   * `actions[i]` is the brief info for `statements[i]`.
+   * 
+ * + * repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6; + */ + com.google.spanner.admin.database.v1.DdlStatementActionInfoOrBuilder getActionsOrBuilder( + int index); } diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequest.java index a2c59a7b9b6..aa78a8f7a15 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequest.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequest.java @@ -32,6 +32,7 @@ * there is some data-related problem like a `NULL` value in a column to * which `NOT NULL` would be added). If a statement fails, all * subsequent statements in the batch are automatically cancelled. + * * Each batch of statements is assigned a name which can be used with * the [Operations][google.longrunning.Operations] API to monitor * progress. See the @@ -53,7 +54,7 @@ private UpdateDatabaseDdlRequest(com.google.protobuf.GeneratedMessageV3.Builder< private UpdateDatabaseDdlRequest() { database_ = ""; - statements_ = com.google.protobuf.LazyStringArrayList.EMPTY; + statements_ = com.google.protobuf.LazyStringArrayList.emptyList(); operationId_ = ""; } @@ -63,11 +64,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new UpdateDatabaseDdlRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto .internal_static_google_spanner_admin_database_v1_UpdateDatabaseDdlRequest_descriptor; @@ -141,7 +137,8 @@ public com.google.protobuf.ByteString getDatabaseBytes() { public static final int STATEMENTS_FIELD_NUMBER = 2; @SuppressWarnings("serial") - private com.google.protobuf.LazyStringList statements_; + private com.google.protobuf.LazyStringArrayList statements_ = + com.google.protobuf.LazyStringArrayList.emptyList(); /** * * @@ -213,6 +210,7 @@ public com.google.protobuf.ByteString getStatementsBytes(int index) { * automatically-generated operation ID. Otherwise, `operation_id` * is used to construct the name of the resulting * [Operation][google.longrunning.Operation]. + * * Specifying an explicit operation ID simplifies determining * whether the statements were executed in the event that the * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] call is replayed, @@ -220,6 +218,7 @@ public com.google.protobuf.ByteString getStatementsBytes(int index) { * `operation_id` fields can be combined to form the * [name][google.longrunning.Operation.name] of the resulting * [longrunning.Operation][google.longrunning.Operation]: `<database>/operations/<operation_id>`. + * * `operation_id` should be unique within the database, and must be * a valid identifier: `[a-z][a-z0-9_]*`. Note that * automatically-generated operation IDs always begin with an @@ -252,6 +251,7 @@ public java.lang.String getOperationId() { * automatically-generated operation ID. Otherwise, `operation_id` * is used to construct the name of the resulting * [Operation][google.longrunning.Operation]. + * * Specifying an explicit operation ID simplifies determining * whether the statements were executed in the event that the * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] call is replayed, @@ -259,6 +259,7 @@ public java.lang.String getOperationId() { * `operation_id` fields can be combined to form the * [name][google.longrunning.Operation.name] of the resulting * [longrunning.Operation][google.longrunning.Operation]: `<database>/operations/<operation_id>`. + * * `operation_id` should be unique within the database, and must be * a valid identifier: `[a-z][a-z0-9_]*`. Note that * automatically-generated operation IDs always begin with an @@ -483,6 +484,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build * there is some data-related problem like a `NULL` value in a column to * which `NOT NULL` would be added). If a statement fails, all * subsequent statements in the batch are automatically cancelled. + * * Each batch of statements is assigned a name which can be used with * the [Operations][google.longrunning.Operations] API to monitor * progress. See the @@ -523,8 +525,7 @@ public Builder clear() { super.clear(); bitField0_ = 0; database_ = ""; - statements_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); + statements_ = com.google.protobuf.LazyStringArrayList.emptyList(); operationId_ = ""; return this; } @@ -554,7 +555,6 @@ public com.google.spanner.admin.database.v1.UpdateDatabaseDdlRequest build() { public com.google.spanner.admin.database.v1.UpdateDatabaseDdlRequest buildPartial() { com.google.spanner.admin.database.v1.UpdateDatabaseDdlRequest result = new com.google.spanner.admin.database.v1.UpdateDatabaseDdlRequest(this); - buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } @@ -562,21 +562,16 @@ public com.google.spanner.admin.database.v1.UpdateDatabaseDdlRequest buildPartia return result; } - private void buildPartialRepeatedFields( - com.google.spanner.admin.database.v1.UpdateDatabaseDdlRequest result) { - if (((bitField0_ & 0x00000002) != 0)) { - statements_ = statements_.getUnmodifiableView(); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.statements_ = statements_; - } - private void buildPartial0( com.google.spanner.admin.database.v1.UpdateDatabaseDdlRequest result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.database_ = database_; } + if (((from_bitField0_ & 0x00000002) != 0)) { + statements_.makeImmutable(); + result.statements_ = statements_; + } if (((from_bitField0_ & 0x00000004) != 0)) { result.operationId_ = operationId_; } @@ -637,7 +632,7 @@ public Builder mergeFrom(com.google.spanner.admin.database.v1.UpdateDatabaseDdlR if (!other.statements_.isEmpty()) { if (statements_.isEmpty()) { statements_ = other.statements_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ |= 0x00000002; } else { ensureStatementsIsMutable(); statements_.addAll(other.statements_); @@ -829,14 +824,14 @@ public Builder setDatabaseBytes(com.google.protobuf.ByteString value) { return this; } - private com.google.protobuf.LazyStringList statements_ = - com.google.protobuf.LazyStringArrayList.EMPTY; + private com.google.protobuf.LazyStringArrayList statements_ = + com.google.protobuf.LazyStringArrayList.emptyList(); private void ensureStatementsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { + if (!statements_.isModifiable()) { statements_ = new com.google.protobuf.LazyStringArrayList(statements_); - bitField0_ |= 0x00000002; } + bitField0_ |= 0x00000002; } /** * @@ -850,7 +845,8 @@ private void ensureStatementsIsMutable() { * @return A list containing the statements. */ public com.google.protobuf.ProtocolStringList getStatementsList() { - return statements_.getUnmodifiableView(); + statements_.makeImmutable(); + return statements_; } /** * @@ -915,6 +911,7 @@ public Builder setStatements(int index, java.lang.String value) { } ensureStatementsIsMutable(); statements_.set(index, value); + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -936,6 +933,7 @@ public Builder addStatements(java.lang.String value) { } ensureStatementsIsMutable(); statements_.add(value); + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -954,6 +952,7 @@ public Builder addStatements(java.lang.String value) { public Builder addAllStatements(java.lang.Iterable values) { ensureStatementsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll(values, statements_); + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -969,8 +968,9 @@ public Builder addAllStatements(java.lang.Iterable values) { * @return This builder for chaining. */ public Builder clearStatements() { - statements_ = com.google.protobuf.LazyStringArrayList.EMPTY; + statements_ = com.google.protobuf.LazyStringArrayList.emptyList(); bitField0_ = (bitField0_ & ~0x00000002); + ; onChanged(); return this; } @@ -993,6 +993,7 @@ public Builder addStatementsBytes(com.google.protobuf.ByteString value) { checkByteStringIsUtf8(value); ensureStatementsIsMutable(); statements_.add(value); + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -1006,6 +1007,7 @@ public Builder addStatementsBytes(com.google.protobuf.ByteString value) { * automatically-generated operation ID. Otherwise, `operation_id` * is used to construct the name of the resulting * [Operation][google.longrunning.Operation]. + * * Specifying an explicit operation ID simplifies determining * whether the statements were executed in the event that the * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] call is replayed, @@ -1013,6 +1015,7 @@ public Builder addStatementsBytes(com.google.protobuf.ByteString value) { * `operation_id` fields can be combined to form the * [name][google.longrunning.Operation.name] of the resulting * [longrunning.Operation][google.longrunning.Operation]: `<database>/operations/<operation_id>`. + * * `operation_id` should be unique within the database, and must be * a valid identifier: `[a-z][a-z0-9_]*`. Note that * automatically-generated operation IDs always begin with an @@ -1044,6 +1047,7 @@ public java.lang.String getOperationId() { * automatically-generated operation ID. Otherwise, `operation_id` * is used to construct the name of the resulting * [Operation][google.longrunning.Operation]. + * * Specifying an explicit operation ID simplifies determining * whether the statements were executed in the event that the * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] call is replayed, @@ -1051,6 +1055,7 @@ public java.lang.String getOperationId() { * `operation_id` fields can be combined to form the * [name][google.longrunning.Operation.name] of the resulting * [longrunning.Operation][google.longrunning.Operation]: `<database>/operations/<operation_id>`. + * * `operation_id` should be unique within the database, and must be * a valid identifier: `[a-z][a-z0-9_]*`. Note that * automatically-generated operation IDs always begin with an @@ -1082,6 +1087,7 @@ public com.google.protobuf.ByteString getOperationIdBytes() { * automatically-generated operation ID. Otherwise, `operation_id` * is used to construct the name of the resulting * [Operation][google.longrunning.Operation]. + * * Specifying an explicit operation ID simplifies determining * whether the statements were executed in the event that the * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] call is replayed, @@ -1089,6 +1095,7 @@ public com.google.protobuf.ByteString getOperationIdBytes() { * `operation_id` fields can be combined to form the * [name][google.longrunning.Operation.name] of the resulting * [longrunning.Operation][google.longrunning.Operation]: `<database>/operations/<operation_id>`. + * * `operation_id` should be unique within the database, and must be * a valid identifier: `[a-z][a-z0-9_]*`. Note that * automatically-generated operation IDs always begin with an @@ -1119,6 +1126,7 @@ public Builder setOperationId(java.lang.String value) { * automatically-generated operation ID. Otherwise, `operation_id` * is used to construct the name of the resulting * [Operation][google.longrunning.Operation]. + * * Specifying an explicit operation ID simplifies determining * whether the statements were executed in the event that the * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] call is replayed, @@ -1126,6 +1134,7 @@ public Builder setOperationId(java.lang.String value) { * `operation_id` fields can be combined to form the * [name][google.longrunning.Operation.name] of the resulting * [longrunning.Operation][google.longrunning.Operation]: `<database>/operations/<operation_id>`. + * * `operation_id` should be unique within the database, and must be * a valid identifier: `[a-z][a-z0-9_]*`. Note that * automatically-generated operation IDs always begin with an @@ -1152,6 +1161,7 @@ public Builder clearOperationId() { * automatically-generated operation ID. Otherwise, `operation_id` * is used to construct the name of the resulting * [Operation][google.longrunning.Operation]. + * * Specifying an explicit operation ID simplifies determining * whether the statements were executed in the event that the * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] call is replayed, @@ -1159,6 +1169,7 @@ public Builder clearOperationId() { * `operation_id` fields can be combined to form the * [name][google.longrunning.Operation.name] of the resulting * [longrunning.Operation][google.longrunning.Operation]: `<database>/operations/<operation_id>`. + * * `operation_id` should be unique within the database, and must be * a valid identifier: `[a-z][a-z0-9_]*`. Note that * automatically-generated operation IDs always begin with an diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequestOrBuilder.java index cad7c3a28a2..0933a94e09e 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequestOrBuilder.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequestOrBuilder.java @@ -111,6 +111,7 @@ public interface UpdateDatabaseDdlRequestOrBuilder * automatically-generated operation ID. Otherwise, `operation_id` * is used to construct the name of the resulting * [Operation][google.longrunning.Operation]. + * * Specifying an explicit operation ID simplifies determining * whether the statements were executed in the event that the * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] call is replayed, @@ -118,6 +119,7 @@ public interface UpdateDatabaseDdlRequestOrBuilder * `operation_id` fields can be combined to form the * [name][google.longrunning.Operation.name] of the resulting * [longrunning.Operation][google.longrunning.Operation]: `<database>/operations/<operation_id>`. + * * `operation_id` should be unique within the database, and must be * a valid identifier: `[a-z][a-z0-9_]*`. Note that * automatically-generated operation IDs always begin with an @@ -139,6 +141,7 @@ public interface UpdateDatabaseDdlRequestOrBuilder * automatically-generated operation ID. Otherwise, `operation_id` * is used to construct the name of the resulting * [Operation][google.longrunning.Operation]. + * * Specifying an explicit operation ID simplifies determining * whether the statements were executed in the event that the * [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] call is replayed, @@ -146,6 +149,7 @@ public interface UpdateDatabaseDdlRequestOrBuilder * `operation_id` fields can be combined to form the * [name][google.longrunning.Operation.name] of the resulting * [longrunning.Operation][google.longrunning.Operation]: `<database>/operations/<operation_id>`. + * * `operation_id` should be unique within the database, and must be * a valid identifier: `[a-z][a-z0-9_]*`. Note that * automatically-generated operation IDs always begin with an diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseMetadata.java index f37b1ad1ef6..e42f634cdf0 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseMetadata.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseMetadata.java @@ -46,11 +46,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new UpdateDatabaseMetadata(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto .internal_static_google_spanner_admin_database_v1_UpdateDatabaseMetadata_descriptor; diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseRequest.java index c496653a2fd..bb83a712eec 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseRequest.java +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseRequest.java @@ -46,11 +46,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new UpdateDatabaseRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.database.v1.SpannerDatabaseAdminProto .internal_static_google_spanner_admin_database_v1_UpdateDatabaseRequest_descriptor; diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/proto/google/spanner/admin/database/v1/spanner_database_admin.proto b/proto-google-cloud-spanner-admin-database-v1/src/main/proto/google/spanner/admin/database/v1/spanner_database_admin.proto index f45bb932fda..6cf0e5a4b94 100644 --- a/proto-google-cloud-spanner-admin-database-v1/src/main/proto/google/spanner/admin/database/v1/spanner_database_admin.proto +++ b/proto-google-cloud-spanner-admin-database-v1/src/main/proto/google/spanner/admin/database/v1/spanner_database_admin.proto @@ -676,6 +676,27 @@ message UpdateDatabaseDdlRequest { string operation_id = 3; } +// Action information extracted from a DDL statement. This proto is used to +// display the brief info of the DDL statement for the operation +// [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]. +message DdlStatementActionInfo { + // The action for the DDL statement, e.g. CREATE, ALTER, DROP, GRANT, etc. + // This field is a non-empty string. + string action = 1; + + // The entity type for the DDL statement, e.g. TABLE, INDEX, VIEW, etc. + // This field can be empty string for some DDL statement, + // e.g. for statement "ANALYZE", `entity_type` = "". + string entity_type = 2; + + // The entity name(s) being operated on the DDL statement. + // E.g. + // 1. For statement "CREATE TABLE t1(...)", `entity_names` = ["t1"]. + // 2. For statement "GRANT ROLE r1, r2 ...", `entity_names` = ["r1", "r2"]. + // 3. For statement "ANALYZE", `entity_names` = []. + repeated string entity_names = 3; +} + // Metadata type for the operation returned by // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]. message UpdateDatabaseDdlMetadata { @@ -693,20 +714,23 @@ message UpdateDatabaseDdlMetadata { // timestamp for the statement `statements[i]`. repeated google.protobuf.Timestamp commit_timestamps = 3; - // Output only. When true, indicates that the operation is throttled e.g + // Output only. When true, indicates that the operation is throttled e.g. // due to resource constraints. When resources become available the operation // will resume and this field will be false again. bool throttled = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // The progress of the - // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] operations. - // Currently, only index creation statements will have a continuously - // updating progress. - // For non-index creation statements, `progress[i]` will have start time - // and end time populated with commit timestamp of operation, - // as well as a progress of 100% once the operation has completed. - // `progress[i]` is the operation progress for `statements[i]`. + // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] + // operations. All DDL statements will have continuously updating progress, + // and `progress[i]` is the operation progress for `statements[i]`. Also, + // `progress[i]` will have start time and end time populated with commit + // timestamp of operation, as well as a progress of 100% once the operation + // has completed. repeated OperationProgress progress = 5; + + // The brief action info for the DDL statements. + // `actions[i]` is the brief info for `statements[i]`. + repeated DdlStatementActionInfo actions = 6; } // The request for [DropDatabase][google.spanner.admin.database.v1.DatabaseAdmin.DropDatabase]. diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigMetadata.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigMetadata.java index ddb0edf39fc..7957451eb76 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigMetadata.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigMetadata.java @@ -46,11 +46,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new CreateInstanceConfigMetadata(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto .internal_static_google_spanner_admin_instance_v1_CreateInstanceConfigMetadata_descriptor; diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigRequest.java index 0d9bd2336fb..f283c425854 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigRequest.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigRequest.java @@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new CreateInstanceConfigRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto .internal_static_google_spanner_admin_instance_v1_CreateInstanceConfigRequest_descriptor; diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceMetadata.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceMetadata.java index 5dbce1d85d0..72dad2442f8 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceMetadata.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceMetadata.java @@ -46,11 +46,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new CreateInstanceMetadata(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto .internal_static_google_spanner_admin_instance_v1_CreateInstanceMetadata_descriptor; diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceRequest.java index 5bc14b342f4..1e3de9da213 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceRequest.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceRequest.java @@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new CreateInstanceRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto .internal_static_google_spanner_admin_instance_v1_CreateInstanceRequest_descriptor; diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceConfigRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceConfigRequest.java index 97f3875a680..cd5397978a0 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceConfigRequest.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceConfigRequest.java @@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new DeleteInstanceConfigRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto .internal_static_google_spanner_admin_instance_v1_DeleteInstanceConfigRequest_descriptor; diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceRequest.java index cbfa1e94aef..362cafcb798 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceRequest.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceRequest.java @@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new DeleteInstanceRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto .internal_static_google_spanner_admin_instance_v1_DeleteInstanceRequest_descriptor; diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceConfigRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceConfigRequest.java index 80d5c4007ad..11b2d456206 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceConfigRequest.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceConfigRequest.java @@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new GetInstanceConfigRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto .internal_static_google_spanner_admin_instance_v1_GetInstanceConfigRequest_descriptor; diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceRequest.java index 5e5f96640b0..fb836dd7a2f 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceRequest.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceRequest.java @@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new GetInstanceRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto .internal_static_google_spanner_admin_instance_v1_GetInstanceRequest_descriptor; diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/Instance.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/Instance.java index b2adc5f5222..3f81d952f62 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/Instance.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/Instance.java @@ -42,7 +42,7 @@ private Instance() { config_ = ""; displayName_ = ""; state_ = 0; - endpointUris_ = com.google.protobuf.LazyStringArrayList.EMPTY; + endpointUris_ = com.google.protobuf.LazyStringArrayList.emptyList(); } @java.lang.Override @@ -51,11 +51,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new Instance(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto .internal_static_google_spanner_admin_instance_v1_Instance_descriptor; @@ -426,6 +421,7 @@ public com.google.protobuf.ByteString getDisplayNameBytes() { * node_count or processing_units should be present in the message. This * may be zero in API responses for instances that are not yet in state * `READY`. + * * See [the * documentation](https://cloud.google.com/spanner/docs/compute-capacity) * for more information about nodes and processing units. @@ -449,6 +445,7 @@ public int getNodeCount() { * The number of processing units allocated to this instance. At most one of * processing_units or node_count should be present in the message. This may * be zero in API responses for instances that are not yet in state `READY`. + * * See [the * documentation](https://cloud.google.com/spanner/docs/compute-capacity) * for more information about nodes and processing units. @@ -548,12 +545,15 @@ public int getLabelsCount() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -587,12 +587,15 @@ public java.util.Map getLabels() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -617,12 +620,15 @@ public java.util.Map getLabelsMap() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -654,12 +660,15 @@ public java.util.Map getLabelsMap() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -685,7 +694,8 @@ public java.lang.String getLabelsOrThrow(java.lang.String key) { public static final int ENDPOINT_URIS_FIELD_NUMBER = 8; @SuppressWarnings("serial") - private com.google.protobuf.LazyStringList endpointUris_; + private com.google.protobuf.LazyStringArrayList endpointUris_ = + com.google.protobuf.LazyStringArrayList.emptyList(); /** * * @@ -1176,8 +1186,7 @@ public Builder clear() { processingUnits_ = 0; state_ = 0; internalGetMutableLabels().clear(); - endpointUris_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000080); + endpointUris_ = com.google.protobuf.LazyStringArrayList.emptyList(); createTime_ = null; if (createTimeBuilder_ != null) { createTimeBuilder_.dispose(); @@ -1215,7 +1224,6 @@ public com.google.spanner.admin.instance.v1.Instance build() { public com.google.spanner.admin.instance.v1.Instance buildPartial() { com.google.spanner.admin.instance.v1.Instance result = new com.google.spanner.admin.instance.v1.Instance(this); - buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } @@ -1223,14 +1231,6 @@ public com.google.spanner.admin.instance.v1.Instance buildPartial() { return result; } - private void buildPartialRepeatedFields(com.google.spanner.admin.instance.v1.Instance result) { - if (((bitField0_ & 0x00000080) != 0)) { - endpointUris_ = endpointUris_.getUnmodifiableView(); - bitField0_ = (bitField0_ & ~0x00000080); - } - result.endpointUris_ = endpointUris_; - } - private void buildPartial0(com.google.spanner.admin.instance.v1.Instance result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { @@ -1255,6 +1255,10 @@ private void buildPartial0(com.google.spanner.admin.instance.v1.Instance result) result.labels_ = internalGetLabels(); result.labels_.makeImmutable(); } + if (((from_bitField0_ & 0x00000080) != 0)) { + endpointUris_.makeImmutable(); + result.endpointUris_ = endpointUris_; + } if (((from_bitField0_ & 0x00000100) != 0)) { result.createTime_ = createTimeBuilder_ == null ? createTime_ : createTimeBuilder_.build(); } @@ -1337,7 +1341,7 @@ public Builder mergeFrom(com.google.spanner.admin.instance.v1.Instance other) { if (!other.endpointUris_.isEmpty()) { if (endpointUris_.isEmpty()) { endpointUris_ = other.endpointUris_; - bitField0_ = (bitField0_ & ~0x00000080); + bitField0_ |= 0x00000080; } else { ensureEndpointUrisIsMutable(); endpointUris_.addAll(other.endpointUris_); @@ -1834,6 +1838,7 @@ public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) { * node_count or processing_units should be present in the message. This * may be zero in API responses for instances that are not yet in state * `READY`. + * * See [the * documentation](https://cloud.google.com/spanner/docs/compute-capacity) * for more information about nodes and processing units. @@ -1855,6 +1860,7 @@ public int getNodeCount() { * node_count or processing_units should be present in the message. This * may be zero in API responses for instances that are not yet in state * `READY`. + * * See [the * documentation](https://cloud.google.com/spanner/docs/compute-capacity) * for more information about nodes and processing units. @@ -1880,6 +1886,7 @@ public Builder setNodeCount(int value) { * node_count or processing_units should be present in the message. This * may be zero in API responses for instances that are not yet in state * `READY`. + * * See [the * documentation](https://cloud.google.com/spanner/docs/compute-capacity) * for more information about nodes and processing units. @@ -1904,6 +1911,7 @@ public Builder clearNodeCount() { * The number of processing units allocated to this instance. At most one of * processing_units or node_count should be present in the message. This may * be zero in API responses for instances that are not yet in state `READY`. + * * See [the * documentation](https://cloud.google.com/spanner/docs/compute-capacity) * for more information about nodes and processing units. @@ -1924,6 +1932,7 @@ public int getProcessingUnits() { * The number of processing units allocated to this instance. At most one of * processing_units or node_count should be present in the message. This may * be zero in API responses for instances that are not yet in state `READY`. + * * See [the * documentation](https://cloud.google.com/spanner/docs/compute-capacity) * for more information about nodes and processing units. @@ -1948,6 +1957,7 @@ public Builder setProcessingUnits(int value) { * The number of processing units allocated to this instance. At most one of * processing_units or node_count should be present in the message. This may * be zero in API responses for instances that are not yet in state `READY`. + * * See [the * documentation](https://cloud.google.com/spanner/docs/compute-capacity) * for more information about nodes and processing units. @@ -2121,12 +2131,15 @@ public int getLabelsCount() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -2160,12 +2173,15 @@ public java.util.Map getLabels() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -2190,12 +2206,15 @@ public java.util.Map getLabelsMap() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -2227,12 +2246,15 @@ public java.util.Map getLabelsMap() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -2270,12 +2292,15 @@ public Builder clearLabels() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -2309,12 +2334,15 @@ public java.util.Map getMutableLabels() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -2346,12 +2374,15 @@ public Builder putLabels(java.lang.String key, java.lang.String value) { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -2368,14 +2399,14 @@ public Builder putAllLabels(java.util.Map va return this; } - private com.google.protobuf.LazyStringList endpointUris_ = - com.google.protobuf.LazyStringArrayList.EMPTY; + private com.google.protobuf.LazyStringArrayList endpointUris_ = + com.google.protobuf.LazyStringArrayList.emptyList(); private void ensureEndpointUrisIsMutable() { - if (!((bitField0_ & 0x00000080) != 0)) { + if (!endpointUris_.isModifiable()) { endpointUris_ = new com.google.protobuf.LazyStringArrayList(endpointUris_); - bitField0_ |= 0x00000080; } + bitField0_ |= 0x00000080; } /** * @@ -2389,7 +2420,8 @@ private void ensureEndpointUrisIsMutable() { * @return A list containing the endpointUris. */ public com.google.protobuf.ProtocolStringList getEndpointUrisList() { - return endpointUris_.getUnmodifiableView(); + endpointUris_.makeImmutable(); + return endpointUris_; } /** * @@ -2454,6 +2486,7 @@ public Builder setEndpointUris(int index, java.lang.String value) { } ensureEndpointUrisIsMutable(); endpointUris_.set(index, value); + bitField0_ |= 0x00000080; onChanged(); return this; } @@ -2475,6 +2508,7 @@ public Builder addEndpointUris(java.lang.String value) { } ensureEndpointUrisIsMutable(); endpointUris_.add(value); + bitField0_ |= 0x00000080; onChanged(); return this; } @@ -2493,6 +2527,7 @@ public Builder addEndpointUris(java.lang.String value) { public Builder addAllEndpointUris(java.lang.Iterable values) { ensureEndpointUrisIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll(values, endpointUris_); + bitField0_ |= 0x00000080; onChanged(); return this; } @@ -2508,8 +2543,9 @@ public Builder addAllEndpointUris(java.lang.Iterable values) { * @return This builder for chaining. */ public Builder clearEndpointUris() { - endpointUris_ = com.google.protobuf.LazyStringArrayList.EMPTY; + endpointUris_ = com.google.protobuf.LazyStringArrayList.emptyList(); bitField0_ = (bitField0_ & ~0x00000080); + ; onChanged(); return this; } @@ -2532,6 +2568,7 @@ public Builder addEndpointUrisBytes(com.google.protobuf.ByteString value) { checkByteStringIsUtf8(value); ensureEndpointUrisIsMutable(); endpointUris_.add(value); + bitField0_ |= 0x00000080; onChanged(); return this; } diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfig.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfig.java index e8b1cd418e3..0351972ca66 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfig.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfig.java @@ -46,7 +46,7 @@ private InstanceConfig() { optionalReplicas_ = java.util.Collections.emptyList(); baseConfig_ = ""; etag_ = ""; - leaderOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY; + leaderOptions_ = com.google.protobuf.LazyStringArrayList.emptyList(); state_ = 0; } @@ -56,11 +56,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new InstanceConfig(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto .internal_static_google_spanner_admin_instance_v1_InstanceConfig_descriptor; @@ -813,12 +808,15 @@ public int getLabelsCount() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -852,12 +850,15 @@ public java.util.Map getLabels() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -882,12 +883,15 @@ public java.util.Map getLabelsMap() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -919,12 +923,15 @@ public java.util.Map getLabelsMap() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -1019,7 +1026,8 @@ public com.google.protobuf.ByteString getEtagBytes() { public static final int LEADER_OPTIONS_FIELD_NUMBER = 4; @SuppressWarnings("serial") - private com.google.protobuf.LazyStringList leaderOptions_; + private com.google.protobuf.LazyStringArrayList leaderOptions_ = + com.google.protobuf.LazyStringArrayList.emptyList(); /** * * @@ -1497,8 +1505,7 @@ public Builder clear() { baseConfig_ = ""; internalGetMutableLabels().clear(); etag_ = ""; - leaderOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000100); + leaderOptions_ = com.google.protobuf.LazyStringArrayList.emptyList(); reconciling_ = false; state_ = 0; return this; @@ -1556,11 +1563,6 @@ private void buildPartialRepeatedFields( } else { result.optionalReplicas_ = optionalReplicasBuilder_.build(); } - if (((bitField0_ & 0x00000100) != 0)) { - leaderOptions_ = leaderOptions_.getUnmodifiableView(); - bitField0_ = (bitField0_ & ~0x00000100); - } - result.leaderOptions_ = leaderOptions_; } private void buildPartial0(com.google.spanner.admin.instance.v1.InstanceConfig result) { @@ -1584,6 +1586,10 @@ private void buildPartial0(com.google.spanner.admin.instance.v1.InstanceConfig r if (((from_bitField0_ & 0x00000080) != 0)) { result.etag_ = etag_; } + if (((from_bitField0_ & 0x00000100) != 0)) { + leaderOptions_.makeImmutable(); + result.leaderOptions_ = leaderOptions_; + } if (((from_bitField0_ & 0x00000200) != 0)) { result.reconciling_ = reconciling_; } @@ -1720,7 +1726,7 @@ public Builder mergeFrom(com.google.spanner.admin.instance.v1.InstanceConfig oth if (!other.leaderOptions_.isEmpty()) { if (leaderOptions_.isEmpty()) { leaderOptions_ = other.leaderOptions_; - bitField0_ = (bitField0_ & ~0x00000100); + bitField0_ |= 0x00000100; } else { ensureLeaderOptionsIsMutable(); leaderOptions_.addAll(other.leaderOptions_); @@ -3137,12 +3143,15 @@ public int getLabelsCount() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -3176,12 +3185,15 @@ public java.util.Map getLabels() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -3206,12 +3218,15 @@ public java.util.Map getLabelsMap() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -3243,12 +3258,15 @@ public java.util.Map getLabelsMap() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -3286,12 +3304,15 @@ public Builder clearLabels() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -3325,12 +3346,15 @@ public java.util.Map getMutableLabels() { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -3362,12 +3386,15 @@ public Builder putLabels(java.lang.String key, java.lang.String value) { * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -3535,14 +3562,14 @@ public Builder setEtagBytes(com.google.protobuf.ByteString value) { return this; } - private com.google.protobuf.LazyStringList leaderOptions_ = - com.google.protobuf.LazyStringArrayList.EMPTY; + private com.google.protobuf.LazyStringArrayList leaderOptions_ = + com.google.protobuf.LazyStringArrayList.emptyList(); private void ensureLeaderOptionsIsMutable() { - if (!((bitField0_ & 0x00000100) != 0)) { + if (!leaderOptions_.isModifiable()) { leaderOptions_ = new com.google.protobuf.LazyStringArrayList(leaderOptions_); - bitField0_ |= 0x00000100; } + bitField0_ |= 0x00000100; } /** * @@ -3557,7 +3584,8 @@ private void ensureLeaderOptionsIsMutable() { * @return A list containing the leaderOptions. */ public com.google.protobuf.ProtocolStringList getLeaderOptionsList() { - return leaderOptions_.getUnmodifiableView(); + leaderOptions_.makeImmutable(); + return leaderOptions_; } /** * @@ -3626,6 +3654,7 @@ public Builder setLeaderOptions(int index, java.lang.String value) { } ensureLeaderOptionsIsMutable(); leaderOptions_.set(index, value); + bitField0_ |= 0x00000100; onChanged(); return this; } @@ -3648,6 +3677,7 @@ public Builder addLeaderOptions(java.lang.String value) { } ensureLeaderOptionsIsMutable(); leaderOptions_.add(value); + bitField0_ |= 0x00000100; onChanged(); return this; } @@ -3667,6 +3697,7 @@ public Builder addLeaderOptions(java.lang.String value) { public Builder addAllLeaderOptions(java.lang.Iterable values) { ensureLeaderOptionsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll(values, leaderOptions_); + bitField0_ |= 0x00000100; onChanged(); return this; } @@ -3683,8 +3714,9 @@ public Builder addAllLeaderOptions(java.lang.Iterable values) * @return This builder for chaining. */ public Builder clearLeaderOptions() { - leaderOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY; + leaderOptions_ = com.google.protobuf.LazyStringArrayList.emptyList(); bitField0_ = (bitField0_ & ~0x00000100); + ; onChanged(); return this; } @@ -3708,6 +3740,7 @@ public Builder addLeaderOptionsBytes(com.google.protobuf.ByteString value) { checkByteStringIsUtf8(value); ensureLeaderOptionsIsMutable(); leaderOptions_.add(value); + bitField0_ |= 0x00000100; onChanged(); return this; } diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfigName.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfigName.java index f35e6486198..013ea8d822f 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfigName.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfigName.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfigOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfigOrBuilder.java index cd54bc42865..acf1f898390 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfigOrBuilder.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfigOrBuilder.java @@ -273,12 +273,15 @@ public interface InstanceConfigOrBuilder * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -300,12 +303,15 @@ public interface InstanceConfigOrBuilder * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -330,12 +336,15 @@ public interface InstanceConfigOrBuilder * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -357,12 +366,15 @@ public interface InstanceConfigOrBuilder * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon @@ -388,12 +400,15 @@ java.lang.String getLabelsOrDefault( * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. Therefore, you are advised to use * an internal label representation, such as JSON, which doesn't rely upon diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceName.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceName.java index c20c3d693c2..bdf8fc16fc5 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceName.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceName.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceOrBuilder.java index 202d5c0bfe2..accad92c855 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceOrBuilder.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceOrBuilder.java @@ -124,6 +124,7 @@ public interface InstanceOrBuilder * node_count or processing_units should be present in the message. This * may be zero in API responses for instances that are not yet in state * `READY`. + * * See [the * documentation](https://cloud.google.com/spanner/docs/compute-capacity) * for more information about nodes and processing units. @@ -142,6 +143,7 @@ public interface InstanceOrBuilder * The number of processing units allocated to this instance. At most one of * processing_units or node_count should be present in the message. This may * be zero in API responses for instances that are not yet in state `READY`. + * * See [the * documentation](https://cloud.google.com/spanner/docs/compute-capacity) * for more information about nodes and processing units. @@ -200,12 +202,15 @@ public interface InstanceOrBuilder * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -227,12 +232,15 @@ public interface InstanceOrBuilder * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -257,12 +265,15 @@ public interface InstanceOrBuilder * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -284,12 +295,15 @@ public interface InstanceOrBuilder * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon @@ -315,12 +329,15 @@ java.lang.String getLabelsOrDefault( * resources. They can be used to control how resource metrics are aggregated. * And they can be used as arguments to policy management rules (e.g. route, * firewall, load balancing, etc.). + * * * Label keys must be between 1 and 63 characters long and must conform to * the following regular expression: `[a-z][a-z0-9_-]{0,62}`. * * Label values must be between 0 and 63 characters long and must conform * to the regular expression `[a-z0-9_-]{0,63}`. * * No more than 64 labels can be associated with a given resource. + * * See https://goo.gl/xmQnxf for more information on and examples of labels. + * * If you plan to use labels in your own code, please note that additional * characters may be allowed in the future. And so you are advised to use an * internal label representation, such as JSON, which doesn't rely upon diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequest.java index f2383b48b41..542bafb332b 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequest.java +++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequest.java @@ -52,11 +52,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new ListInstanceConfigOperationsRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto .internal_static_google_spanner_admin_instance_v1_ListInstanceConfigOperationsRequest_descriptor; @@ -138,13 +133,16 @@ public com.google.protobuf.ByteString getParentBytes() { * *
    * An expression that filters the list of returned operations.
+   *
    * A filter expression consists of a field name, a
    * comparison operator, and a value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [Operation][google.longrunning.Operation]
    * are eligible for filtering:
+   *
    *   * `name` - The name of the long-running operation
    *   * `done` - False if the operation is in progress, else true.
    *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -158,10 +156,13 @@ public com.google.protobuf.ByteString getParentBytes() {
    *   * `error` - Error associated with the long-running operation.
    *   * `response.@type` - the type of response.
    *   * `response.<field_name>` - any field in response.value.
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic. However,
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `done:true` - The operation is complete.
    *   * `(metadata.@type=` \
    *     `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata)
@@ -197,13 +198,16 @@ public java.lang.String getFilter() {
    *
    * 
    * An expression that filters the list of returned operations.
+   *
    * A filter expression consists of a field name, a
    * comparison operator, and a value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [Operation][google.longrunning.Operation]
    * are eligible for filtering:
+   *
    *   * `name` - The name of the long-running operation
    *   * `done` - False if the operation is in progress, else true.
    *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -217,10 +221,13 @@ public java.lang.String getFilter() {
    *   * `error` - Error associated with the long-running operation.
    *   * `response.@type` - the type of response.
    *   * `response.<field_name>` - any field in response.value.
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic. However,
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `done:true` - The operation is complete.
    *   * `(metadata.@type=` \
    *     `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata)
@@ -883,13 +890,16 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
      *
      * 
      * An expression that filters the list of returned operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -903,10 +913,13 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic. However,
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=` \
      *     `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata)
@@ -941,13 +954,16 @@ public java.lang.String getFilter() {
      *
      * 
      * An expression that filters the list of returned operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -961,10 +977,13 @@ public java.lang.String getFilter() {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic. However,
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=` \
      *     `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata)
@@ -999,13 +1018,16 @@ public com.google.protobuf.ByteString getFilterBytes() {
      *
      * 
      * An expression that filters the list of returned operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -1019,10 +1041,13 @@ public com.google.protobuf.ByteString getFilterBytes() {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic. However,
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=` \
      *     `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata)
@@ -1056,13 +1081,16 @@ public Builder setFilter(java.lang.String value) {
      *
      * 
      * An expression that filters the list of returned operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -1076,10 +1104,13 @@ public Builder setFilter(java.lang.String value) {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic. However,
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=` \
      *     `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata)
@@ -1109,13 +1140,16 @@ public Builder clearFilter() {
      *
      * 
      * An expression that filters the list of returned operations.
+     *
      * A filter expression consists of a field name, a
      * comparison operator, and a value for filtering.
      * The value must be a string, a number, or a boolean. The comparison operator
      * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
      * Colon `:` is the contains operator. Filter rules are not case sensitive.
+     *
      * The following fields in the [Operation][google.longrunning.Operation]
      * are eligible for filtering:
+     *
      *   * `name` - The name of the long-running operation
      *   * `done` - False if the operation is in progress, else true.
      *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -1129,10 +1163,13 @@ public Builder clearFilter() {
      *   * `error` - Error associated with the long-running operation.
      *   * `response.@type` - the type of response.
      *   * `response.<field_name>` - any field in response.value.
+     *
      * You can combine multiple expressions by enclosing each expression in
      * parentheses. By default, expressions are combined with AND logic. However,
      * you can specify AND, OR, and NOT logic explicitly.
+     *
      * Here are a few examples:
+     *
      *   * `done:true` - The operation is complete.
      *   * `(metadata.@type=` \
      *     `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata)
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequestOrBuilder.java
index 3e79ae5fff3..b9116f3d765 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequestOrBuilder.java
@@ -59,13 +59,16 @@ public interface ListInstanceConfigOperationsRequestOrBuilder
    *
    * 
    * An expression that filters the list of returned operations.
+   *
    * A filter expression consists of a field name, a
    * comparison operator, and a value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [Operation][google.longrunning.Operation]
    * are eligible for filtering:
+   *
    *   * `name` - The name of the long-running operation
    *   * `done` - False if the operation is in progress, else true.
    *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -79,10 +82,13 @@ public interface ListInstanceConfigOperationsRequestOrBuilder
    *   * `error` - Error associated with the long-running operation.
    *   * `response.@type` - the type of response.
    *   * `response.<field_name>` - any field in response.value.
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic. However,
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `done:true` - The operation is complete.
    *   * `(metadata.@type=` \
    *     `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata)
@@ -107,13 +113,16 @@ public interface ListInstanceConfigOperationsRequestOrBuilder
    *
    * 
    * An expression that filters the list of returned operations.
+   *
    * A filter expression consists of a field name, a
    * comparison operator, and a value for filtering.
    * The value must be a string, a number, or a boolean. The comparison operator
    * must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`.
    * Colon `:` is the contains operator. Filter rules are not case sensitive.
+   *
    * The following fields in the [Operation][google.longrunning.Operation]
    * are eligible for filtering:
+   *
    *   * `name` - The name of the long-running operation
    *   * `done` - False if the operation is in progress, else true.
    *   * `metadata.@type` - the type of metadata. For example, the type string
@@ -127,10 +136,13 @@ public interface ListInstanceConfigOperationsRequestOrBuilder
    *   * `error` - Error associated with the long-running operation.
    *   * `response.@type` - the type of response.
    *   * `response.<field_name>` - any field in response.value.
+   *
    * You can combine multiple expressions by enclosing each expression in
    * parentheses. By default, expressions are combined with AND logic. However,
    * you can specify AND, OR, and NOT logic explicitly.
+   *
    * Here are a few examples:
+   *
    *   * `done:true` - The operation is complete.
    *   * `(metadata.@type=` \
    *     `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata)
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsResponse.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsResponse.java
index f120ee9ea3b..5ea6dd69395 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsResponse.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsResponse.java
@@ -51,11 +51,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListInstanceConfigOperationsResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto
         .internal_static_google_spanner_admin_instance_v1_ListInstanceConfigOperationsResponse_descriptor;
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsRequest.java
index ccfd7f89e98..9101130a4c0 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsRequest.java
@@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListInstanceConfigsRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto
         .internal_static_google_spanner_admin_instance_v1_ListInstanceConfigsRequest_descriptor;
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsResponse.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsResponse.java
index d5611dd1e8d..0d8cac1c67f 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsResponse.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsResponse.java
@@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListInstanceConfigsResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto
         .internal_static_google_spanner_admin_instance_v1_ListInstanceConfigsResponse_descriptor;
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequest.java
index 2ba8ebb3487..1236936495a 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequest.java
@@ -50,11 +50,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListInstancesRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto
         .internal_static_google_spanner_admin_instance_v1_ListInstancesRequest_descriptor;
@@ -213,10 +208,13 @@ public com.google.protobuf.ByteString getPageTokenBytes() {
    * 
    * An expression for filtering the results of the request. Filter rules are
    * case insensitive. The fields eligible for filtering are:
+   *
    *   * `name`
    *   * `display_name`
    *   * `labels.key` where key is the name of a label
+   *
    * Some examples of using filters are:
+   *
    *   * `name:*` --> The instance has a name.
    *   * `name:Howl` --> The instance's name contains the string "howl".
    *   * `name:HOWL` --> Equivalent to above.
@@ -251,10 +249,13 @@ public java.lang.String getFilter() {
    * 
    * An expression for filtering the results of the request. Filter rules are
    * case insensitive. The fields eligible for filtering are:
+   *
    *   * `name`
    *   * `display_name`
    *   * `labels.key` where key is the name of a label
+   *
    * Some examples of using filters are:
+   *
    *   * `name:*` --> The instance has a name.
    *   * `name:Howl` --> The instance's name contains the string "howl".
    *   * `name:HOWL` --> Equivalent to above.
@@ -1003,10 +1004,13 @@ public Builder setPageTokenBytes(com.google.protobuf.ByteString value) {
      * 
      * An expression for filtering the results of the request. Filter rules are
      * case insensitive. The fields eligible for filtering are:
+     *
      *   * `name`
      *   * `display_name`
      *   * `labels.key` where key is the name of a label
+     *
      * Some examples of using filters are:
+     *
      *   * `name:*` --> The instance has a name.
      *   * `name:Howl` --> The instance's name contains the string "howl".
      *   * `name:HOWL` --> Equivalent to above.
@@ -1040,10 +1044,13 @@ public java.lang.String getFilter() {
      * 
      * An expression for filtering the results of the request. Filter rules are
      * case insensitive. The fields eligible for filtering are:
+     *
      *   * `name`
      *   * `display_name`
      *   * `labels.key` where key is the name of a label
+     *
      * Some examples of using filters are:
+     *
      *   * `name:*` --> The instance has a name.
      *   * `name:Howl` --> The instance's name contains the string "howl".
      *   * `name:HOWL` --> Equivalent to above.
@@ -1077,10 +1084,13 @@ public com.google.protobuf.ByteString getFilterBytes() {
      * 
      * An expression for filtering the results of the request. Filter rules are
      * case insensitive. The fields eligible for filtering are:
+     *
      *   * `name`
      *   * `display_name`
      *   * `labels.key` where key is the name of a label
+     *
      * Some examples of using filters are:
+     *
      *   * `name:*` --> The instance has a name.
      *   * `name:Howl` --> The instance's name contains the string "howl".
      *   * `name:HOWL` --> Equivalent to above.
@@ -1113,10 +1123,13 @@ public Builder setFilter(java.lang.String value) {
      * 
      * An expression for filtering the results of the request. Filter rules are
      * case insensitive. The fields eligible for filtering are:
+     *
      *   * `name`
      *   * `display_name`
      *   * `labels.key` where key is the name of a label
+     *
      * Some examples of using filters are:
+     *
      *   * `name:*` --> The instance has a name.
      *   * `name:Howl` --> The instance's name contains the string "howl".
      *   * `name:HOWL` --> Equivalent to above.
@@ -1145,10 +1158,13 @@ public Builder clearFilter() {
      * 
      * An expression for filtering the results of the request. Filter rules are
      * case insensitive. The fields eligible for filtering are:
+     *
      *   * `name`
      *   * `display_name`
      *   * `labels.key` where key is the name of a label
+     *
      * Some examples of using filters are:
+     *
      *   * `name:*` --> The instance has a name.
      *   * `name:Howl` --> The instance's name contains the string "howl".
      *   * `name:HOWL` --> Equivalent to above.
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequestOrBuilder.java
index fe48b843731..4d2e9869ded 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequestOrBuilder.java
@@ -105,10 +105,13 @@ public interface ListInstancesRequestOrBuilder
    * 
    * An expression for filtering the results of the request. Filter rules are
    * case insensitive. The fields eligible for filtering are:
+   *
    *   * `name`
    *   * `display_name`
    *   * `labels.key` where key is the name of a label
+   *
    * Some examples of using filters are:
+   *
    *   * `name:*` --> The instance has a name.
    *   * `name:Howl` --> The instance's name contains the string "howl".
    *   * `name:HOWL` --> Equivalent to above.
@@ -132,10 +135,13 @@ public interface ListInstancesRequestOrBuilder
    * 
    * An expression for filtering the results of the request. Filter rules are
    * case insensitive. The fields eligible for filtering are:
+   *
    *   * `name`
    *   * `display_name`
    *   * `labels.key` where key is the name of a label
+   *
    * Some examples of using filters are:
+   *
    *   * `name:*` --> The instance has a name.
    *   * `name:Howl` --> The instance's name contains the string "howl".
    *   * `name:HOWL` --> Equivalent to above.
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesResponse.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesResponse.java
index 89519d1b539..65ae986053e 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesResponse.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesResponse.java
@@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListInstancesResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto
         .internal_static_google_spanner_admin_instance_v1_ListInstancesResponse_descriptor;
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/OperationProgress.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/OperationProgress.java
index 8a822c2c7d2..37971de7ed9 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/OperationProgress.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/OperationProgress.java
@@ -46,11 +46,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new OperationProgress();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.instance.v1.CommonProto
         .internal_static_google_spanner_admin_instance_v1_OperationProgress_descriptor;
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ProjectName.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ProjectName.java
index 54cecb928ac..ac48875b84f 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ProjectName.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ProjectName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2022 Google LLC
+ * Copyright 2023 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaInfo.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaInfo.java
index 2553f2fff57..e180b6bbb6d 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaInfo.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaInfo.java
@@ -40,11 +40,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ReplicaInfo();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto
         .internal_static_google_spanner_admin_instance_v1_ReplicaInfo_descriptor;
@@ -87,6 +82,7 @@ public enum ReplicaType implements com.google.protobuf.ProtocolMessageEnum {
      *
      * 
      * Read-write replicas support both reads and writes. These replicas:
+     *
      * * Maintain a full copy of your data.
      * * Serve reads.
      * * Can vote whether to commit a write.
@@ -102,6 +98,7 @@ public enum ReplicaType implements com.google.protobuf.ProtocolMessageEnum {
      *
      * 
      * Read-only replicas only support reads (not writes). Read-only replicas:
+     *
      * * Maintain a full copy of your data.
      * * Serve reads.
      * * Do not participate in voting to commit writes.
@@ -117,6 +114,7 @@ public enum ReplicaType implements com.google.protobuf.ProtocolMessageEnum {
      * 
      * Witness replicas don't support reads but do participate in voting to
      * commit writes. Witness replicas:
+     *
      * * Do not maintain a full copy of data.
      * * Do not serve reads.
      * * Vote whether to commit writes.
@@ -144,6 +142,7 @@ public enum ReplicaType implements com.google.protobuf.ProtocolMessageEnum {
      *
      * 
      * Read-write replicas support both reads and writes. These replicas:
+     *
      * * Maintain a full copy of your data.
      * * Serve reads.
      * * Can vote whether to commit a write.
@@ -159,6 +158,7 @@ public enum ReplicaType implements com.google.protobuf.ProtocolMessageEnum {
      *
      * 
      * Read-only replicas only support reads (not writes). Read-only replicas:
+     *
      * * Maintain a full copy of your data.
      * * Serve reads.
      * * Do not participate in voting to commit writes.
@@ -174,6 +174,7 @@ public enum ReplicaType implements com.google.protobuf.ProtocolMessageEnum {
      * 
      * Witness replicas don't support reads but do participate in voting to
      * commit writes. Witness replicas:
+     *
      * * Do not maintain a full copy of data.
      * * Do not serve reads.
      * * Vote whether to commit writes.
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/SpannerInstanceAdminProto.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/SpannerInstanceAdminProto.java
index 3d5256cbd62..8fc561a4fa7 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/SpannerInstanceAdminProto.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/SpannerInstanceAdminProto.java
@@ -144,203 +144,204 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
           + "min.instance.v1.ReplicaInfo.ReplicaType\022"
           + "\037\n\027default_leader_location\030\003 \001(\010\"O\n\013Repl"
           + "icaType\022\024\n\020TYPE_UNSPECIFIED\020\000\022\016\n\nREAD_WR"
-          + "ITE\020\001\022\r\n\tREAD_ONLY\020\002\022\013\n\007WITNESS\020\003\"\276\006\n\016In"
+          + "ITE\020\001\022\r\n\tREAD_ONLY\020\002\022\013\n\007WITNESS\020\003\"\302\006\n\016In"
           + "stanceConfig\022\014\n\004name\030\001 \001(\t\022\024\n\014display_na"
-          + "me\030\002 \001(\t\022O\n\013config_type\030\005 \001(\01625.google.s"
+          + "me\030\002 \001(\t\022P\n\013config_type\030\005 \001(\01625.google.s"
           + "panner.admin.instance.v1.InstanceConfig."
-          + "TypeB\003\340A\003\022?\n\010replicas\030\003 \003(\0132-.google.spa"
-          + "nner.admin.instance.v1.ReplicaInfo\022M\n\021op"
-          + "tional_replicas\030\006 \003(\0132-.google.spanner.a"
-          + "dmin.instance.v1.ReplicaInfoB\003\340A\003\022?\n\013bas"
-          + "e_config\030\007 \001(\tB*\372A\'\n%spanner.googleapis."
-          + "com/InstanceConfig\022L\n\006labels\030\010 \003(\0132<.goo"
-          + "gle.spanner.admin.instance.v1.InstanceCo"
-          + "nfig.LabelsEntry\022\014\n\004etag\030\t \001(\t\022\026\n\016leader"
-          + "_options\030\004 \003(\t\022\030\n\013reconciling\030\n \001(\010B\003\340A\003"
-          + "\022J\n\005state\030\013 \001(\01626.google.spanner.admin.i"
-          + "nstance.v1.InstanceConfig.StateB\003\340A\003\032-\n\013"
-          + "LabelsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:"
-          + "\0028\001\"B\n\004Type\022\024\n\020TYPE_UNSPECIFIED\020\000\022\022\n\016GOO"
-          + "GLE_MANAGED\020\001\022\020\n\014USER_MANAGED\020\002\"7\n\005State"
-          + "\022\025\n\021STATE_UNSPECIFIED\020\000\022\014\n\010CREATING\020\001\022\t\n"
-          + "\005READY\020\002:`\352A]\n%spanner.googleapis.com/In"
-          + "stanceConfig\0224projects/{project}/instanc"
-          + "eConfigs/{instance_config}\"\355\004\n\010Instance\022"
-          + "\021\n\004name\030\001 \001(\tB\003\340A\002\022=\n\006config\030\002 \001(\tB-\340A\002\372"
-          + "A\'\n%spanner.googleapis.com/InstanceConfi"
-          + "g\022\031\n\014display_name\030\003 \001(\tB\003\340A\002\022\022\n\nnode_cou"
-          + "nt\030\005 \001(\005\022\030\n\020processing_units\030\t \001(\005\022D\n\005st"
-          + "ate\030\006 \001(\01620.google.spanner.admin.instanc"
-          + "e.v1.Instance.StateB\003\340A\003\022F\n\006labels\030\007 \003(\013"
-          + "26.google.spanner.admin.instance.v1.Inst"
-          + "ance.LabelsEntry\022\025\n\rendpoint_uris\030\010 \003(\t\022"
-          + "4\n\013create_time\030\013 \001(\0132\032.google.protobuf.T"
-          + "imestampB\003\340A\003\0224\n\013update_time\030\014 \001(\0132\032.goo"
-          + "gle.protobuf.TimestampB\003\340A\003\032-\n\013LabelsEnt"
-          + "ry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"7\n\005St"
-          + "ate\022\025\n\021STATE_UNSPECIFIED\020\000\022\014\n\010CREATING\020\001"
-          + "\022\t\n\005READY\020\002:M\352AJ\n\037spanner.googleapis.com"
-          + "/Instance\022\'projects/{project}/instances/"
-          + "{instance}\"\210\001\n\032ListInstanceConfigsReques"
-          + "t\022C\n\006parent\030\001 \001(\tB3\340A\002\372A-\n+cloudresource"
-          + "manager.googleapis.com/Project\022\021\n\tpage_s"
-          + "ize\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\"\202\001\n\033ListIn"
-          + "stanceConfigsResponse\022J\n\020instance_config"
-          + "s\030\001 \003(\01320.google.spanner.admin.instance."
-          + "v1.InstanceConfig\022\027\n\017next_page_token\030\002 \001"
-          + "(\t\"W\n\030GetInstanceConfigRequest\022;\n\004name\030\001"
-          + " \001(\tB-\340A\002\372A\'\n%spanner.googleapis.com/Ins"
-          + "tanceConfig\"\352\001\n\033CreateInstanceConfigRequ"
-          + "est\022C\n\006parent\030\001 \001(\tB3\340A\002\372A-\n+cloudresour"
-          + "cemanager.googleapis.com/Project\022\037\n\022inst"
-          + "ance_config_id\030\002 \001(\tB\003\340A\002\022N\n\017instance_co"
-          + "nfig\030\003 \001(\01320.google.spanner.admin.instan"
-          + "ce.v1.InstanceConfigB\003\340A\002\022\025\n\rvalidate_on"
-          + "ly\030\004 \001(\010\"\272\001\n\033UpdateInstanceConfigRequest"
-          + "\022N\n\017instance_config\030\001 \001(\01320.google.spann"
-          + "er.admin.instance.v1.InstanceConfigB\003\340A\002"
-          + "\0224\n\013update_mask\030\002 \001(\0132\032.google.protobuf."
-          + "FieldMaskB\003\340A\002\022\025\n\rvalidate_only\030\003 \001(\010\"\177\n"
-          + "\033DeleteInstanceConfigRequest\022;\n\004name\030\001 \001"
-          + "(\tB-\340A\002\372A\'\n%spanner.googleapis.com/Insta"
-          + "nceConfig\022\014\n\004etag\030\002 \001(\t\022\025\n\rvalidate_only"
-          + "\030\003 \001(\010\"\241\001\n#ListInstanceConfigOperationsR"
-          + "equest\022C\n\006parent\030\001 \001(\tB3\340A\002\372A-\n+cloudres"
-          + "ourcemanager.googleapis.com/Project\022\016\n\006f"
-          + "ilter\030\002 \001(\t\022\021\n\tpage_size\030\003 \001(\005\022\022\n\npage_t"
-          + "oken\030\004 \001(\t\"r\n$ListInstanceConfigOperatio"
-          + "nsResponse\0221\n\noperations\030\001 \003(\0132\035.google."
-          + "longrunning.Operation\022\027\n\017next_page_token"
-          + "\030\002 \001(\t\"{\n\022GetInstanceRequest\0225\n\004name\030\001 \001"
-          + "(\tB\'\340A\002\372A!\n\037spanner.googleapis.com/Insta"
-          + "nce\022.\n\nfield_mask\030\002 \001(\0132\032.google.protobu"
-          + "f.FieldMask\"\271\001\n\025CreateInstanceRequest\022C\n"
-          + "\006parent\030\001 \001(\tB3\340A\002\372A-\n+cloudresourcemana"
-          + "ger.googleapis.com/Project\022\030\n\013instance_i"
-          + "d\030\002 \001(\tB\003\340A\002\022A\n\010instance\030\003 \001(\0132*.google."
-          + "spanner.admin.instance.v1.InstanceB\003\340A\002\""
-          + "\222\001\n\024ListInstancesRequest\022C\n\006parent\030\001 \001(\t"
-          + "B3\340A\002\372A-\n+cloudresourcemanager.googleapi"
-          + "s.com/Project\022\021\n\tpage_size\030\002 \001(\005\022\022\n\npage"
-          + "_token\030\003 \001(\t\022\016\n\006filter\030\004 \001(\t\"o\n\025ListInst"
-          + "ancesResponse\022=\n\tinstances\030\001 \003(\0132*.googl"
-          + "e.spanner.admin.instance.v1.Instance\022\027\n\017"
-          + "next_page_token\030\002 \001(\t\"\217\001\n\025UpdateInstance"
-          + "Request\022A\n\010instance\030\001 \001(\0132*.google.spann"
-          + "er.admin.instance.v1.InstanceB\003\340A\002\0223\n\nfi"
-          + "eld_mask\030\002 \001(\0132\032.google.protobuf.FieldMa"
-          + "skB\003\340A\002\"N\n\025DeleteInstanceRequest\0225\n\004name"
-          + "\030\001 \001(\tB\'\340A\002\372A!\n\037spanner.googleapis.com/I"
-          + "nstance\"\345\001\n\026CreateInstanceMetadata\022<\n\010in"
-          + "stance\030\001 \001(\0132*.google.spanner.admin.inst"
-          + "ance.v1.Instance\022.\n\nstart_time\030\002 \001(\0132\032.g"
-          + "oogle.protobuf.Timestamp\022/\n\013cancel_time\030"
-          + "\003 \001(\0132\032.google.protobuf.Timestamp\022,\n\010end"
-          + "_time\030\004 \001(\0132\032.google.protobuf.Timestamp\""
-          + "\345\001\n\026UpdateInstanceMetadata\022<\n\010instance\030\001"
-          + " \001(\0132*.google.spanner.admin.instance.v1."
-          + "Instance\022.\n\nstart_time\030\002 \001(\0132\032.google.pr"
-          + "otobuf.Timestamp\022/\n\013cancel_time\030\003 \001(\0132\032."
-          + "google.protobuf.Timestamp\022,\n\010end_time\030\004 "
-          + "\001(\0132\032.google.protobuf.Timestamp\"\341\001\n\034Crea"
-          + "teInstanceConfigMetadata\022I\n\017instance_con"
-          + "fig\030\001 \001(\01320.google.spanner.admin.instanc"
-          + "e.v1.InstanceConfig\022E\n\010progress\030\002 \001(\01323."
-          + "google.spanner.admin.instance.v1.Operati"
-          + "onProgress\022/\n\013cancel_time\030\003 \001(\0132\032.google"
-          + ".protobuf.Timestamp\"\341\001\n\034UpdateInstanceCo"
+          + "TypeB\004\342A\001\003\022?\n\010replicas\030\003 \003(\0132-.google.sp"
+          + "anner.admin.instance.v1.ReplicaInfo\022N\n\021o"
+          + "ptional_replicas\030\006 \003(\0132-.google.spanner."
+          + "admin.instance.v1.ReplicaInfoB\004\342A\001\003\022?\n\013b"
+          + "ase_config\030\007 \001(\tB*\372A\'\n%spanner.googleapi"
+          + "s.com/InstanceConfig\022L\n\006labels\030\010 \003(\0132<.g"
+          + "oogle.spanner.admin.instance.v1.Instance"
+          + "Config.LabelsEntry\022\014\n\004etag\030\t \001(\t\022\026\n\016lead"
+          + "er_options\030\004 \003(\t\022\031\n\013reconciling\030\n \001(\010B\004\342"
+          + "A\001\003\022K\n\005state\030\013 \001(\01626.google.spanner.admi"
+          + "n.instance.v1.InstanceConfig.StateB\004\342A\001\003"
+          + "\032-\n\013LabelsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 "
+          + "\001(\t:\0028\001\"B\n\004Type\022\024\n\020TYPE_UNSPECIFIED\020\000\022\022\n"
+          + "\016GOOGLE_MANAGED\020\001\022\020\n\014USER_MANAGED\020\002\"7\n\005S"
+          + "tate\022\025\n\021STATE_UNSPECIFIED\020\000\022\014\n\010CREATING\020"
+          + "\001\022\t\n\005READY\020\002:`\352A]\n%spanner.googleapis.co"
+          + "m/InstanceConfig\0224projects/{project}/ins"
+          + "tanceConfigs/{instance_config}\"\363\004\n\010Insta"
+          + "nce\022\022\n\004name\030\001 \001(\tB\004\342A\001\002\022>\n\006config\030\002 \001(\tB"
+          + ".\342A\001\002\372A\'\n%spanner.googleapis.com/Instanc"
+          + "eConfig\022\032\n\014display_name\030\003 \001(\tB\004\342A\001\002\022\022\n\nn"
+          + "ode_count\030\005 \001(\005\022\030\n\020processing_units\030\t \001("
+          + "\005\022E\n\005state\030\006 \001(\01620.google.spanner.admin."
+          + "instance.v1.Instance.StateB\004\342A\001\003\022F\n\006labe"
+          + "ls\030\007 \003(\01326.google.spanner.admin.instance"
+          + ".v1.Instance.LabelsEntry\022\025\n\rendpoint_uri"
+          + "s\030\010 \003(\t\0225\n\013create_time\030\013 \001(\0132\032.google.pr"
+          + "otobuf.TimestampB\004\342A\001\003\0225\n\013update_time\030\014 "
+          + "\001(\0132\032.google.protobuf.TimestampB\004\342A\001\003\032-\n"
+          + "\013LabelsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t"
+          + ":\0028\001\"7\n\005State\022\025\n\021STATE_UNSPECIFIED\020\000\022\014\n\010"
+          + "CREATING\020\001\022\t\n\005READY\020\002:M\352AJ\n\037spanner.goog"
+          + "leapis.com/Instance\022\'projects/{project}/"
+          + "instances/{instance}\"\211\001\n\032ListInstanceCon"
+          + "figsRequest\022D\n\006parent\030\001 \001(\tB4\342A\001\002\372A-\n+cl"
+          + "oudresourcemanager.googleapis.com/Projec"
+          + "t\022\021\n\tpage_size\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t"
+          + "\"\202\001\n\033ListInstanceConfigsResponse\022J\n\020inst"
+          + "ance_configs\030\001 \003(\01320.google.spanner.admi"
+          + "n.instance.v1.InstanceConfig\022\027\n\017next_pag"
+          + "e_token\030\002 \001(\t\"X\n\030GetInstanceConfigReques"
+          + "t\022<\n\004name\030\001 \001(\tB.\342A\001\002\372A\'\n%spanner.google"
+          + "apis.com/InstanceConfig\"\355\001\n\033CreateInstan"
+          + "ceConfigRequest\022D\n\006parent\030\001 \001(\tB4\342A\001\002\372A-"
+          + "\n+cloudresourcemanager.googleapis.com/Pr"
+          + "oject\022 \n\022instance_config_id\030\002 \001(\tB\004\342A\001\002\022"
+          + "O\n\017instance_config\030\003 \001(\01320.google.spanne"
+          + "r.admin.instance.v1.InstanceConfigB\004\342A\001\002"
+          + "\022\025\n\rvalidate_only\030\004 \001(\010\"\274\001\n\033UpdateInstan"
+          + "ceConfigRequest\022O\n\017instance_config\030\001 \001(\013"
+          + "20.google.spanner.admin.instance.v1.Inst"
+          + "anceConfigB\004\342A\001\002\0225\n\013update_mask\030\002 \001(\0132\032."
+          + "google.protobuf.FieldMaskB\004\342A\001\002\022\025\n\rvalid"
+          + "ate_only\030\003 \001(\010\"\200\001\n\033DeleteInstanceConfigR"
+          + "equest\022<\n\004name\030\001 \001(\tB.\342A\001\002\372A\'\n%spanner.g"
+          + "oogleapis.com/InstanceConfig\022\014\n\004etag\030\002 \001"
+          + "(\t\022\025\n\rvalidate_only\030\003 \001(\010\"\242\001\n#ListInstan"
+          + "ceConfigOperationsRequest\022D\n\006parent\030\001 \001("
+          + "\tB4\342A\001\002\372A-\n+cloudresourcemanager.googlea"
+          + "pis.com/Project\022\016\n\006filter\030\002 \001(\t\022\021\n\tpage_"
+          + "size\030\003 \001(\005\022\022\n\npage_token\030\004 \001(\t\"r\n$ListIn"
+          + "stanceConfigOperationsResponse\0221\n\noperat"
+          + "ions\030\001 \003(\0132\035.google.longrunning.Operatio"
+          + "n\022\027\n\017next_page_token\030\002 \001(\t\"|\n\022GetInstanc"
+          + "eRequest\0226\n\004name\030\001 \001(\tB(\342A\001\002\372A!\n\037spanner"
+          + ".googleapis.com/Instance\022.\n\nfield_mask\030\002"
+          + " \001(\0132\032.google.protobuf.FieldMask\"\274\001\n\025Cre"
+          + "ateInstanceRequest\022D\n\006parent\030\001 \001(\tB4\342A\001\002"
+          + "\372A-\n+cloudresourcemanager.googleapis.com"
+          + "/Project\022\031\n\013instance_id\030\002 \001(\tB\004\342A\001\002\022B\n\010i"
+          + "nstance\030\003 \001(\0132*.google.spanner.admin.ins"
+          + "tance.v1.InstanceB\004\342A\001\002\"\223\001\n\024ListInstance"
+          + "sRequest\022D\n\006parent\030\001 \001(\tB4\342A\001\002\372A-\n+cloud"
+          + "resourcemanager.googleapis.com/Project\022\021"
+          + "\n\tpage_size\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\022\016\n"
+          + "\006filter\030\004 \001(\t\"o\n\025ListInstancesResponse\022="
+          + "\n\tinstances\030\001 \003(\0132*.google.spanner.admin"
+          + ".instance.v1.Instance\022\027\n\017next_page_token"
+          + "\030\002 \001(\t\"\221\001\n\025UpdateInstanceRequest\022B\n\010inst"
+          + "ance\030\001 \001(\0132*.google.spanner.admin.instan"
+          + "ce.v1.InstanceB\004\342A\001\002\0224\n\nfield_mask\030\002 \001(\013"
+          + "2\032.google.protobuf.FieldMaskB\004\342A\001\002\"O\n\025De"
+          + "leteInstanceRequest\0226\n\004name\030\001 \001(\tB(\342A\001\002\372"
+          + "A!\n\037spanner.googleapis.com/Instance\"\345\001\n\026"
+          + "CreateInstanceMetadata\022<\n\010instance\030\001 \001(\013"
+          + "2*.google.spanner.admin.instance.v1.Inst"
+          + "ance\022.\n\nstart_time\030\002 \001(\0132\032.google.protob"
+          + "uf.Timestamp\022/\n\013cancel_time\030\003 \001(\0132\032.goog"
+          + "le.protobuf.Timestamp\022,\n\010end_time\030\004 \001(\0132"
+          + "\032.google.protobuf.Timestamp\"\345\001\n\026UpdateIn"
+          + "stanceMetadata\022<\n\010instance\030\001 \001(\0132*.googl"
+          + "e.spanner.admin.instance.v1.Instance\022.\n\n"
+          + "start_time\030\002 \001(\0132\032.google.protobuf.Times"
+          + "tamp\022/\n\013cancel_time\030\003 \001(\0132\032.google.proto"
+          + "buf.Timestamp\022,\n\010end_time\030\004 \001(\0132\032.google"
+          + ".protobuf.Timestamp\"\341\001\n\034CreateInstanceCo"
           + "nfigMetadata\022I\n\017instance_config\030\001 \001(\01320."
           + "google.spanner.admin.instance.v1.Instanc"
           + "eConfig\022E\n\010progress\030\002 \001(\01323.google.spann"
           + "er.admin.instance.v1.OperationProgress\022/"
           + "\n\013cancel_time\030\003 \001(\0132\032.google.protobuf.Ti"
-          + "mestamp2\362\030\n\rInstanceAdmin\022\314\001\n\023ListInstan"
-          + "ceConfigs\022<.google.spanner.admin.instanc"
-          + "e.v1.ListInstanceConfigsRequest\032=.google"
-          + ".spanner.admin.instance.v1.ListInstanceC"
-          + "onfigsResponse\"8\202\323\344\223\002)\022\'/v1/{parent=proj"
-          + "ects/*}/instanceConfigs\332A\006parent\022\271\001\n\021Get"
-          + "InstanceConfig\022:.google.spanner.admin.in"
-          + "stance.v1.GetInstanceConfigRequest\0320.goo"
-          + "gle.spanner.admin.instance.v1.InstanceCo"
-          + "nfig\"6\202\323\344\223\002)\022\'/v1/{name=projects/*/insta"
-          + "nceConfigs/*}\332A\004name\022\310\002\n\024CreateInstanceC"
-          + "onfig\022=.google.spanner.admin.instance.v1"
-          + ".CreateInstanceConfigRequest\032\035.google.lo"
-          + "ngrunning.Operation\"\321\001\202\323\344\223\002,\"\'/v1/{paren"
-          + "t=projects/*}/instanceConfigs:\001*\332A)paren"
-          + "t,instance_config,instance_config_id\312Ap\n"
-          + "/google.spanner.admin.instance.v1.Instan"
-          + "ceConfig\022=google.spanner.admin.instance."
-          + "v1.CreateInstanceConfigMetadata\022\312\002\n\024Upda"
-          + "teInstanceConfig\022=.google.spanner.admin."
-          + "instance.v1.UpdateInstanceConfigRequest\032"
-          + "\035.google.longrunning.Operation\"\323\001\202\323\344\223\002<2"
-          + "7/v1/{instance_config.name=projects/*/in"
-          + "stanceConfigs/*}:\001*\332A\033instance_config,up"
-          + "date_mask\312Ap\n/google.spanner.admin.insta"
-          + "nce.v1.InstanceConfig\022=google.spanner.ad"
-          + "min.instance.v1.UpdateInstanceConfigMeta"
-          + "data\022\245\001\n\024DeleteInstanceConfig\022=.google.s"
-          + "panner.admin.instance.v1.DeleteInstanceC"
-          + "onfigRequest\032\026.google.protobuf.Empty\"6\202\323"
-          + "\344\223\002)*\'/v1/{name=projects/*/instanceConfi"
-          + "gs/*}\332A\004name\022\360\001\n\034ListInstanceConfigOpera"
-          + "tions\022E.google.spanner.admin.instance.v1"
-          + ".ListInstanceConfigOperationsRequest\032F.g"
-          + "oogle.spanner.admin.instance.v1.ListInst"
-          + "anceConfigOperationsResponse\"A\202\323\344\223\0022\0220/v"
-          + "1/{parent=projects/*}/instanceConfigOper"
-          + "ations\332A\006parent\022\264\001\n\rListInstances\0226.goog"
+          + "mestamp\"\341\001\n\034UpdateInstanceConfigMetadata"
+          + "\022I\n\017instance_config\030\001 \001(\01320.google.spann"
+          + "er.admin.instance.v1.InstanceConfig\022E\n\010p"
+          + "rogress\030\002 \001(\01323.google.spanner.admin.ins"
+          + "tance.v1.OperationProgress\022/\n\013cancel_tim"
+          + "e\030\003 \001(\0132\032.google.protobuf.Timestamp2\362\030\n\r"
+          + "InstanceAdmin\022\314\001\n\023ListInstanceConfigs\022<."
+          + "google.spanner.admin.instance.v1.ListIns"
+          + "tanceConfigsRequest\032=.google.spanner.adm"
+          + "in.instance.v1.ListInstanceConfigsRespon"
+          + "se\"8\332A\006parent\202\323\344\223\002)\022\'/v1/{parent=project"
+          + "s/*}/instanceConfigs\022\271\001\n\021GetInstanceConf"
+          + "ig\022:.google.spanner.admin.instance.v1.Ge"
+          + "tInstanceConfigRequest\0320.google.spanner."
+          + "admin.instance.v1.InstanceConfig\"6\332A\004nam"
+          + "e\202\323\344\223\002)\022\'/v1/{name=projects/*/instanceCo"
+          + "nfigs/*}\022\310\002\n\024CreateInstanceConfig\022=.goog"
+          + "le.spanner.admin.instance.v1.CreateInsta"
+          + "nceConfigRequest\032\035.google.longrunning.Op"
+          + "eration\"\321\001\312Ap\n/google.spanner.admin.inst"
+          + "ance.v1.InstanceConfig\022=google.spanner.a"
+          + "dmin.instance.v1.CreateInstanceConfigMet"
+          + "adata\332A)parent,instance_config,instance_"
+          + "config_id\202\323\344\223\002,\"\'/v1/{parent=projects/*}"
+          + "/instanceConfigs:\001*\022\312\002\n\024UpdateInstanceCo"
+          + "nfig\022=.google.spanner.admin.instance.v1."
+          + "UpdateInstanceConfigRequest\032\035.google.lon"
+          + "grunning.Operation\"\323\001\312Ap\n/google.spanner"
+          + ".admin.instance.v1.InstanceConfig\022=googl"
+          + "e.spanner.admin.instance.v1.UpdateInstan"
+          + "ceConfigMetadata\332A\033instance_config,updat"
+          + "e_mask\202\323\344\223\002<27/v1/{instance_config.name="
+          + "projects/*/instanceConfigs/*}:\001*\022\245\001\n\024Del"
+          + "eteInstanceConfig\022=.google.spanner.admin"
+          + ".instance.v1.DeleteInstanceConfigRequest"
+          + "\032\026.google.protobuf.Empty\"6\332A\004name\202\323\344\223\002)*"
+          + "\'/v1/{name=projects/*/instanceConfigs/*}"
+          + "\022\360\001\n\034ListInstanceConfigOperations\022E.goog"
           + "le.spanner.admin.instance.v1.ListInstanc"
-          + "esRequest\0327.google.spanner.admin.instanc"
-          + "e.v1.ListInstancesResponse\"2\202\323\344\223\002#\022!/v1/"
-          + "{parent=projects/*}/instances\332A\006parent\022\241"
-          + "\001\n\013GetInstance\0224.google.spanner.admin.in"
-          + "stance.v1.GetInstanceRequest\032*.google.sp"
-          + "anner.admin.instance.v1.Instance\"0\202\323\344\223\002#"
-          + "\022!/v1/{name=projects/*/instances/*}\332A\004na"
-          + "me\022\234\002\n\016CreateInstance\0227.google.spanner.a"
-          + "dmin.instance.v1.CreateInstanceRequest\032\035"
-          + ".google.longrunning.Operation\"\261\001\202\323\344\223\002&\"!"
-          + "/v1/{parent=projects/*}/instances:\001*\332A\033p"
-          + "arent,instance_id,instance\312Ad\n)google.sp"
-          + "anner.admin.instance.v1.Instance\0227google"
-          + ".spanner.admin.instance.v1.CreateInstanc"
-          + "eMetadata\022\235\002\n\016UpdateInstance\0227.google.sp"
-          + "anner.admin.instance.v1.UpdateInstanceRe"
-          + "quest\032\035.google.longrunning.Operation\"\262\001\202"
-          + "\323\344\223\002/2*/v1/{instance.name=projects/*/ins"
-          + "tances/*}:\001*\332A\023instance,field_mask\312Ad\n)g"
-          + "oogle.spanner.admin.instance.v1.Instance"
-          + "\0227google.spanner.admin.instance.v1.Updat"
-          + "eInstanceMetadata\022\223\001\n\016DeleteInstance\0227.g"
-          + "oogle.spanner.admin.instance.v1.DeleteIn"
-          + "stanceRequest\032\026.google.protobuf.Empty\"0\202"
-          + "\323\344\223\002#*!/v1/{name=projects/*/instances/*}"
-          + "\332A\004name\022\232\001\n\014SetIamPolicy\022\".google.iam.v1"
-          + ".SetIamPolicyRequest\032\025.google.iam.v1.Pol"
-          + "icy\"O\202\323\344\223\0027\"2/v1/{resource=projects/*/in"
-          + "stances/*}:setIamPolicy:\001*\332A\017resource,po"
-          + "licy\022\223\001\n\014GetIamPolicy\022\".google.iam.v1.Ge"
-          + "tIamPolicyRequest\032\025.google.iam.v1.Policy"
-          + "\"H\202\323\344\223\0027\"2/v1/{resource=projects/*/insta"
-          + "nces/*}:getIamPolicy:\001*\332A\010resource\022\305\001\n\022T"
-          + "estIamPermissions\022(.google.iam.v1.TestIa"
-          + "mPermissionsRequest\032).google.iam.v1.Test"
-          + "IamPermissionsResponse\"Z\202\323\344\223\002=\"8/v1/{res"
-          + "ource=projects/*/instances/*}:testIamPer"
-          + "missions:\001*\332A\024resource,permissions\032x\312A\026s"
-          + "panner.googleapis.com\322A\\https://www.goog"
-          + "leapis.com/auth/cloud-platform,https://w"
-          + "ww.googleapis.com/auth/spanner.adminB\213\002\n"
-          + "$com.google.spanner.admin.instance.v1B\031S"
-          + "pannerInstanceAdminProtoP\001ZFcloud.google"
-          + ".com/go/spanner/admin/instance/apiv1/ins"
-          + "tancepb;instancepb\252\002&Google.Cloud.Spanne"
-          + "r.Admin.Instance.V1\312\002&Google\\Cloud\\Spann"
-          + "er\\Admin\\Instance\\V1\352\002+Google::Cloud::Sp"
-          + "anner::Admin::Instance::V1b\006proto3"
+          + "eConfigOperationsRequest\032F.google.spanne"
+          + "r.admin.instance.v1.ListInstanceConfigOp"
+          + "erationsResponse\"A\332A\006parent\202\323\344\223\0022\0220/v1/{"
+          + "parent=projects/*}/instanceConfigOperati"
+          + "ons\022\264\001\n\rListInstances\0226.google.spanner.a"
+          + "dmin.instance.v1.ListInstancesRequest\0327."
+          + "google.spanner.admin.instance.v1.ListIns"
+          + "tancesResponse\"2\332A\006parent\202\323\344\223\002#\022!/v1/{pa"
+          + "rent=projects/*}/instances\022\241\001\n\013GetInstan"
+          + "ce\0224.google.spanner.admin.instance.v1.Ge"
+          + "tInstanceRequest\032*.google.spanner.admin."
+          + "instance.v1.Instance\"0\332A\004name\202\323\344\223\002#\022!/v1"
+          + "/{name=projects/*/instances/*}\022\234\002\n\016Creat"
+          + "eInstance\0227.google.spanner.admin.instanc"
+          + "e.v1.CreateInstanceRequest\032\035.google.long"
+          + "running.Operation\"\261\001\312Ad\n)google.spanner."
+          + "admin.instance.v1.Instance\0227google.spann"
+          + "er.admin.instance.v1.CreateInstanceMetad"
+          + "ata\332A\033parent,instance_id,instance\202\323\344\223\002&\""
+          + "!/v1/{parent=projects/*}/instances:\001*\022\235\002"
+          + "\n\016UpdateInstance\0227.google.spanner.admin."
+          + "instance.v1.UpdateInstanceRequest\032\035.goog"
+          + "le.longrunning.Operation\"\262\001\312Ad\n)google.s"
+          + "panner.admin.instance.v1.Instance\0227googl"
+          + "e.spanner.admin.instance.v1.UpdateInstan"
+          + "ceMetadata\332A\023instance,field_mask\202\323\344\223\002/2*"
+          + "/v1/{instance.name=projects/*/instances/"
+          + "*}:\001*\022\223\001\n\016DeleteInstance\0227.google.spanne"
+          + "r.admin.instance.v1.DeleteInstanceReques"
+          + "t\032\026.google.protobuf.Empty\"0\332A\004name\202\323\344\223\002#"
+          + "*!/v1/{name=projects/*/instances/*}\022\232\001\n\014"
+          + "SetIamPolicy\022\".google.iam.v1.SetIamPolic"
+          + "yRequest\032\025.google.iam.v1.Policy\"O\332A\017reso"
+          + "urce,policy\202\323\344\223\0027\"2/v1/{resource=project"
+          + "s/*/instances/*}:setIamPolicy:\001*\022\223\001\n\014Get"
+          + "IamPolicy\022\".google.iam.v1.GetIamPolicyRe"
+          + "quest\032\025.google.iam.v1.Policy\"H\332A\010resourc"
+          + "e\202\323\344\223\0027\"2/v1/{resource=projects/*/instan"
+          + "ces/*}:getIamPolicy:\001*\022\305\001\n\022TestIamPermis"
+          + "sions\022(.google.iam.v1.TestIamPermissions"
+          + "Request\032).google.iam.v1.TestIamPermissio"
+          + "nsResponse\"Z\332A\024resource,permissions\202\323\344\223\002"
+          + "=\"8/v1/{resource=projects/*/instances/*}"
+          + ":testIamPermissions:\001*\032x\312A\026spanner.googl"
+          + "eapis.com\322A\\https://www.googleapis.com/a"
+          + "uth/cloud-platform,https://www.googleapi"
+          + "s.com/auth/spanner.adminB\213\002\n$com.google."
+          + "spanner.admin.instance.v1B\031SpannerInstan"
+          + "ceAdminProtoP\001ZFcloud.google.com/go/span"
+          + "ner/admin/instance/apiv1/instancepb;inst"
+          + "ancepb\252\002&Google.Cloud.Spanner.Admin.Inst"
+          + "ance.V1\312\002&Google\\Cloud\\Spanner\\Admin\\Ins"
+          + "tance\\V1\352\002+Google::Cloud::Spanner::Admin"
+          + "::Instance::V1b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigMetadata.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigMetadata.java
index 5a22311f981..48f2e9e1683 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigMetadata.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigMetadata.java
@@ -46,11 +46,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new UpdateInstanceConfigMetadata();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto
         .internal_static_google_spanner_admin_instance_v1_UpdateInstanceConfigMetadata_descriptor;
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigRequest.java
index 9c93dda8798..d2916ab0a74 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigRequest.java
@@ -46,11 +46,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new UpdateInstanceConfigRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto
         .internal_static_google_spanner_admin_instance_v1_UpdateInstanceConfigRequest_descriptor;
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceMetadata.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceMetadata.java
index a421f384777..291ad67bc82 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceMetadata.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceMetadata.java
@@ -46,11 +46,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new UpdateInstanceMetadata();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto
         .internal_static_google_spanner_admin_instance_v1_UpdateInstanceMetadata_descriptor;
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceRequest.java
index b8eaa2160d8..3c734c86d6e 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceRequest.java
@@ -46,11 +46,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new UpdateInstanceRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.admin.instance.v1.SpannerInstanceAdminProto
         .internal_static_google_spanner_admin_instance_v1_UpdateInstanceRequest_descriptor;
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsRequest.java
index 9b92cd1cb03..1bdb2f44a29 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsRequest.java
@@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new BatchCreateSessionsRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto
         .internal_static_google_spanner_v1_BatchCreateSessionsRequest_descriptor;
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsResponse.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsResponse.java
index a53a5644317..9a8d1c91120 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsResponse.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsResponse.java
@@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new BatchCreateSessionsResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto
         .internal_static_google_spanner_v1_BatchCreateSessionsResponse_descriptor;
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BeginTransactionRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BeginTransactionRequest.java
index d676fd87ea6..fae0074b1ca 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BeginTransactionRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BeginTransactionRequest.java
@@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new BeginTransactionRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto
         .internal_static_google_spanner_v1_BeginTransactionRequest_descriptor;
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequest.java
index 9d5d7d5891b..a052d9059b4 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequest.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new CommitRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto
         .internal_static_google_spanner_v1_CommitRequest_descriptor;
@@ -69,6 +64,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
   }
 
   private int transactionCase_ = 0;
+
+  @SuppressWarnings("serial")
   private java.lang.Object transaction_;
 
   public enum TransactionCase
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequestOrBuilder.java
index 67704563b20..c55778357bb 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequestOrBuilder.java
@@ -247,5 +247,5 @@ public interface CommitRequestOrBuilder
    */
   com.google.spanner.v1.RequestOptionsOrBuilder getRequestOptionsOrBuilder();
 
-  public com.google.spanner.v1.CommitRequest.TransactionCase getTransactionCase();
+  com.google.spanner.v1.CommitRequest.TransactionCase getTransactionCase();
 }
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponse.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponse.java
index 89661b86be0..f3331b717f4 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponse.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponse.java
@@ -45,11 +45,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new CommitResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.CommitResponseProto
         .internal_static_google_spanner_v1_CommitResponse_descriptor;
@@ -116,11 +111,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
       return new CommitStats();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-      return this.unknownFields;
-    }
-
     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       return com.google.spanner.v1.CommitResponseProto
           .internal_static_google_spanner_v1_CommitResponse_CommitStats_descriptor;
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CreateSessionRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CreateSessionRequest.java
index fe3fc6e7e6b..68c912c6598 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CreateSessionRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CreateSessionRequest.java
@@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new CreateSessionRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto
         .internal_static_google_spanner_v1_CreateSessionRequest_descriptor;
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/DatabaseName.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/DatabaseName.java
index e7f0be608ab..3df2c6e0804 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/DatabaseName.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/DatabaseName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2022 Google LLC
+ * Copyright 2023 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/DeleteSessionRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/DeleteSessionRequest.java
index f285dd8124e..26f385c994c 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/DeleteSessionRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/DeleteSessionRequest.java
@@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new DeleteSessionRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto
         .internal_static_google_spanner_v1_DeleteSessionRequest_descriptor;
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlRequest.java
index c4392561ad7..3c9f88a1e4e 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlRequest.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ExecuteBatchDmlRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto
         .internal_static_google_spanner_v1_ExecuteBatchDmlRequest_descriptor;
@@ -103,12 +98,16 @@ public interface StatementOrBuilder
      *
      * 
      * 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.
      * 
* @@ -122,12 +121,16 @@ public interface StatementOrBuilder * *
      * 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.
      * 
* @@ -141,12 +144,16 @@ public interface StatementOrBuilder * *
      * 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.
      * 
* @@ -161,6 +168,7 @@ public interface StatementOrBuilder * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -177,6 +185,7 @@ public interface StatementOrBuilder * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -196,6 +205,7 @@ public interface StatementOrBuilder * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -212,6 +222,7 @@ public interface StatementOrBuilder * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -232,6 +243,7 @@ com.google.spanner.v1.Type getParamTypesOrDefault( * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -271,11 +283,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new Statement(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.SpannerProto .internal_static_google_spanner_v1_ExecuteBatchDmlRequest_Statement_descriptor; @@ -360,12 +367,16 @@ public com.google.protobuf.ByteString getSqlBytes() { * *
      * 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.
      * 
* @@ -382,12 +393,16 @@ public boolean hasParams() { * *
      * 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.
      * 
* @@ -404,12 +419,16 @@ public com.google.protobuf.Struct getParams() { * *
      * 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.
      * 
* @@ -457,6 +476,7 @@ public int getParamTypesCount() { * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -485,6 +505,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -504,6 +525,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -531,6 +553,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -1104,12 +1127,16 @@ public Builder setSqlBytes(com.google.protobuf.ByteString value) { * *
        * 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.
        * 
* @@ -1125,12 +1152,16 @@ public boolean hasParams() { * *
        * 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.
        * 
* @@ -1150,12 +1181,16 @@ public com.google.protobuf.Struct getParams() { * *
        * 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.
        * 
* @@ -1179,12 +1214,16 @@ public Builder setParams(com.google.protobuf.Struct value) { * *
        * 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.
        * 
* @@ -1205,12 +1244,16 @@ public Builder setParams(com.google.protobuf.Struct.Builder builderForValue) { * *
        * 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.
        * 
* @@ -1237,12 +1280,16 @@ public Builder mergeParams(com.google.protobuf.Struct value) { * *
        * 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.
        * 
* @@ -1263,12 +1310,16 @@ public Builder clearParams() { * *
        * 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.
        * 
* @@ -1284,12 +1335,16 @@ public com.google.protobuf.Struct.Builder getParamsBuilder() { * *
        * 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.
        * 
* @@ -1307,12 +1362,16 @@ public com.google.protobuf.StructOrBuilder getParamsOrBuilder() { * *
        * 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.
        * 
* @@ -1371,6 +1430,7 @@ public int getParamTypesCount() { * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -1399,6 +1459,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -1418,6 +1479,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -1445,6 +1507,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -1478,6 +1541,7 @@ public Builder clearParamTypes() { * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -1506,6 +1570,7 @@ public java.util.Map getMutablePar * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -1532,6 +1597,7 @@ public Builder putParamTypes(java.lang.String key, com.google.spanner.v1.Type va * 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][google.spanner.v1.ExecuteBatchDmlRequest.Statement.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][google.spanner.v1.Type] for more information @@ -1673,6 +1739,7 @@ public com.google.protobuf.ByteString getSessionBytes() { * *
    * Required. The transaction to use. Must be a read-write transaction.
+   *
    * To protect against replays, single-use transactions are not supported. The
    * caller must either supply an existing transaction ID or begin a new
    * transaction.
@@ -1693,6 +1760,7 @@ public boolean hasTransaction() {
    *
    * 
    * Required. The transaction to use. Must be a read-write transaction.
+   *
    * To protect against replays, single-use transactions are not supported. The
    * caller must either supply an existing transaction ID or begin a new
    * transaction.
@@ -1715,6 +1783,7 @@ public com.google.spanner.v1.TransactionSelector getTransaction() {
    *
    * 
    * Required. The transaction to use. Must be a read-write transaction.
+   *
    * To protect against replays, single-use transactions are not supported. The
    * caller must either supply an existing transaction ID or begin a new
    * transaction.
@@ -1743,6 +1812,7 @@ public com.google.spanner.v1.TransactionSelectorOrBuilder getTransactionOrBuilde
    * serially, such that the effects of statement `i` are visible to statement
    * `i+1`. Each statement must be a DML statement. Execution stops at the
    * first failed statement; the remaining statements are not executed.
+   *
    * Callers must provide at least one statement.
    * 
* @@ -1763,6 +1833,7 @@ public com.google.spanner.v1.TransactionSelectorOrBuilder getTransactionOrBuilde * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -1783,6 +1854,7 @@ public com.google.spanner.v1.TransactionSelectorOrBuilder getTransactionOrBuilde * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -1802,6 +1874,7 @@ public int getStatementsCount() { * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -1821,6 +1894,7 @@ public com.google.spanner.v1.ExecuteBatchDmlRequest.Statement getStatements(int * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -1843,6 +1917,7 @@ public com.google.spanner.v1.ExecuteBatchDmlRequest.StatementOrBuilder getStatem * 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 @@ -2534,6 +2609,7 @@ public Builder setSessionBytes(com.google.protobuf.ByteString value) { * *
      * Required. The transaction to use. Must be a read-write transaction.
+     *
      * To protect against replays, single-use transactions are not supported. The
      * caller must either supply an existing transaction ID or begin a new
      * transaction.
@@ -2553,6 +2629,7 @@ public boolean hasTransaction() {
      *
      * 
      * Required. The transaction to use. Must be a read-write transaction.
+     *
      * To protect against replays, single-use transactions are not supported. The
      * caller must either supply an existing transaction ID or begin a new
      * transaction.
@@ -2578,6 +2655,7 @@ public com.google.spanner.v1.TransactionSelector getTransaction() {
      *
      * 
      * Required. The transaction to use. Must be a read-write transaction.
+     *
      * To protect against replays, single-use transactions are not supported. The
      * caller must either supply an existing transaction ID or begin a new
      * transaction.
@@ -2605,6 +2683,7 @@ public Builder setTransaction(com.google.spanner.v1.TransactionSelector value) {
      *
      * 
      * Required. The transaction to use. Must be a read-write transaction.
+     *
      * To protect against replays, single-use transactions are not supported. The
      * caller must either supply an existing transaction ID or begin a new
      * transaction.
@@ -2630,6 +2709,7 @@ public Builder setTransaction(
      *
      * 
      * Required. The transaction to use. Must be a read-write transaction.
+     *
      * To protect against replays, single-use transactions are not supported. The
      * caller must either supply an existing transaction ID or begin a new
      * transaction.
@@ -2660,6 +2740,7 @@ public Builder mergeTransaction(com.google.spanner.v1.TransactionSelector value)
      *
      * 
      * Required. The transaction to use. Must be a read-write transaction.
+     *
      * To protect against replays, single-use transactions are not supported. The
      * caller must either supply an existing transaction ID or begin a new
      * transaction.
@@ -2684,6 +2765,7 @@ public Builder clearTransaction() {
      *
      * 
      * Required. The transaction to use. Must be a read-write transaction.
+     *
      * To protect against replays, single-use transactions are not supported. The
      * caller must either supply an existing transaction ID or begin a new
      * transaction.
@@ -2703,6 +2785,7 @@ public com.google.spanner.v1.TransactionSelector.Builder getTransactionBuilder()
      *
      * 
      * Required. The transaction to use. Must be a read-write transaction.
+     *
      * To protect against replays, single-use transactions are not supported. The
      * caller must either supply an existing transaction ID or begin a new
      * transaction.
@@ -2726,6 +2809,7 @@ public com.google.spanner.v1.TransactionSelectorOrBuilder getTransactionOrBuilde
      *
      * 
      * Required. The transaction to use. Must be a read-write transaction.
+     *
      * To protect against replays, single-use transactions are not supported. The
      * caller must either supply an existing transaction ID or begin a new
      * transaction.
@@ -2778,6 +2862,7 @@ private void ensureStatementsIsMutable() {
      * serially, such that the effects of statement `i` are visible to statement
      * `i+1`. Each statement must be a DML statement. Execution stops at the
      * first failed statement; the remaining statements are not executed.
+     *
      * Callers must provide at least one statement.
      * 
* @@ -2801,6 +2886,7 @@ private void ensureStatementsIsMutable() { * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -2823,6 +2909,7 @@ public int getStatementsCount() { * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -2845,6 +2932,7 @@ public com.google.spanner.v1.ExecuteBatchDmlRequest.Statement getStatements(int * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -2874,6 +2962,7 @@ public Builder setStatements( * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -2900,6 +2989,7 @@ public Builder setStatements( * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -2928,6 +3018,7 @@ public Builder addStatements(com.google.spanner.v1.ExecuteBatchDmlRequest.Statem * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -2957,6 +3048,7 @@ public Builder addStatements( * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -2983,6 +3075,7 @@ public Builder addStatements( * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -3009,6 +3102,7 @@ public Builder addStatements( * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -3036,6 +3130,7 @@ public Builder addAllStatements( * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -3061,6 +3156,7 @@ public Builder clearStatements() { * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -3086,6 +3182,7 @@ public Builder removeStatements(int index) { * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -3105,6 +3202,7 @@ public com.google.spanner.v1.ExecuteBatchDmlRequest.Statement.Builder getStateme * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -3128,6 +3226,7 @@ public com.google.spanner.v1.ExecuteBatchDmlRequest.StatementOrBuilder getStatem * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -3151,6 +3250,7 @@ public com.google.spanner.v1.ExecuteBatchDmlRequest.StatementOrBuilder getStatem * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -3170,6 +3270,7 @@ public com.google.spanner.v1.ExecuteBatchDmlRequest.Statement.Builder addStateme * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -3191,6 +3292,7 @@ public com.google.spanner.v1.ExecuteBatchDmlRequest.Statement.Builder addStateme * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -3228,6 +3330,7 @@ public com.google.spanner.v1.ExecuteBatchDmlRequest.Statement.Builder addStateme * 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 @@ -3249,6 +3352,7 @@ public long getSeqno() { * 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 @@ -3274,6 +3378,7 @@ public Builder setSeqno(long value) { * 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 diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlRequestOrBuilder.java index 87364106697..b0ecb6ff7ca 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlRequestOrBuilder.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlRequestOrBuilder.java @@ -57,6 +57,7 @@ public interface ExecuteBatchDmlRequestOrBuilder * *
    * Required. The transaction to use. Must be a read-write transaction.
+   *
    * To protect against replays, single-use transactions are not supported. The
    * caller must either supply an existing transaction ID or begin a new
    * transaction.
@@ -74,6 +75,7 @@ public interface ExecuteBatchDmlRequestOrBuilder
    *
    * 
    * Required. The transaction to use. Must be a read-write transaction.
+   *
    * To protect against replays, single-use transactions are not supported. The
    * caller must either supply an existing transaction ID or begin a new
    * transaction.
@@ -91,6 +93,7 @@ public interface ExecuteBatchDmlRequestOrBuilder
    *
    * 
    * Required. The transaction to use. Must be a read-write transaction.
+   *
    * To protect against replays, single-use transactions are not supported. The
    * caller must either supply an existing transaction ID or begin a new
    * transaction.
@@ -110,6 +113,7 @@ public interface ExecuteBatchDmlRequestOrBuilder
    * serially, such that the effects of statement `i` are visible to statement
    * `i+1`. Each statement must be a DML statement. Execution stops at the
    * first failed statement; the remaining statements are not executed.
+   *
    * Callers must provide at least one statement.
    * 
* @@ -126,6 +130,7 @@ public interface ExecuteBatchDmlRequestOrBuilder * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -142,6 +147,7 @@ public interface ExecuteBatchDmlRequestOrBuilder * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -158,6 +164,7 @@ public interface ExecuteBatchDmlRequestOrBuilder * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -175,6 +182,7 @@ public interface ExecuteBatchDmlRequestOrBuilder * serially, such that the effects of statement `i` are visible to statement * `i+1`. Each statement must be a DML statement. Execution stops at the * first failed statement; the remaining statements are not executed. + * * Callers must provide at least one statement. *
* @@ -191,6 +199,7 @@ public interface ExecuteBatchDmlRequestOrBuilder * 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 diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlResponse.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlResponse.java index 3e7163fe1be..b467bf5feb0 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlResponse.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlResponse.java @@ -26,16 +26,22 @@ * of [ResultSet][google.spanner.v1.ResultSet] messages, one for each DML statement that has successfully * executed, in the same order as the statements in the request. If a statement * fails, the status in the response body identifies the cause of the failure. + * * To check for DML statements that failed, use the following approach: + * * 1. Check the status in the response message. The [google.rpc.Code][google.rpc.Code] enum * value `OK` indicates that all statements were executed successfully. * 2. If the status was not `OK`, check the number of result sets in the * response. If the response contains `N` [ResultSet][google.spanner.v1.ResultSet] messages, then * statement `N+1` in the request failed. + * * Example 1: + * * * Request: 5 DML statements, all executed successfully. * * Response: 5 [ResultSet][google.spanner.v1.ResultSet] messages, with the status `OK`. + * * Example 2: + * * * Request: 5 DML statements. The third statement has a syntax error. * * Response: 2 [ResultSet][google.spanner.v1.ResultSet] messages, and a syntax error (`INVALID_ARGUMENT`) * status. The number of [ResultSet][google.spanner.v1.ResultSet] messages indicates that the third @@ -64,11 +70,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new ExecuteBatchDmlResponse(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.SpannerProto .internal_static_google_spanner_v1_ExecuteBatchDmlResponse_descriptor; @@ -96,6 +97,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -114,6 +116,7 @@ public java.util.List getResultSetsList() { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -133,6 +136,7 @@ public java.util.List getResultSetsList() { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -151,6 +155,7 @@ public int getResultSetsCount() { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -169,6 +174,7 @@ public com.google.spanner.v1.ResultSet getResultSets(int index) { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -412,16 +418,22 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build * of [ResultSet][google.spanner.v1.ResultSet] messages, one for each DML statement that has successfully * executed, in the same order as the statements in the request. If a statement * fails, the status in the response body identifies the cause of the failure. + * * To check for DML statements that failed, use the following approach: + * * 1. Check the status in the response message. The [google.rpc.Code][google.rpc.Code] enum * value `OK` indicates that all statements were executed successfully. * 2. If the status was not `OK`, check the number of result sets in the * response. If the response contains `N` [ResultSet][google.spanner.v1.ResultSet] messages, then * statement `N+1` in the request failed. + * * Example 1: + * * * Request: 5 DML statements, all executed successfully. * * Response: 5 [ResultSet][google.spanner.v1.ResultSet] messages, with the status `OK`. + * * Example 2: + * * * Request: 5 DML statements. The third statement has a syntax error. * * Response: 2 [ResultSet][google.spanner.v1.ResultSet] messages, and a syntax error (`INVALID_ARGUMENT`) * status. The number of [ResultSet][google.spanner.v1.ResultSet] messages indicates that the third @@ -688,6 +700,7 @@ private void ensureResultSetsIsMutable() { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -709,6 +722,7 @@ public java.util.List getResultSetsList() { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -730,6 +744,7 @@ public int getResultSetsCount() { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -751,6 +766,7 @@ public com.google.spanner.v1.ResultSet getResultSets(int index) { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -778,6 +794,7 @@ public Builder setResultSets(int index, com.google.spanner.v1.ResultSet value) { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -803,6 +820,7 @@ public Builder setResultSets( * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -830,6 +848,7 @@ public Builder addResultSets(com.google.spanner.v1.ResultSet value) { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -857,6 +876,7 @@ public Builder addResultSets(int index, com.google.spanner.v1.ResultSet value) { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -881,6 +901,7 @@ public Builder addResultSets(com.google.spanner.v1.ResultSet.Builder builderForV * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -906,6 +927,7 @@ public Builder addResultSets( * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -931,6 +953,7 @@ public Builder addAllResultSets( * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -955,6 +978,7 @@ public Builder clearResultSets() { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -979,6 +1003,7 @@ public Builder removeResultSets(int index) { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -996,6 +1021,7 @@ public com.google.spanner.v1.ResultSet.Builder getResultSetsBuilder(int index) { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -1017,6 +1043,7 @@ public com.google.spanner.v1.ResultSetOrBuilder getResultSetsOrBuilder(int index * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -1039,6 +1066,7 @@ public com.google.spanner.v1.ResultSetOrBuilder getResultSetsOrBuilder(int index * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -1057,6 +1085,7 @@ public com.google.spanner.v1.ResultSet.Builder addResultSetsBuilder() { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -1075,6 +1104,7 @@ public com.google.spanner.v1.ResultSet.Builder addResultSetsBuilder(int index) { * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlResponseOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlResponseOrBuilder.java index b2891c067a8..ac45d58c2fc 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlResponseOrBuilder.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteBatchDmlResponseOrBuilder.java @@ -31,6 +31,7 @@ public interface ExecuteBatchDmlResponseOrBuilder * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -46,6 +47,7 @@ public interface ExecuteBatchDmlResponseOrBuilder * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -61,6 +63,7 @@ public interface ExecuteBatchDmlResponseOrBuilder * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -76,6 +79,7 @@ public interface ExecuteBatchDmlResponseOrBuilder * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
@@ -91,6 +95,7 @@ public interface ExecuteBatchDmlResponseOrBuilder * in the same order as the statements in the request. Each [ResultSet][google.spanner.v1.ResultSet] does * not contain any rows. The [ResultSetStats][google.spanner.v1.ResultSetStats] in each [ResultSet][google.spanner.v1.ResultSet] contain * the number of rows modified by the statement. + * * Only the first [ResultSet][google.spanner.v1.ResultSet] in the response contains valid * [ResultSetMetadata][google.spanner.v1.ResultSetMetadata]. *
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequest.java index 70f4c8219c2..8418e41cc38 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequest.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequest.java @@ -52,11 +52,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new ExecuteSqlRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.SpannerProto .internal_static_google_spanner_v1_ExecuteSqlRequest_descriptor; @@ -254,20 +249,26 @@ public interface QueryOptionsOrBuilder * *
      * 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.
      * 
* @@ -281,20 +282,26 @@ public interface QueryOptionsOrBuilder * *
      * 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.
      * 
* @@ -309,20 +316,26 @@ public interface QueryOptionsOrBuilder * *
      * 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 <package_name> 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.
@@ -338,20 +351,26 @@ public interface QueryOptionsOrBuilder
      *
      * 
      * 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 <package_name> 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.
@@ -393,11 +412,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
       return new QueryOptions();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-      return this.unknownFields;
-    }
-
     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       return com.google.spanner.v1.SpannerProto
           .internal_static_google_spanner_v1_ExecuteSqlRequest_QueryOptions_descriptor;
@@ -422,20 +436,26 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      *
      * 
      * 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.
      * 
* @@ -460,20 +480,26 @@ public java.lang.String getOptimizerVersion() { * *
      * 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.
      * 
* @@ -503,20 +529,26 @@ public com.google.protobuf.ByteString getOptimizerVersionBytes() { * *
      * 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 <package_name> 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.
@@ -543,20 +575,26 @@ public java.lang.String getOptimizerStatisticsPackage() {
      *
      * 
      * 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 <package_name> 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.
@@ -959,20 +997,26 @@ public Builder mergeFrom(
        *
        * 
        * 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.
        * 
* @@ -996,20 +1040,26 @@ public java.lang.String getOptimizerVersion() { * *
        * 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.
        * 
* @@ -1033,20 +1083,26 @@ public com.google.protobuf.ByteString getOptimizerVersionBytes() { * *
        * 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.
        * 
* @@ -1069,20 +1125,26 @@ public Builder setOptimizerVersion(java.lang.String value) { * *
        * 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.
        * 
* @@ -1101,20 +1163,26 @@ public Builder clearOptimizerVersion() { * *
        * 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.
        * 
* @@ -1140,20 +1208,26 @@ public Builder setOptimizerVersionBytes(com.google.protobuf.ByteString value) { * *
        * 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 <package_name> 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.
@@ -1179,20 +1253,26 @@ public java.lang.String getOptimizerStatisticsPackage() {
        *
        * 
        * 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 <package_name> 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.
@@ -1218,20 +1298,26 @@ public com.google.protobuf.ByteString getOptimizerStatisticsPackageBytes() {
        *
        * 
        * 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 <package_name> 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.
@@ -1256,20 +1342,26 @@ public Builder setOptimizerStatisticsPackage(java.lang.String value) {
        *
        * 
        * 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 <package_name> 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.
@@ -1290,20 +1382,26 @@ public Builder clearOptimizerStatisticsPackage() {
        *
        * 
        * 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 <package_name> 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.
@@ -1451,11 +1549,14 @@ public com.google.protobuf.ByteString getSessionBytes() {
    *
    * 
    * The transaction to use.
+   *
    * For queries, if none is provided, the default is a temporary read-only
    * transaction with strong concurrency.
+   *
    * Standard DML statements require a read-write transaction. To protect
    * against replays, single-use transactions are not supported.  The caller
    * must either supply an existing transaction ID or begin a new transaction.
+   *
    * Partitioned DML requires an existing Partitioned DML transaction ID.
    * 
* @@ -1472,11 +1573,14 @@ public boolean hasTransaction() { * *
    * The transaction to use.
+   *
    * For queries, if none is provided, the default is a temporary read-only
    * transaction with strong concurrency.
+   *
    * Standard DML statements require a read-write transaction. To protect
    * against replays, single-use transactions are not supported.  The caller
    * must either supply an existing transaction ID or begin a new transaction.
+   *
    * Partitioned DML requires an existing Partitioned DML transaction ID.
    * 
* @@ -1495,11 +1599,14 @@ public com.google.spanner.v1.TransactionSelector getTransaction() { * *
    * The transaction to use.
+   *
    * For queries, if none is provided, the default is a temporary read-only
    * transaction with strong concurrency.
+   *
    * Standard DML statements require a read-write transaction. To protect
    * against replays, single-use transactions are not supported.  The caller
    * must either supply an existing transaction ID or begin a new transaction.
+   *
    * Partitioned DML requires an existing Partitioned DML transaction ID.
    * 
* @@ -1570,13 +1677,17 @@ public com.google.protobuf.ByteString getSqlBytes() { * *
    * 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.
    * 
* @@ -1593,13 +1704,17 @@ public boolean hasParams() { * *
    * 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.
    * 
* @@ -1616,13 +1731,17 @@ public com.google.protobuf.Struct getParams() { * *
    * 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.
    * 
* @@ -1669,6 +1788,7 @@ public int getParamTypesCount() { * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -1697,6 +1817,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -1716,6 +1837,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -1743,6 +1865,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -1856,10 +1979,12 @@ public com.google.protobuf.ByteString getPartitionToken() { * 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. *
* @@ -1980,6 +2105,7 @@ public com.google.spanner.v1.RequestOptionsOrBuilder getRequestOptionsOrBuilder( *
    * If this is for a partitioned query and this field is set to `true`, the
    * request will be executed via Spanner independent compute resources.
+   *
    * If the field is set to `true` but the request does not set
    * `partition_token`, the API will return an `INVALID_ARGUMENT` error.
    * 
@@ -2779,11 +2905,14 @@ public Builder setSessionBytes(com.google.protobuf.ByteString value) { * *
      * The transaction to use.
+     *
      * For queries, if none is provided, the default is a temporary read-only
      * transaction with strong concurrency.
+     *
      * Standard DML statements require a read-write transaction. To protect
      * against replays, single-use transactions are not supported.  The caller
      * must either supply an existing transaction ID or begin a new transaction.
+     *
      * Partitioned DML requires an existing Partitioned DML transaction ID.
      * 
* @@ -2799,11 +2928,14 @@ public boolean hasTransaction() { * *
      * The transaction to use.
+     *
      * For queries, if none is provided, the default is a temporary read-only
      * transaction with strong concurrency.
+     *
      * Standard DML statements require a read-write transaction. To protect
      * against replays, single-use transactions are not supported.  The caller
      * must either supply an existing transaction ID or begin a new transaction.
+     *
      * Partitioned DML requires an existing Partitioned DML transaction ID.
      * 
* @@ -2825,11 +2957,14 @@ public com.google.spanner.v1.TransactionSelector getTransaction() { * *
      * The transaction to use.
+     *
      * For queries, if none is provided, the default is a temporary read-only
      * transaction with strong concurrency.
+     *
      * Standard DML statements require a read-write transaction. To protect
      * against replays, single-use transactions are not supported.  The caller
      * must either supply an existing transaction ID or begin a new transaction.
+     *
      * Partitioned DML requires an existing Partitioned DML transaction ID.
      * 
* @@ -2853,11 +2988,14 @@ public Builder setTransaction(com.google.spanner.v1.TransactionSelector value) { * *
      * The transaction to use.
+     *
      * For queries, if none is provided, the default is a temporary read-only
      * transaction with strong concurrency.
+     *
      * Standard DML statements require a read-write transaction. To protect
      * against replays, single-use transactions are not supported.  The caller
      * must either supply an existing transaction ID or begin a new transaction.
+     *
      * Partitioned DML requires an existing Partitioned DML transaction ID.
      * 
* @@ -2879,11 +3017,14 @@ public Builder setTransaction( * *
      * The transaction to use.
+     *
      * For queries, if none is provided, the default is a temporary read-only
      * transaction with strong concurrency.
+     *
      * Standard DML statements require a read-write transaction. To protect
      * against replays, single-use transactions are not supported.  The caller
      * must either supply an existing transaction ID or begin a new transaction.
+     *
      * Partitioned DML requires an existing Partitioned DML transaction ID.
      * 
* @@ -2910,11 +3051,14 @@ public Builder mergeTransaction(com.google.spanner.v1.TransactionSelector value) * *
      * The transaction to use.
+     *
      * For queries, if none is provided, the default is a temporary read-only
      * transaction with strong concurrency.
+     *
      * Standard DML statements require a read-write transaction. To protect
      * against replays, single-use transactions are not supported.  The caller
      * must either supply an existing transaction ID or begin a new transaction.
+     *
      * Partitioned DML requires an existing Partitioned DML transaction ID.
      * 
* @@ -2935,11 +3079,14 @@ public Builder clearTransaction() { * *
      * The transaction to use.
+     *
      * For queries, if none is provided, the default is a temporary read-only
      * transaction with strong concurrency.
+     *
      * Standard DML statements require a read-write transaction. To protect
      * against replays, single-use transactions are not supported.  The caller
      * must either supply an existing transaction ID or begin a new transaction.
+     *
      * Partitioned DML requires an existing Partitioned DML transaction ID.
      * 
* @@ -2955,11 +3102,14 @@ public com.google.spanner.v1.TransactionSelector.Builder getTransactionBuilder() * *
      * The transaction to use.
+     *
      * For queries, if none is provided, the default is a temporary read-only
      * transaction with strong concurrency.
+     *
      * Standard DML statements require a read-write transaction. To protect
      * against replays, single-use transactions are not supported.  The caller
      * must either supply an existing transaction ID or begin a new transaction.
+     *
      * Partitioned DML requires an existing Partitioned DML transaction ID.
      * 
* @@ -2979,11 +3129,14 @@ public com.google.spanner.v1.TransactionSelectorOrBuilder getTransactionOrBuilde * *
      * The transaction to use.
+     *
      * For queries, if none is provided, the default is a temporary read-only
      * transaction with strong concurrency.
+     *
      * Standard DML statements require a read-write transaction. To protect
      * against replays, single-use transactions are not supported.  The caller
      * must either supply an existing transaction ID or begin a new transaction.
+     *
      * Partitioned DML requires an existing Partitioned DML transaction ID.
      * 
* @@ -3123,13 +3276,17 @@ public Builder setSqlBytes(com.google.protobuf.ByteString value) { * *
      * 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.
      * 
* @@ -3145,13 +3302,17 @@ public boolean hasParams() { * *
      * 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.
      * 
* @@ -3171,13 +3332,17 @@ public com.google.protobuf.Struct getParams() { * *
      * 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.
      * 
* @@ -3201,13 +3366,17 @@ public Builder setParams(com.google.protobuf.Struct value) { * *
      * 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.
      * 
* @@ -3228,13 +3397,17 @@ public Builder setParams(com.google.protobuf.Struct.Builder builderForValue) { * *
      * 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.
      * 
* @@ -3261,13 +3434,17 @@ public Builder mergeParams(com.google.protobuf.Struct value) { * *
      * 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.
      * 
* @@ -3288,13 +3465,17 @@ public Builder clearParams() { * *
      * 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.
      * 
* @@ -3310,13 +3491,17 @@ public com.google.protobuf.Struct.Builder getParamsBuilder() { * *
      * 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.
      * 
* @@ -3334,13 +3519,17 @@ public com.google.protobuf.StructOrBuilder getParamsOrBuilder() { * *
      * 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.
      * 
* @@ -3398,6 +3587,7 @@ public int getParamTypesCount() { * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -3426,6 +3616,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -3445,6 +3636,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -3472,6 +3664,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -3505,6 +3698,7 @@ public Builder clearParamTypes() { * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -3533,6 +3727,7 @@ public java.util.Map getMutablePar * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -3559,6 +3754,7 @@ public Builder putParamTypes(java.lang.String key, com.google.spanner.v1.Type va * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -3818,10 +4014,12 @@ public Builder clearPartitionToken() { * 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. *
* @@ -3840,10 +4038,12 @@ public long getSeqno() { * 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. *
* @@ -3866,10 +4066,12 @@ public Builder setSeqno(long value) { * 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. *
* @@ -4260,6 +4462,7 @@ public com.google.spanner.v1.RequestOptionsOrBuilder getRequestOptionsOrBuilder( *
      * If this is for a partitioned query and this field is set to `true`, the
      * request will be executed via Spanner independent compute resources.
+     *
      * If the field is set to `true` but the request does not set
      * `partition_token`, the API will return an `INVALID_ARGUMENT` error.
      * 
@@ -4278,6 +4481,7 @@ public boolean getDataBoostEnabled() { *
      * If this is for a partitioned query and this field is set to `true`, the
      * request will be executed via Spanner independent compute resources.
+     *
      * If the field is set to `true` but the request does not set
      * `partition_token`, the API will return an `INVALID_ARGUMENT` error.
      * 
@@ -4300,6 +4504,7 @@ public Builder setDataBoostEnabled(boolean value) { *
      * If this is for a partitioned query and this field is set to `true`, the
      * request will be executed via Spanner independent compute resources.
+     *
      * If the field is set to `true` but the request does not set
      * `partition_token`, the API will return an `INVALID_ARGUMENT` error.
      * 
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequestOrBuilder.java index 832c2f3c503..1bfb3f43749 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequestOrBuilder.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequestOrBuilder.java @@ -57,11 +57,14 @@ public interface ExecuteSqlRequestOrBuilder * *
    * The transaction to use.
+   *
    * For queries, if none is provided, the default is a temporary read-only
    * transaction with strong concurrency.
+   *
    * Standard DML statements require a read-write transaction. To protect
    * against replays, single-use transactions are not supported.  The caller
    * must either supply an existing transaction ID or begin a new transaction.
+   *
    * Partitioned DML requires an existing Partitioned DML transaction ID.
    * 
* @@ -75,11 +78,14 @@ public interface ExecuteSqlRequestOrBuilder * *
    * The transaction to use.
+   *
    * For queries, if none is provided, the default is a temporary read-only
    * transaction with strong concurrency.
+   *
    * Standard DML statements require a read-write transaction. To protect
    * against replays, single-use transactions are not supported.  The caller
    * must either supply an existing transaction ID or begin a new transaction.
+   *
    * Partitioned DML requires an existing Partitioned DML transaction ID.
    * 
* @@ -93,11 +99,14 @@ public interface ExecuteSqlRequestOrBuilder * *
    * The transaction to use.
+   *
    * For queries, if none is provided, the default is a temporary read-only
    * transaction with strong concurrency.
+   *
    * Standard DML statements require a read-write transaction. To protect
    * against replays, single-use transactions are not supported.  The caller
    * must either supply an existing transaction ID or begin a new transaction.
+   *
    * Partitioned DML requires an existing Partitioned DML transaction ID.
    * 
* @@ -135,13 +144,17 @@ public interface ExecuteSqlRequestOrBuilder * *
    * 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.
    * 
* @@ -155,13 +168,17 @@ public interface ExecuteSqlRequestOrBuilder * *
    * 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.
    * 
* @@ -175,13 +192,17 @@ public interface ExecuteSqlRequestOrBuilder * *
    * 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.
    * 
* @@ -196,6 +217,7 @@ public interface ExecuteSqlRequestOrBuilder * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -212,6 +234,7 @@ public interface ExecuteSqlRequestOrBuilder * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -231,6 +254,7 @@ public interface ExecuteSqlRequestOrBuilder * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -247,6 +271,7 @@ public interface ExecuteSqlRequestOrBuilder * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -267,6 +292,7 @@ com.google.spanner.v1.Type getParamTypesOrDefault( * 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][google.spanner.v1.ExecuteSqlRequest.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][google.spanner.v1.Type] for more information @@ -347,10 +373,12 @@ com.google.spanner.v1.Type getParamTypesOrDefault( * 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. *
* @@ -436,6 +464,7 @@ com.google.spanner.v1.Type getParamTypesOrDefault( *
    * If this is for a partitioned query and this field is set to `true`, the
    * request will be executed via Spanner independent compute resources.
+   *
    * If the field is set to `true` but the request does not set
    * `partition_token`, the API will return an `INVALID_ARGUMENT` error.
    * 
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/GetSessionRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/GetSessionRequest.java index cef307ed07e..0a78d665a60 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/GetSessionRequest.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/GetSessionRequest.java @@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new GetSessionRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.SpannerProto .internal_static_google_spanner_v1_GetSessionRequest_descriptor; diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/KeyRange.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/KeyRange.java index 2848ab4bdd3..6eb2bd0e2ac 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/KeyRange.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/KeyRange.java @@ -23,64 +23,91 @@ * *
  * KeyRange represents a range of rows in a table or index.
+ *
  * A range has a start key and an end key. These keys can be open or
  * closed, indicating if the range includes rows with that key.
+ *
  * Keys are represented by lists, where the ith value in the list
  * corresponds to the ith component of the table or index primary key.
  * Individual values are encoded as described
  * [here][google.spanner.v1.TypeCode].
+ *
  * For example, consider the following table definition:
+ *
  *     CREATE TABLE UserEvents (
  *       UserName STRING(MAX),
  *       EventDate STRING(10)
  *     ) PRIMARY KEY(UserName, EventDate);
+ *
  * The following keys name rows in this table:
+ *
  *     ["Bob", "2014-09-23"]
  *     ["Alfred", "2015-06-12"]
+ *
  * Since the `UserEvents` table's `PRIMARY KEY` clause names two
  * columns, each `UserEvents` key has two elements; the first is the
  * `UserName`, and the second is the `EventDate`.
+ *
  * Key ranges with multiple components are interpreted
  * lexicographically by component using the table or index key's declared
  * sort order. For example, the following range returns all events for
  * user `"Bob"` that occurred in the year 2015:
+ *
  *     "start_closed": ["Bob", "2015-01-01"]
  *     "end_closed": ["Bob", "2015-12-31"]
+ *
  * Start and end keys can omit trailing key components. This affects the
  * inclusion and exclusion of rows that exactly match the provided key
  * components: if the key is closed, then rows that exactly match the
  * provided components are included; if the key is open, then rows
  * that exactly match are not included.
+ *
  * For example, the following range includes all events for `"Bob"` that
  * occurred during and after the year 2000:
+ *
  *     "start_closed": ["Bob", "2000-01-01"]
  *     "end_closed": ["Bob"]
+ *
  * The next example retrieves all events for `"Bob"`:
+ *
  *     "start_closed": ["Bob"]
  *     "end_closed": ["Bob"]
+ *
  * To retrieve events before the year 2000:
+ *
  *     "start_closed": ["Bob"]
  *     "end_open": ["Bob", "2000-01-01"]
+ *
  * The following range includes all rows in the table:
+ *
  *     "start_closed": []
  *     "end_closed": []
+ *
  * This range returns all users whose `UserName` begins with any
  * character from A to C:
+ *
  *     "start_closed": ["A"]
  *     "end_open": ["D"]
+ *
  * This range returns all users whose `UserName` begins with B:
+ *
  *     "start_closed": ["B"]
  *     "end_open": ["C"]
+ *
  * Key ranges honor column sort order. For example, suppose a table is
  * defined as follows:
+ *
  *     CREATE TABLE DescendingSortedTable {
  *       Key INT64,
  *       ...
  *     ) PRIMARY KEY(Key DESC);
+ *
  * The following range retrieves all rows with key values between 1
  * and 100 inclusive:
+ *
  *     "start_closed": ["100"]
  *     "end_closed": ["1"]
+ *
  * Note that 100 is passed as the start, and 1 is passed as the end,
  * because `Key` is a descending column in the schema.
  * 
@@ -105,11 +132,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new KeyRange(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.KeysProto.internal_static_google_spanner_v1_KeyRange_descriptor; } @@ -124,6 +146,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } private int startKeyTypeCase_ = 0; + + @SuppressWarnings("serial") private java.lang.Object startKeyType_; public enum StartKeyTypeCase @@ -171,6 +195,8 @@ public StartKeyTypeCase getStartKeyTypeCase() { } private int endKeyTypeCase_ = 0; + + @SuppressWarnings("serial") private java.lang.Object endKeyType_; public enum EndKeyTypeCase @@ -664,64 +690,91 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build * *
    * KeyRange represents a range of rows in a table or index.
+   *
    * A range has a start key and an end key. These keys can be open or
    * closed, indicating if the range includes rows with that key.
+   *
    * Keys are represented by lists, where the ith value in the list
    * corresponds to the ith component of the table or index primary key.
    * Individual values are encoded as described
    * [here][google.spanner.v1.TypeCode].
+   *
    * For example, consider the following table definition:
+   *
    *     CREATE TABLE UserEvents (
    *       UserName STRING(MAX),
    *       EventDate STRING(10)
    *     ) PRIMARY KEY(UserName, EventDate);
+   *
    * The following keys name rows in this table:
+   *
    *     ["Bob", "2014-09-23"]
    *     ["Alfred", "2015-06-12"]
+   *
    * Since the `UserEvents` table's `PRIMARY KEY` clause names two
    * columns, each `UserEvents` key has two elements; the first is the
    * `UserName`, and the second is the `EventDate`.
+   *
    * Key ranges with multiple components are interpreted
    * lexicographically by component using the table or index key's declared
    * sort order. For example, the following range returns all events for
    * user `"Bob"` that occurred in the year 2015:
+   *
    *     "start_closed": ["Bob", "2015-01-01"]
    *     "end_closed": ["Bob", "2015-12-31"]
+   *
    * Start and end keys can omit trailing key components. This affects the
    * inclusion and exclusion of rows that exactly match the provided key
    * components: if the key is closed, then rows that exactly match the
    * provided components are included; if the key is open, then rows
    * that exactly match are not included.
+   *
    * For example, the following range includes all events for `"Bob"` that
    * occurred during and after the year 2000:
+   *
    *     "start_closed": ["Bob", "2000-01-01"]
    *     "end_closed": ["Bob"]
+   *
    * The next example retrieves all events for `"Bob"`:
+   *
    *     "start_closed": ["Bob"]
    *     "end_closed": ["Bob"]
+   *
    * To retrieve events before the year 2000:
+   *
    *     "start_closed": ["Bob"]
    *     "end_open": ["Bob", "2000-01-01"]
+   *
    * The following range includes all rows in the table:
+   *
    *     "start_closed": []
    *     "end_closed": []
+   *
    * This range returns all users whose `UserName` begins with any
    * character from A to C:
+   *
    *     "start_closed": ["A"]
    *     "end_open": ["D"]
+   *
    * This range returns all users whose `UserName` begins with B:
+   *
    *     "start_closed": ["B"]
    *     "end_open": ["C"]
+   *
    * Key ranges honor column sort order. For example, suppose a table is
    * defined as follows:
+   *
    *     CREATE TABLE DescendingSortedTable {
    *       Key INT64,
    *       ...
    *     ) PRIMARY KEY(Key DESC);
+   *
    * The following range retrieves all rows with key values between 1
    * and 100 inclusive:
+   *
    *     "start_closed": ["100"]
    *     "end_closed": ["1"]
+   *
    * Note that 100 is passed as the start, and 1 is passed as the end,
    * because `Key` is a descending column in the schema.
    * 
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/KeyRangeOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/KeyRangeOrBuilder.java index c6a5e89496f..77a2acdc324 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/KeyRangeOrBuilder.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/KeyRangeOrBuilder.java @@ -175,7 +175,7 @@ public interface KeyRangeOrBuilder */ com.google.protobuf.ListValueOrBuilder getEndOpenOrBuilder(); - public com.google.spanner.v1.KeyRange.StartKeyTypeCase getStartKeyTypeCase(); + com.google.spanner.v1.KeyRange.StartKeyTypeCase getStartKeyTypeCase(); - public com.google.spanner.v1.KeyRange.EndKeyTypeCase getEndKeyTypeCase(); + com.google.spanner.v1.KeyRange.EndKeyTypeCase getEndKeyTypeCase(); } diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/KeySet.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/KeySet.java index fca1f9f6fbb..d89ccd74fcb 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/KeySet.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/KeySet.java @@ -25,6 +25,7 @@ * `KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All * the keys are expected to be in the same table or index. The keys need * not be sorted in any particular way. + * * If the same key is specified multiple times in the set (for example * if two ranges, two keys, or a key and a range overlap), Cloud Spanner * behaves as if the key were only specified once. @@ -53,11 +54,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new KeySet(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.KeysProto.internal_static_google_spanner_v1_KeySet_descriptor; } @@ -438,6 +434,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build * `KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All * the keys are expected to be in the same table or index. The keys need * not be sorted in any particular way. + * * If the same key is specified multiple times in the set (for example * if two ranges, two keys, or a key and a range overlap), Cloud Spanner * behaves as if the key were only specified once. diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ListSessionsRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ListSessionsRequest.java index fb6f3e29725..067526b246f 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ListSessionsRequest.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ListSessionsRequest.java @@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new ListSessionsRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.SpannerProto .internal_static_google_spanner_v1_ListSessionsRequest_descriptor; @@ -208,8 +203,11 @@ public com.google.protobuf.ByteString getPageTokenBytes() { *
    * An expression for filtering the results of the request. Filter rules are
    * case insensitive. The fields eligible for filtering are:
+   *
    *   * `labels.key` where key is the name of a label
+   *
    * Some examples of using filters are:
+   *
    *   * `labels.env:*` --> The session has the label "env".
    *   * `labels.env:dev` --> The session has the label "env" and the value of
    *                        the label contains the string "dev".
@@ -237,8 +235,11 @@ public java.lang.String getFilter() {
    * 
    * An expression for filtering the results of the request. Filter rules are
    * case insensitive. The fields eligible for filtering are:
+   *
    *   * `labels.key` where key is the name of a label
+   *
    * Some examples of using filters are:
+   *
    *   * `labels.env:*` --> The session has the label "env".
    *   * `labels.env:dev` --> The session has the label "env" and the value of
    *                        the label contains the string "dev".
@@ -967,8 +968,11 @@ public Builder setPageTokenBytes(com.google.protobuf.ByteString value) {
      * 
      * An expression for filtering the results of the request. Filter rules are
      * case insensitive. The fields eligible for filtering are:
+     *
      *   * `labels.key` where key is the name of a label
+     *
      * Some examples of using filters are:
+     *
      *   * `labels.env:*` --> The session has the label "env".
      *   * `labels.env:dev` --> The session has the label "env" and the value of
      *                        the label contains the string "dev".
@@ -995,8 +999,11 @@ public java.lang.String getFilter() {
      * 
      * An expression for filtering the results of the request. Filter rules are
      * case insensitive. The fields eligible for filtering are:
+     *
      *   * `labels.key` where key is the name of a label
+     *
      * Some examples of using filters are:
+     *
      *   * `labels.env:*` --> The session has the label "env".
      *   * `labels.env:dev` --> The session has the label "env" and the value of
      *                        the label contains the string "dev".
@@ -1023,8 +1030,11 @@ public com.google.protobuf.ByteString getFilterBytes() {
      * 
      * An expression for filtering the results of the request. Filter rules are
      * case insensitive. The fields eligible for filtering are:
+     *
      *   * `labels.key` where key is the name of a label
+     *
      * Some examples of using filters are:
+     *
      *   * `labels.env:*` --> The session has the label "env".
      *   * `labels.env:dev` --> The session has the label "env" and the value of
      *                        the label contains the string "dev".
@@ -1050,8 +1060,11 @@ public Builder setFilter(java.lang.String value) {
      * 
      * An expression for filtering the results of the request. Filter rules are
      * case insensitive. The fields eligible for filtering are:
+     *
      *   * `labels.key` where key is the name of a label
+     *
      * Some examples of using filters are:
+     *
      *   * `labels.env:*` --> The session has the label "env".
      *   * `labels.env:dev` --> The session has the label "env" and the value of
      *                        the label contains the string "dev".
@@ -1073,8 +1086,11 @@ public Builder clearFilter() {
      * 
      * An expression for filtering the results of the request. Filter rules are
      * case insensitive. The fields eligible for filtering are:
+     *
      *   * `labels.key` where key is the name of a label
+     *
      * Some examples of using filters are:
+     *
      *   * `labels.env:*` --> The session has the label "env".
      *   * `labels.env:dev` --> The session has the label "env" and the value of
      *                        the label contains the string "dev".
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ListSessionsRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ListSessionsRequestOrBuilder.java
index 98c63809bbc..9588536d71d 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ListSessionsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ListSessionsRequestOrBuilder.java
@@ -101,8 +101,11 @@ public interface ListSessionsRequestOrBuilder
    * 
    * An expression for filtering the results of the request. Filter rules are
    * case insensitive. The fields eligible for filtering are:
+   *
    *   * `labels.key` where key is the name of a label
+   *
    * Some examples of using filters are:
+   *
    *   * `labels.env:*` --> The session has the label "env".
    *   * `labels.env:dev` --> The session has the label "env" and the value of
    *                        the label contains the string "dev".
@@ -119,8 +122,11 @@ public interface ListSessionsRequestOrBuilder
    * 
    * An expression for filtering the results of the request. Filter rules are
    * case insensitive. The fields eligible for filtering are:
+   *
    *   * `labels.key` where key is the name of a label
+   *
    * Some examples of using filters are:
+   *
    *   * `labels.env:*` --> The session has the label "env".
    *   * `labels.env:dev` --> The session has the label "env" and the value of
    *                        the label contains the string "dev".
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ListSessionsResponse.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ListSessionsResponse.java
index 204cd5a790f..820f48dcd7f 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ListSessionsResponse.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ListSessionsResponse.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ListSessionsResponse();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto
         .internal_static_google_spanner_v1_ListSessionsResponse_descriptor;
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Mutation.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Mutation.java
index 9c06e66de8f..96d2dcea3ea 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Mutation.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Mutation.java
@@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new Mutation();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.MutationProto
         .internal_static_google_spanner_v1_Mutation_descriptor;
@@ -101,6 +96,7 @@ public interface WriteOrBuilder
      *
      * 
      * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+     *
      * The list of columns must contain enough columns to allow
      * Cloud Spanner to derive values for all primary key columns in the
      * row(s) to be modified.
@@ -116,6 +112,7 @@ public interface WriteOrBuilder
      *
      * 
      * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+     *
      * The list of columns must contain enough columns to allow
      * Cloud Spanner to derive values for all primary key columns in the
      * row(s) to be modified.
@@ -131,6 +128,7 @@ public interface WriteOrBuilder
      *
      * 
      * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+     *
      * The list of columns must contain enough columns to allow
      * Cloud Spanner to derive values for all primary key columns in the
      * row(s) to be modified.
@@ -147,6 +145,7 @@ public interface WriteOrBuilder
      *
      * 
      * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+     *
      * The list of columns must contain enough columns to allow
      * Cloud Spanner to derive values for all primary key columns in the
      * row(s) to be modified.
@@ -267,7 +266,7 @@ private Write(com.google.protobuf.GeneratedMessageV3.Builder builder) {
 
     private Write() {
       table_ = "";
-      columns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      columns_ = com.google.protobuf.LazyStringArrayList.emptyList();
       values_ = java.util.Collections.emptyList();
     }
 
@@ -277,11 +276,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
       return new Write();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-      return this.unknownFields;
-    }
-
     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       return com.google.spanner.v1.MutationProto
           .internal_static_google_spanner_v1_Mutation_Write_descriptor;
@@ -351,12 +345,14 @@ public com.google.protobuf.ByteString getTableBytes() {
     public static final int COLUMNS_FIELD_NUMBER = 2;
 
     @SuppressWarnings("serial")
-    private com.google.protobuf.LazyStringList columns_;
+    private com.google.protobuf.LazyStringArrayList columns_ =
+        com.google.protobuf.LazyStringArrayList.emptyList();
     /**
      *
      *
      * 
      * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+     *
      * The list of columns must contain enough columns to allow
      * Cloud Spanner to derive values for all primary key columns in the
      * row(s) to be modified.
@@ -374,6 +370,7 @@ public com.google.protobuf.ProtocolStringList getColumnsList() {
      *
      * 
      * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+     *
      * The list of columns must contain enough columns to allow
      * Cloud Spanner to derive values for all primary key columns in the
      * row(s) to be modified.
@@ -391,6 +388,7 @@ public int getColumnsCount() {
      *
      * 
      * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+     *
      * The list of columns must contain enough columns to allow
      * Cloud Spanner to derive values for all primary key columns in the
      * row(s) to be modified.
@@ -409,6 +407,7 @@ public java.lang.String getColumns(int index) {
      *
      * 
      * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+     *
      * The list of columns must contain enough columns to allow
      * Cloud Spanner to derive values for all primary key columns in the
      * row(s) to be modified.
@@ -757,8 +756,7 @@ public Builder clear() {
         super.clear();
         bitField0_ = 0;
         table_ = "";
-        columns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000002);
+        columns_ = com.google.protobuf.LazyStringArrayList.emptyList();
         if (valuesBuilder_ == null) {
           values_ = java.util.Collections.emptyList();
         } else {
@@ -802,11 +800,6 @@ public com.google.spanner.v1.Mutation.Write buildPartial() {
       }
 
       private void buildPartialRepeatedFields(com.google.spanner.v1.Mutation.Write result) {
-        if (((bitField0_ & 0x00000002) != 0)) {
-          columns_ = columns_.getUnmodifiableView();
-          bitField0_ = (bitField0_ & ~0x00000002);
-        }
-        result.columns_ = columns_;
         if (valuesBuilder_ == null) {
           if (((bitField0_ & 0x00000004) != 0)) {
             values_ = java.util.Collections.unmodifiableList(values_);
@@ -823,6 +816,10 @@ private void buildPartial0(com.google.spanner.v1.Mutation.Write result) {
         if (((from_bitField0_ & 0x00000001) != 0)) {
           result.table_ = table_;
         }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          columns_.makeImmutable();
+          result.columns_ = columns_;
+        }
       }
 
       @java.lang.Override
@@ -880,7 +877,7 @@ public Builder mergeFrom(com.google.spanner.v1.Mutation.Write other) {
         if (!other.columns_.isEmpty()) {
           if (columns_.isEmpty()) {
             columns_ = other.columns_;
-            bitField0_ = (bitField0_ & ~0x00000002);
+            bitField0_ |= 0x00000002;
           } else {
             ensureColumnsIsMutable();
             columns_.addAll(other.columns_);
@@ -1090,20 +1087,21 @@ public Builder setTableBytes(com.google.protobuf.ByteString value) {
         return this;
       }
 
-      private com.google.protobuf.LazyStringList columns_ =
-          com.google.protobuf.LazyStringArrayList.EMPTY;
+      private com.google.protobuf.LazyStringArrayList columns_ =
+          com.google.protobuf.LazyStringArrayList.emptyList();
 
       private void ensureColumnsIsMutable() {
-        if (!((bitField0_ & 0x00000002) != 0)) {
+        if (!columns_.isModifiable()) {
           columns_ = new com.google.protobuf.LazyStringArrayList(columns_);
-          bitField0_ |= 0x00000002;
         }
+        bitField0_ |= 0x00000002;
       }
       /**
        *
        *
        * 
        * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+       *
        * The list of columns must contain enough columns to allow
        * Cloud Spanner to derive values for all primary key columns in the
        * row(s) to be modified.
@@ -1114,13 +1112,15 @@ private void ensureColumnsIsMutable() {
        * @return A list containing the columns.
        */
       public com.google.protobuf.ProtocolStringList getColumnsList() {
-        return columns_.getUnmodifiableView();
+        columns_.makeImmutable();
+        return columns_;
       }
       /**
        *
        *
        * 
        * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+       *
        * The list of columns must contain enough columns to allow
        * Cloud Spanner to derive values for all primary key columns in the
        * row(s) to be modified.
@@ -1138,6 +1138,7 @@ public int getColumnsCount() {
        *
        * 
        * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+       *
        * The list of columns must contain enough columns to allow
        * Cloud Spanner to derive values for all primary key columns in the
        * row(s) to be modified.
@@ -1156,6 +1157,7 @@ public java.lang.String getColumns(int index) {
        *
        * 
        * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+       *
        * The list of columns must contain enough columns to allow
        * Cloud Spanner to derive values for all primary key columns in the
        * row(s) to be modified.
@@ -1174,6 +1176,7 @@ public com.google.protobuf.ByteString getColumnsBytes(int index) {
        *
        * 
        * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+       *
        * The list of columns must contain enough columns to allow
        * Cloud Spanner to derive values for all primary key columns in the
        * row(s) to be modified.
@@ -1191,6 +1194,7 @@ public Builder setColumns(int index, java.lang.String value) {
         }
         ensureColumnsIsMutable();
         columns_.set(index, value);
+        bitField0_ |= 0x00000002;
         onChanged();
         return this;
       }
@@ -1199,6 +1203,7 @@ public Builder setColumns(int index, java.lang.String value) {
        *
        * 
        * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+       *
        * The list of columns must contain enough columns to allow
        * Cloud Spanner to derive values for all primary key columns in the
        * row(s) to be modified.
@@ -1215,6 +1220,7 @@ public Builder addColumns(java.lang.String value) {
         }
         ensureColumnsIsMutable();
         columns_.add(value);
+        bitField0_ |= 0x00000002;
         onChanged();
         return this;
       }
@@ -1223,6 +1229,7 @@ public Builder addColumns(java.lang.String value) {
        *
        * 
        * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+       *
        * The list of columns must contain enough columns to allow
        * Cloud Spanner to derive values for all primary key columns in the
        * row(s) to be modified.
@@ -1236,6 +1243,7 @@ public Builder addColumns(java.lang.String value) {
       public Builder addAllColumns(java.lang.Iterable values) {
         ensureColumnsIsMutable();
         com.google.protobuf.AbstractMessageLite.Builder.addAll(values, columns_);
+        bitField0_ |= 0x00000002;
         onChanged();
         return this;
       }
@@ -1244,6 +1252,7 @@ public Builder addAllColumns(java.lang.Iterable values) {
        *
        * 
        * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+       *
        * The list of columns must contain enough columns to allow
        * Cloud Spanner to derive values for all primary key columns in the
        * row(s) to be modified.
@@ -1254,8 +1263,9 @@ public Builder addAllColumns(java.lang.Iterable values) {
        * @return This builder for chaining.
        */
       public Builder clearColumns() {
-        columns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        columns_ = com.google.protobuf.LazyStringArrayList.emptyList();
         bitField0_ = (bitField0_ & ~0x00000002);
+        ;
         onChanged();
         return this;
       }
@@ -1264,6 +1274,7 @@ public Builder clearColumns() {
        *
        * 
        * The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+       *
        * The list of columns must contain enough columns to allow
        * Cloud Spanner to derive values for all primary key columns in the
        * row(s) to be modified.
@@ -1281,6 +1292,7 @@ public Builder addColumnsBytes(com.google.protobuf.ByteString value) {
         checkByteStringIsUtf8(value);
         ensureColumnsIsMutable();
         columns_.add(value);
+        bitField0_ |= 0x00000002;
         onChanged();
         return this;
       }
@@ -1930,11 +1942,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
       return new Delete();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-      return this.unknownFields;
-    }
-
     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       return com.google.spanner.v1.MutationProto
           .internal_static_google_spanner_v1_Mutation_Delete_descriptor;
@@ -2841,6 +2848,8 @@ public com.google.spanner.v1.Mutation.Delete getDefaultInstanceForType() {
   }
 
   private int operationCase_ = 0;
+
+  @SuppressWarnings("serial")
   private java.lang.Object operation_;
 
   public enum OperationCase
@@ -3012,6 +3021,7 @@ public com.google.spanner.v1.Mutation.WriteOrBuilder getUpdateOrBuilder() {
    * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
    * its column values are overwritten with the ones provided. Any
    * column values not explicitly written are preserved.
+   *
    * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
    * NULL` columns in the table must be given a value. This holds true
    * even when the row already exists and will therefore actually be updated.
@@ -3032,6 +3042,7 @@ public boolean hasInsertOrUpdate() {
    * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
    * its column values are overwritten with the ones provided. Any
    * column values not explicitly written are preserved.
+   *
    * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
    * NULL` columns in the table must be given a value. This holds true
    * even when the row already exists and will therefore actually be updated.
@@ -3055,6 +3066,7 @@ public com.google.spanner.v1.Mutation.Write getInsertOrUpdate() {
    * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
    * its column values are overwritten with the ones provided. Any
    * column values not explicitly written are preserved.
+   *
    * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
    * NULL` columns in the table must be given a value. This holds true
    * even when the row already exists and will therefore actually be updated.
@@ -3079,6 +3091,7 @@ public com.google.spanner.v1.Mutation.WriteOrBuilder getInsertOrUpdateOrBuilder(
    * deleted, and the column values provided are inserted
    * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
    * explicitly written become `NULL`.
+   *
    * In an interleaved table, if you create the child table with the
    * `ON DELETE CASCADE` annotation, then replacing a parent row
    * also deletes the child rows. Otherwise, you must delete the
@@ -3101,6 +3114,7 @@ public boolean hasReplace() {
    * deleted, and the column values provided are inserted
    * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
    * explicitly written become `NULL`.
+   *
    * In an interleaved table, if you create the child table with the
    * `ON DELETE CASCADE` annotation, then replacing a parent row
    * also deletes the child rows. Otherwise, you must delete the
@@ -3126,6 +3140,7 @@ public com.google.spanner.v1.Mutation.Write getReplace() {
    * deleted, and the column values provided are inserted
    * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
    * explicitly written become `NULL`.
+   *
    * In an interleaved table, if you create the child table with the
    * `ON DELETE CASCADE` annotation, then replacing a parent row
    * also deletes the child rows. Otherwise, you must delete the
@@ -4154,6 +4169,7 @@ public com.google.spanner.v1.Mutation.WriteOrBuilder getUpdateOrBuilder() {
      * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
      * its column values are overwritten with the ones provided. Any
      * column values not explicitly written are preserved.
+     *
      * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
      * NULL` columns in the table must be given a value. This holds true
      * even when the row already exists and will therefore actually be updated.
@@ -4174,6 +4190,7 @@ public boolean hasInsertOrUpdate() {
      * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
      * its column values are overwritten with the ones provided. Any
      * column values not explicitly written are preserved.
+     *
      * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
      * NULL` columns in the table must be given a value. This holds true
      * even when the row already exists and will therefore actually be updated.
@@ -4204,6 +4221,7 @@ public com.google.spanner.v1.Mutation.Write getInsertOrUpdate() {
      * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
      * its column values are overwritten with the ones provided. Any
      * column values not explicitly written are preserved.
+     *
      * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
      * NULL` columns in the table must be given a value. This holds true
      * even when the row already exists and will therefore actually be updated.
@@ -4231,6 +4249,7 @@ public Builder setInsertOrUpdate(com.google.spanner.v1.Mutation.Write value) {
      * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
      * its column values are overwritten with the ones provided. Any
      * column values not explicitly written are preserved.
+     *
      * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
      * NULL` columns in the table must be given a value. This holds true
      * even when the row already exists and will therefore actually be updated.
@@ -4255,6 +4274,7 @@ public Builder setInsertOrUpdate(com.google.spanner.v1.Mutation.Write.Builder bu
      * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
      * its column values are overwritten with the ones provided. Any
      * column values not explicitly written are preserved.
+     *
      * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
      * NULL` columns in the table must be given a value. This holds true
      * even when the row already exists and will therefore actually be updated.
@@ -4292,6 +4312,7 @@ public Builder mergeInsertOrUpdate(com.google.spanner.v1.Mutation.Write value) {
      * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
      * its column values are overwritten with the ones provided. Any
      * column values not explicitly written are preserved.
+     *
      * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
      * NULL` columns in the table must be given a value. This holds true
      * even when the row already exists and will therefore actually be updated.
@@ -4322,6 +4343,7 @@ public Builder clearInsertOrUpdate() {
      * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
      * its column values are overwritten with the ones provided. Any
      * column values not explicitly written are preserved.
+     *
      * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
      * NULL` columns in the table must be given a value. This holds true
      * even when the row already exists and will therefore actually be updated.
@@ -4339,6 +4361,7 @@ public com.google.spanner.v1.Mutation.Write.Builder getInsertOrUpdateBuilder() {
      * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
      * its column values are overwritten with the ones provided. Any
      * column values not explicitly written are preserved.
+     *
      * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
      * NULL` columns in the table must be given a value. This holds true
      * even when the row already exists and will therefore actually be updated.
@@ -4364,6 +4387,7 @@ public com.google.spanner.v1.Mutation.WriteOrBuilder getInsertOrUpdateOrBuilder(
      * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
      * its column values are overwritten with the ones provided. Any
      * column values not explicitly written are preserved.
+     *
      * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
      * NULL` columns in the table must be given a value. This holds true
      * even when the row already exists and will therefore actually be updated.
@@ -4408,6 +4432,7 @@ public com.google.spanner.v1.Mutation.WriteOrBuilder getInsertOrUpdateOrBuilder(
      * deleted, and the column values provided are inserted
      * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
      * explicitly written become `NULL`.
+     *
      * In an interleaved table, if you create the child table with the
      * `ON DELETE CASCADE` annotation, then replacing a parent row
      * also deletes the child rows. Otherwise, you must delete the
@@ -4430,6 +4455,7 @@ public boolean hasReplace() {
      * deleted, and the column values provided are inserted
      * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
      * explicitly written become `NULL`.
+     *
      * In an interleaved table, if you create the child table with the
      * `ON DELETE CASCADE` annotation, then replacing a parent row
      * also deletes the child rows. Otherwise, you must delete the
@@ -4462,6 +4488,7 @@ public com.google.spanner.v1.Mutation.Write getReplace() {
      * deleted, and the column values provided are inserted
      * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
      * explicitly written become `NULL`.
+     *
      * In an interleaved table, if you create the child table with the
      * `ON DELETE CASCADE` annotation, then replacing a parent row
      * also deletes the child rows. Otherwise, you must delete the
@@ -4491,6 +4518,7 @@ public Builder setReplace(com.google.spanner.v1.Mutation.Write value) {
      * deleted, and the column values provided are inserted
      * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
      * explicitly written become `NULL`.
+     *
      * In an interleaved table, if you create the child table with the
      * `ON DELETE CASCADE` annotation, then replacing a parent row
      * also deletes the child rows. Otherwise, you must delete the
@@ -4517,6 +4545,7 @@ public Builder setReplace(com.google.spanner.v1.Mutation.Write.Builder builderFo
      * deleted, and the column values provided are inserted
      * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
      * explicitly written become `NULL`.
+     *
      * In an interleaved table, if you create the child table with the
      * `ON DELETE CASCADE` annotation, then replacing a parent row
      * also deletes the child rows. Otherwise, you must delete the
@@ -4556,6 +4585,7 @@ public Builder mergeReplace(com.google.spanner.v1.Mutation.Write value) {
      * deleted, and the column values provided are inserted
      * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
      * explicitly written become `NULL`.
+     *
      * In an interleaved table, if you create the child table with the
      * `ON DELETE CASCADE` annotation, then replacing a parent row
      * also deletes the child rows. Otherwise, you must delete the
@@ -4588,6 +4618,7 @@ public Builder clearReplace() {
      * deleted, and the column values provided are inserted
      * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
      * explicitly written become `NULL`.
+     *
      * In an interleaved table, if you create the child table with the
      * `ON DELETE CASCADE` annotation, then replacing a parent row
      * also deletes the child rows. Otherwise, you must delete the
@@ -4607,6 +4638,7 @@ public com.google.spanner.v1.Mutation.Write.Builder getReplaceBuilder() {
      * deleted, and the column values provided are inserted
      * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
      * explicitly written become `NULL`.
+     *
      * In an interleaved table, if you create the child table with the
      * `ON DELETE CASCADE` annotation, then replacing a parent row
      * also deletes the child rows. Otherwise, you must delete the
@@ -4634,6 +4666,7 @@ public com.google.spanner.v1.Mutation.WriteOrBuilder getReplaceOrBuilder() {
      * deleted, and the column values provided are inserted
      * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
      * explicitly written become `NULL`.
+     *
      * In an interleaved table, if you create the child table with the
      * `ON DELETE CASCADE` annotation, then replacing a parent row
      * also deletes the child rows. Otherwise, you must delete the
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/MutationOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/MutationOrBuilder.java
index c91b2bbb83f..f448af6710f 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/MutationOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/MutationOrBuilder.java
@@ -106,6 +106,7 @@ public interface MutationOrBuilder
    * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
    * its column values are overwritten with the ones provided. Any
    * column values not explicitly written are preserved.
+   *
    * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
    * NULL` columns in the table must be given a value. This holds true
    * even when the row already exists and will therefore actually be updated.
@@ -123,6 +124,7 @@ public interface MutationOrBuilder
    * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
    * its column values are overwritten with the ones provided. Any
    * column values not explicitly written are preserved.
+   *
    * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
    * NULL` columns in the table must be given a value. This holds true
    * even when the row already exists and will therefore actually be updated.
@@ -140,6 +142,7 @@ public interface MutationOrBuilder
    * Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
    * its column values are overwritten with the ones provided. Any
    * column values not explicitly written are preserved.
+   *
    * When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all `NOT
    * NULL` columns in the table must be given a value. This holds true
    * even when the row already exists and will therefore actually be updated.
@@ -157,6 +160,7 @@ public interface MutationOrBuilder
    * deleted, and the column values provided are inserted
    * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
    * explicitly written become `NULL`.
+   *
    * In an interleaved table, if you create the child table with the
    * `ON DELETE CASCADE` annotation, then replacing a parent row
    * also deletes the child rows. Otherwise, you must delete the
@@ -176,6 +180,7 @@ public interface MutationOrBuilder
    * deleted, and the column values provided are inserted
    * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
    * explicitly written become `NULL`.
+   *
    * In an interleaved table, if you create the child table with the
    * `ON DELETE CASCADE` annotation, then replacing a parent row
    * also deletes the child rows. Otherwise, you must delete the
@@ -195,6 +200,7 @@ public interface MutationOrBuilder
    * deleted, and the column values provided are inserted
    * instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
    * explicitly written become `NULL`.
+   *
    * In an interleaved table, if you create the child table with the
    * `ON DELETE CASCADE` annotation, then replacing a parent row
    * also deletes the child rows. Otherwise, you must delete the
@@ -243,5 +249,5 @@ public interface MutationOrBuilder
    */
   com.google.spanner.v1.Mutation.DeleteOrBuilder getDeleteOrBuilder();
 
-  public com.google.spanner.v1.Mutation.OperationCase getOperationCase();
+  com.google.spanner.v1.Mutation.OperationCase getOperationCase();
 }
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/MutationProto.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/MutationProto.java
index a1706fc4cd1..ca64bf3a9b8 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/MutationProto.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/MutationProto.java
@@ -51,24 +51,24 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
       "\n google/spanner/v1/mutation.proto\022\021goog"
           + "le.spanner.v1\032\037google/api/field_behavior"
           + ".proto\032\034google/protobuf/struct.proto\032\034go"
-          + "ogle/spanner/v1/keys.proto\"\325\003\n\010Mutation\022"
+          + "ogle/spanner/v1/keys.proto\"\330\003\n\010Mutation\022"
           + "3\n\006insert\030\001 \001(\0132!.google.spanner.v1.Muta"
           + "tion.WriteH\000\0223\n\006update\030\002 \001(\0132!.google.sp"
           + "anner.v1.Mutation.WriteH\000\022=\n\020insert_or_u"
           + "pdate\030\003 \001(\0132!.google.spanner.v1.Mutation"
           + ".WriteH\000\0224\n\007replace\030\004 \001(\0132!.google.spann"
           + "er.v1.Mutation.WriteH\000\0224\n\006delete\030\005 \001(\0132\""
-          + ".google.spanner.v1.Mutation.DeleteH\000\032X\n\005"
-          + "Write\022\022\n\005table\030\001 \001(\tB\003\340A\002\022\017\n\007columns\030\002 \003"
-          + "(\t\022*\n\006values\030\003 \003(\0132\032.google.protobuf.Lis"
-          + "tValue\032M\n\006Delete\022\022\n\005table\030\001 \001(\tB\003\340A\002\022/\n\007"
-          + "key_set\030\002 \001(\0132\031.google.spanner.v1.KeySet"
-          + "B\003\340A\002B\013\n\toperationB\260\001\n\025com.google.spanne"
-          + "r.v1B\rMutationProtoP\001Z5cloud.google.com/"
-          + "go/spanner/apiv1/spannerpb;spannerpb\252\002\027G"
-          + "oogle.Cloud.Spanner.V1\312\002\027Google\\Cloud\\Sp"
-          + "anner\\V1\352\002\032Google::Cloud::Spanner::V1b\006p"
-          + "roto3"
+          + ".google.spanner.v1.Mutation.DeleteH\000\032Y\n\005"
+          + "Write\022\023\n\005table\030\001 \001(\tB\004\342A\001\002\022\017\n\007columns\030\002 "
+          + "\003(\t\022*\n\006values\030\003 \003(\0132\032.google.protobuf.Li"
+          + "stValue\032O\n\006Delete\022\023\n\005table\030\001 \001(\tB\004\342A\001\002\0220"
+          + "\n\007key_set\030\002 \001(\0132\031.google.spanner.v1.KeyS"
+          + "etB\004\342A\001\002B\013\n\toperationB\260\001\n\025com.google.spa"
+          + "nner.v1B\rMutationProtoP\001Z5cloud.google.c"
+          + "om/go/spanner/apiv1/spannerpb;spannerpb\252"
+          + "\002\027Google.Cloud.Spanner.V1\312\002\027Google\\Cloud"
+          + "\\Spanner\\V1\352\002\032Google::Cloud::Spanner::V1"
+          + "b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSet.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSet.java
index 4453ef0c119..04457063afb 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSet.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSet.java
@@ -50,11 +50,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new PartialResultSet();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.ResultSetProto
         .internal_static_google_spanner_v1_PartialResultSet_descriptor;
@@ -136,13 +131,16 @@ public com.google.spanner.v1.ResultSetMetadataOrBuilder getMetadataOrBuilder() {
    * 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][google.spanner.v1.StructType.fields].
+   *
    * Most values are encoded based on type as described
    * [here][google.spanner.v1.TypeCode].
+   *
    * 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][google.spanner.v1.PartialResultSet.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
@@ -151,27 +149,37 @@ public com.google.spanner.v1.ResultSetMetadataOrBuilder getMetadataOrBuilder() {
    *   * `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"]
@@ -187,6 +195,7 @@ public com.google.spanner.v1.ResultSetMetadataOrBuilder getMetadataOrBuilder() {
    *       "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"`.
@@ -207,13 +216,16 @@ public java.util.List getValuesList() {
    * 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][google.spanner.v1.StructType.fields].
+   *
    * Most values are encoded based on type as described
    * [here][google.spanner.v1.TypeCode].
+   *
    * 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][google.spanner.v1.PartialResultSet.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
@@ -222,27 +234,37 @@ public java.util.List getValuesList() {
    *   * `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"]
@@ -258,6 +280,7 @@ public java.util.List getValuesList() {
    *       "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"`.
@@ -278,13 +301,16 @@ public java.util.List getValuesOrB
    * 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][google.spanner.v1.StructType.fields].
+   *
    * Most values are encoded based on type as described
    * [here][google.spanner.v1.TypeCode].
+   *
    * 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][google.spanner.v1.PartialResultSet.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
@@ -293,27 +319,37 @@ public java.util.List getValuesOrB
    *   * `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"]
@@ -329,6 +365,7 @@ public java.util.List getValuesOrB
    *       "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"`.
@@ -349,13 +386,16 @@ public int getValuesCount() {
    * 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][google.spanner.v1.StructType.fields].
+   *
    * Most values are encoded based on type as described
    * [here][google.spanner.v1.TypeCode].
+   *
    * 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][google.spanner.v1.PartialResultSet.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
@@ -364,27 +404,37 @@ public int getValuesCount() {
    *   * `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"]
@@ -400,6 +450,7 @@ public int getValuesCount() {
    *       "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"`.
@@ -420,13 +471,16 @@ public com.google.protobuf.Value getValues(int index) {
    * 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][google.spanner.v1.StructType.fields].
+   *
    * Most values are encoded based on type as described
    * [here][google.spanner.v1.TypeCode].
+   *
    * 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][google.spanner.v1.PartialResultSet.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
@@ -435,27 +489,37 @@ public com.google.protobuf.Value getValues(int index) {
    *   * `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"]
@@ -471,6 +535,7 @@ public com.google.protobuf.Value getValues(int index) {
    *       "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"`.
@@ -1296,13 +1361,16 @@ private void ensureValuesIsMutable() {
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -1311,27 +1379,37 @@ private void ensureValuesIsMutable() {
      *   * `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"]
@@ -1347,6 +1425,7 @@ private void ensureValuesIsMutable() {
      *       "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"`.
@@ -1370,13 +1449,16 @@ public java.util.List getValuesList() {
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -1385,27 +1467,37 @@ public java.util.List getValuesList() {
      *   * `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"]
@@ -1421,6 +1513,7 @@ public java.util.List getValuesList() {
      *       "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"`.
@@ -1444,13 +1537,16 @@ public int getValuesCount() {
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -1459,27 +1555,37 @@ public int getValuesCount() {
      *   * `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"]
@@ -1495,6 +1601,7 @@ public int getValuesCount() {
      *       "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"`.
@@ -1518,13 +1625,16 @@ public com.google.protobuf.Value getValues(int index) {
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -1533,27 +1643,37 @@ public com.google.protobuf.Value getValues(int index) {
      *   * `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"]
@@ -1569,6 +1689,7 @@ public com.google.protobuf.Value getValues(int index) {
      *       "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"`.
@@ -1598,13 +1719,16 @@ public Builder setValues(int index, com.google.protobuf.Value value) {
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -1613,27 +1737,37 @@ public Builder setValues(int index, com.google.protobuf.Value value) {
      *   * `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"]
@@ -1649,6 +1783,7 @@ public Builder setValues(int index, com.google.protobuf.Value value) {
      *       "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"`.
@@ -1675,13 +1810,16 @@ public Builder setValues(int index, com.google.protobuf.Value.Builder builderFor
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -1690,27 +1828,37 @@ public Builder setValues(int index, com.google.protobuf.Value.Builder builderFor
      *   * `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"]
@@ -1726,6 +1874,7 @@ public Builder setValues(int index, com.google.protobuf.Value.Builder builderFor
      *       "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"`.
@@ -1755,13 +1904,16 @@ public Builder addValues(com.google.protobuf.Value value) {
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -1770,27 +1922,37 @@ public Builder addValues(com.google.protobuf.Value value) {
      *   * `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"]
@@ -1806,6 +1968,7 @@ public Builder addValues(com.google.protobuf.Value value) {
      *       "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"`.
@@ -1835,13 +1998,16 @@ public Builder addValues(int index, com.google.protobuf.Value value) {
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -1850,27 +2016,37 @@ public Builder addValues(int index, com.google.protobuf.Value value) {
      *   * `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"]
@@ -1886,6 +2062,7 @@ public Builder addValues(int index, com.google.protobuf.Value value) {
      *       "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"`.
@@ -1912,13 +2089,16 @@ public Builder addValues(com.google.protobuf.Value.Builder builderForValue) {
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -1927,27 +2107,37 @@ public Builder addValues(com.google.protobuf.Value.Builder builderForValue) {
      *   * `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"]
@@ -1963,6 +2153,7 @@ public Builder addValues(com.google.protobuf.Value.Builder builderForValue) {
      *       "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"`.
@@ -1989,13 +2180,16 @@ public Builder addValues(int index, com.google.protobuf.Value.Builder builderFor
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -2004,27 +2198,37 @@ public Builder addValues(int index, com.google.protobuf.Value.Builder builderFor
      *   * `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"]
@@ -2040,6 +2244,7 @@ public Builder addValues(int index, com.google.protobuf.Value.Builder builderFor
      *       "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"`.
@@ -2066,13 +2271,16 @@ public Builder addAllValues(java.lang.Iterable getValuesOrB
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -2453,27 +2731,37 @@ public java.util.List getValuesOrB
      *   * `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"]
@@ -2489,6 +2777,7 @@ public java.util.List getValuesOrB
      *       "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"`.
@@ -2508,13 +2797,16 @@ public com.google.protobuf.Value.Builder addValuesBuilder() {
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -2523,27 +2815,37 @@ public com.google.protobuf.Value.Builder addValuesBuilder() {
      *   * `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"]
@@ -2559,6 +2861,7 @@ public com.google.protobuf.Value.Builder addValuesBuilder() {
      *       "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"`.
@@ -2579,13 +2882,16 @@ public com.google.protobuf.Value.Builder addValuesBuilder(int index) {
      * 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][google.spanner.v1.StructType.fields].
+     *
      * Most values are encoded based on type as described
      * [here][google.spanner.v1.TypeCode].
+     *
      * 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][google.spanner.v1.PartialResultSet.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
@@ -2594,27 +2900,37 @@ public com.google.protobuf.Value.Builder addValuesBuilder(int index) {
      *   * `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"]
@@ -2630,6 +2946,7 @@ public com.google.protobuf.Value.Builder addValuesBuilder(int index) {
      *       "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"`.
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSetOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSetOrBuilder.java
index 60b851170fa..d0fb0a05c77 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSetOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSetOrBuilder.java
@@ -70,13 +70,16 @@ public interface PartialResultSetOrBuilder
    * 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][google.spanner.v1.StructType.fields].
+   *
    * Most values are encoded based on type as described
    * [here][google.spanner.v1.TypeCode].
+   *
    * 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][google.spanner.v1.PartialResultSet.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
@@ -85,27 +88,37 @@ public interface PartialResultSetOrBuilder
    *   * `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"]
@@ -121,6 +134,7 @@ public interface PartialResultSetOrBuilder
    *       "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"`.
@@ -138,13 +152,16 @@ public interface PartialResultSetOrBuilder
    * 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][google.spanner.v1.StructType.fields].
+   *
    * Most values are encoded based on type as described
    * [here][google.spanner.v1.TypeCode].
+   *
    * 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][google.spanner.v1.PartialResultSet.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
@@ -153,27 +170,37 @@ public interface PartialResultSetOrBuilder
    *   * `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"]
@@ -189,6 +216,7 @@ public interface PartialResultSetOrBuilder
    *       "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"`.
@@ -206,13 +234,16 @@ public interface PartialResultSetOrBuilder
    * 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][google.spanner.v1.StructType.fields].
+   *
    * Most values are encoded based on type as described
    * [here][google.spanner.v1.TypeCode].
+   *
    * 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][google.spanner.v1.PartialResultSet.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
@@ -221,27 +252,37 @@ public interface PartialResultSetOrBuilder
    *   * `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"]
@@ -257,6 +298,7 @@ public interface PartialResultSetOrBuilder
    *       "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"`.
@@ -274,13 +316,16 @@ public interface PartialResultSetOrBuilder
    * 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][google.spanner.v1.StructType.fields].
+   *
    * Most values are encoded based on type as described
    * [here][google.spanner.v1.TypeCode].
+   *
    * 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][google.spanner.v1.PartialResultSet.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
@@ -289,27 +334,37 @@ public interface PartialResultSetOrBuilder
    *   * `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"]
@@ -325,6 +380,7 @@ public interface PartialResultSetOrBuilder
    *       "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"`.
@@ -342,13 +398,16 @@ public interface PartialResultSetOrBuilder
    * 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][google.spanner.v1.StructType.fields].
+   *
    * Most values are encoded based on type as described
    * [here][google.spanner.v1.TypeCode].
+   *
    * 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][google.spanner.v1.PartialResultSet.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
@@ -357,27 +416,37 @@ public interface PartialResultSetOrBuilder
    *   * `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"]
@@ -393,6 +462,7 @@ public interface PartialResultSetOrBuilder
    *       "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"`.
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Partition.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Partition.java
index c052325fad6..c25d69935af 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Partition.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Partition.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new Partition();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto
         .internal_static_google_spanner_v1_Partition_descriptor;
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionOptions.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionOptions.java
index fb704ea89af..52c32ec4de8 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionOptions.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionOptions.java
@@ -46,11 +46,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new PartitionOptions();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto
         .internal_static_google_spanner_v1_PartitionOptions_descriptor;
@@ -74,6 +69,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * 
    * **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.
@@ -96,6 +92,7 @@ public long getPartitionSizeBytes() {
    * 
    * **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
@@ -480,6 +477,7 @@ public Builder mergeFrom(
      * 
      * **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.
@@ -499,6 +497,7 @@ public long getPartitionSizeBytes() {
      * 
      * **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.
@@ -522,6 +521,7 @@ public Builder setPartitionSizeBytes(long value) {
      * 
      * **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.
@@ -545,6 +545,7 @@ public Builder clearPartitionSizeBytes() {
      * 
      * **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
@@ -566,6 +567,7 @@ public long getMaxPartitions() {
      * 
      * **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
@@ -591,6 +593,7 @@ public Builder setMaxPartitions(long value) {
      * 
      * **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
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionOptionsOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionOptionsOrBuilder.java
index e1461014cb9..07d763cbf90 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionOptionsOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionOptionsOrBuilder.java
@@ -29,6 +29,7 @@ public interface PartitionOptionsOrBuilder
    * 
    * **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.
@@ -46,6 +47,7 @@ public interface PartitionOptionsOrBuilder
    * 
    * **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
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequest.java
index bb5809c2692..47b4bcfc6a2 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequest.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new PartitionQueryRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto
         .internal_static_google_spanner_v1_PartitionQueryRequest_descriptor;
@@ -201,6 +196,7 @@ public com.google.spanner.v1.TransactionSelectorOrBuilder getTransactionOrBuilde
    * union operator conceptually divides one or more tables into multiple
    * splits, remotely evaluates a subquery independently on each split, and
    * then unions all results.
+   *
    * This must not contain DML commands, such as INSERT, UPDATE, or
    * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a
    * PartitionedDml transaction for large, partition-friendly DML operations.
@@ -232,6 +228,7 @@ public java.lang.String getSql() {
    * union operator conceptually divides one or more tables into multiple
    * splits, remotely evaluates a subquery independently on each split, and
    * then unions all results.
+   *
    * This must not contain DML commands, such as INSERT, UPDATE, or
    * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a
    * PartitionedDml transaction for large, partition-friendly DML operations.
@@ -261,12 +258,16 @@ public com.google.protobuf.ByteString getSqlBytes() {
    *
    * 
    * 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.
    * 
* @@ -283,12 +284,16 @@ public boolean hasParams() { * *
    * 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.
    * 
* @@ -305,12 +310,16 @@ public com.google.protobuf.Struct getParams() { * *
    * 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.
    * 
* @@ -357,6 +366,7 @@ public int getParamTypesCount() { * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -385,6 +395,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -404,6 +415,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -431,6 +443,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -1340,6 +1353,7 @@ public com.google.spanner.v1.TransactionSelectorOrBuilder getTransactionOrBuilde * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * * This must not contain DML commands, such as INSERT, UPDATE, or * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a * PartitionedDml transaction for large, partition-friendly DML operations. @@ -1370,6 +1384,7 @@ public java.lang.String getSql() { * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * * This must not contain DML commands, such as INSERT, UPDATE, or * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a * PartitionedDml transaction for large, partition-friendly DML operations. @@ -1400,6 +1415,7 @@ public com.google.protobuf.ByteString getSqlBytes() { * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * * This must not contain DML commands, such as INSERT, UPDATE, or * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a * PartitionedDml transaction for large, partition-friendly DML operations. @@ -1429,6 +1445,7 @@ public Builder setSql(java.lang.String value) { * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * * This must not contain DML commands, such as INSERT, UPDATE, or * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a * PartitionedDml transaction for large, partition-friendly DML operations. @@ -1454,6 +1471,7 @@ public Builder clearSql() { * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * * This must not contain DML commands, such as INSERT, UPDATE, or * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a * PartitionedDml transaction for large, partition-friendly DML operations. @@ -1486,12 +1504,16 @@ public Builder setSqlBytes(com.google.protobuf.ByteString value) { * *
      * 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.
      * 
* @@ -1507,12 +1529,16 @@ public boolean hasParams() { * *
      * 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.
      * 
* @@ -1532,12 +1558,16 @@ public com.google.protobuf.Struct getParams() { * *
      * 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.
      * 
* @@ -1561,12 +1591,16 @@ public Builder setParams(com.google.protobuf.Struct value) { * *
      * 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.
      * 
* @@ -1587,12 +1621,16 @@ public Builder setParams(com.google.protobuf.Struct.Builder builderForValue) { * *
      * 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.
      * 
* @@ -1619,12 +1657,16 @@ public Builder mergeParams(com.google.protobuf.Struct value) { * *
      * 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.
      * 
* @@ -1645,12 +1687,16 @@ public Builder clearParams() { * *
      * 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.
      * 
* @@ -1666,12 +1712,16 @@ public com.google.protobuf.Struct.Builder getParamsBuilder() { * *
      * 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.
      * 
* @@ -1689,12 +1739,16 @@ public com.google.protobuf.StructOrBuilder getParamsOrBuilder() { * *
      * 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.
      * 
* @@ -1752,6 +1806,7 @@ public int getParamTypesCount() { * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -1780,6 +1835,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -1799,6 +1855,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -1826,6 +1883,7 @@ public java.util.Map getParamTypes * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -1859,6 +1917,7 @@ public Builder clearParamTypes() { * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -1887,6 +1946,7 @@ public java.util.Map getMutablePar * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -1913,6 +1973,7 @@ public Builder putParamTypes(java.lang.String key, com.google.spanner.v1.Type va * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequestOrBuilder.java index 7c71cf32d5e..03858c082d1 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequestOrBuilder.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequestOrBuilder.java @@ -100,6 +100,7 @@ public interface PartitionQueryRequestOrBuilder * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * * This must not contain DML commands, such as INSERT, UPDATE, or * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a * PartitionedDml transaction for large, partition-friendly DML operations. @@ -120,6 +121,7 @@ public interface PartitionQueryRequestOrBuilder * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * * This must not contain DML commands, such as INSERT, UPDATE, or * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a * PartitionedDml transaction for large, partition-friendly DML operations. @@ -136,12 +138,16 @@ public interface PartitionQueryRequestOrBuilder * *
    * 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.
    * 
* @@ -155,12 +161,16 @@ public interface PartitionQueryRequestOrBuilder * *
    * 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.
    * 
* @@ -174,12 +184,16 @@ public interface PartitionQueryRequestOrBuilder * *
    * 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.
    * 
* @@ -194,6 +208,7 @@ public interface PartitionQueryRequestOrBuilder * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -210,6 +225,7 @@ public interface PartitionQueryRequestOrBuilder * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -229,6 +245,7 @@ public interface PartitionQueryRequestOrBuilder * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -245,6 +262,7 @@ public interface PartitionQueryRequestOrBuilder * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information @@ -265,6 +283,7 @@ com.google.spanner.v1.Type getParamTypesOrDefault( * 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][google.spanner.v1.PartitionQueryRequest.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][google.spanner.v1.Type] for more information diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionReadRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionReadRequest.java index 46155e66a27..8b8d2a6b4f6 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionReadRequest.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionReadRequest.java @@ -41,7 +41,7 @@ private PartitionReadRequest() { session_ = ""; table_ = ""; index_ = ""; - columns_ = com.google.protobuf.LazyStringArrayList.EMPTY; + columns_ = com.google.protobuf.LazyStringArrayList.emptyList(); } @java.lang.Override @@ -50,11 +50,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new PartitionReadRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.SpannerProto .internal_static_google_spanner_v1_PartitionReadRequest_descriptor; @@ -287,7 +282,8 @@ public com.google.protobuf.ByteString getIndexBytes() { public static final int COLUMNS_FIELD_NUMBER = 5; @SuppressWarnings("serial") - private com.google.protobuf.LazyStringList columns_; + private com.google.protobuf.LazyStringArrayList columns_ = + com.google.protobuf.LazyStringArrayList.emptyList(); /** * * @@ -361,6 +357,7 @@ public com.google.protobuf.ByteString getColumnsBytes(int index) { * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -381,6 +378,7 @@ public boolean hasKeySet() { * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -401,6 +399,7 @@ public com.google.spanner.v1.KeySet getKeySet() { * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -744,8 +743,7 @@ public Builder clear() { } table_ = ""; index_ = ""; - columns_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000010); + columns_ = com.google.protobuf.LazyStringArrayList.emptyList(); keySet_ = null; if (keySetBuilder_ != null) { keySetBuilder_.dispose(); @@ -783,7 +781,6 @@ public com.google.spanner.v1.PartitionReadRequest build() { public com.google.spanner.v1.PartitionReadRequest buildPartial() { com.google.spanner.v1.PartitionReadRequest result = new com.google.spanner.v1.PartitionReadRequest(this); - buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } @@ -791,14 +788,6 @@ public com.google.spanner.v1.PartitionReadRequest buildPartial() { return result; } - private void buildPartialRepeatedFields(com.google.spanner.v1.PartitionReadRequest result) { - if (((bitField0_ & 0x00000010) != 0)) { - columns_ = columns_.getUnmodifiableView(); - bitField0_ = (bitField0_ & ~0x00000010); - } - result.columns_ = columns_; - } - private void buildPartial0(com.google.spanner.v1.PartitionReadRequest result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { @@ -814,6 +803,10 @@ private void buildPartial0(com.google.spanner.v1.PartitionReadRequest result) { if (((from_bitField0_ & 0x00000008) != 0)) { result.index_ = index_; } + if (((from_bitField0_ & 0x00000010) != 0)) { + columns_.makeImmutable(); + result.columns_ = columns_; + } if (((from_bitField0_ & 0x00000020) != 0)) { result.keySet_ = keySetBuilder_ == null ? keySet_ : keySetBuilder_.build(); } @@ -889,7 +882,7 @@ public Builder mergeFrom(com.google.spanner.v1.PartitionReadRequest other) { if (!other.columns_.isEmpty()) { if (columns_.isEmpty()) { columns_ = other.columns_; - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ |= 0x00000010; } else { ensureColumnsIsMutable(); columns_.addAll(other.columns_); @@ -1522,14 +1515,14 @@ public Builder setIndexBytes(com.google.protobuf.ByteString value) { return this; } - private com.google.protobuf.LazyStringList columns_ = - com.google.protobuf.LazyStringArrayList.EMPTY; + private com.google.protobuf.LazyStringArrayList columns_ = + com.google.protobuf.LazyStringArrayList.emptyList(); private void ensureColumnsIsMutable() { - if (!((bitField0_ & 0x00000010) != 0)) { + if (!columns_.isModifiable()) { columns_ = new com.google.protobuf.LazyStringArrayList(columns_); - bitField0_ |= 0x00000010; } + bitField0_ |= 0x00000010; } /** * @@ -1544,7 +1537,8 @@ private void ensureColumnsIsMutable() { * @return A list containing the columns. */ public com.google.protobuf.ProtocolStringList getColumnsList() { - return columns_.getUnmodifiableView(); + columns_.makeImmutable(); + return columns_; } /** * @@ -1613,6 +1607,7 @@ public Builder setColumns(int index, java.lang.String value) { } ensureColumnsIsMutable(); columns_.set(index, value); + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -1635,6 +1630,7 @@ public Builder addColumns(java.lang.String value) { } ensureColumnsIsMutable(); columns_.add(value); + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -1654,6 +1650,7 @@ public Builder addColumns(java.lang.String value) { public Builder addAllColumns(java.lang.Iterable values) { ensureColumnsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll(values, columns_); + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -1670,8 +1667,9 @@ public Builder addAllColumns(java.lang.Iterable values) { * @return This builder for chaining. */ public Builder clearColumns() { - columns_ = com.google.protobuf.LazyStringArrayList.EMPTY; + columns_ = com.google.protobuf.LazyStringArrayList.emptyList(); bitField0_ = (bitField0_ & ~0x00000010); + ; onChanged(); return this; } @@ -1695,6 +1693,7 @@ public Builder addColumnsBytes(com.google.protobuf.ByteString value) { checkByteStringIsUtf8(value); ensureColumnsIsMutable(); columns_.add(value); + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -1713,6 +1712,7 @@ public Builder addColumnsBytes(com.google.protobuf.ByteString value) { * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -1732,6 +1732,7 @@ public boolean hasKeySet() { * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -1755,6 +1756,7 @@ public com.google.spanner.v1.KeySet getKeySet() { * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -1782,6 +1784,7 @@ public Builder setKeySet(com.google.spanner.v1.KeySet value) { * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -1806,6 +1809,7 @@ public Builder setKeySet(com.google.spanner.v1.KeySet.Builder builderForValue) { * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -1836,6 +1840,7 @@ public Builder mergeKeySet(com.google.spanner.v1.KeySet value) { * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -1860,6 +1865,7 @@ public Builder clearKeySet() { * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -1879,6 +1885,7 @@ public com.google.spanner.v1.KeySet.Builder getKeySetBuilder() { * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -1900,6 +1907,7 @@ public com.google.spanner.v1.KeySetOrBuilder getKeySetOrBuilder() { * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionReadRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionReadRequestOrBuilder.java index 3b178f71836..2f6a285bc43 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionReadRequestOrBuilder.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionReadRequestOrBuilder.java @@ -207,6 +207,7 @@ public interface PartitionReadRequestOrBuilder * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -224,6 +225,7 @@ public interface PartitionReadRequestOrBuilder * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
@@ -241,6 +243,7 @@ public interface PartitionReadRequestOrBuilder * primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index] * is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.PartitionReadRequest.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. *
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionResponse.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionResponse.java index 5216448c858..66ba370b276 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionResponse.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionResponse.java @@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new PartitionResponse(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.SpannerProto .internal_static_google_spanner_v1_PartitionResponse_descriptor; diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PlanNode.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PlanNode.java index 21fc82e6924..6507cb2656f 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PlanNode.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PlanNode.java @@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new PlanNode(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.QueryPlanProto .internal_static_google_spanner_v1_PlanNode_descriptor; @@ -355,11 +350,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new ChildLink(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.QueryPlanProto .internal_static_google_spanner_v1_PlanNode_ChildLink_descriptor; @@ -1420,11 +1410,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new ShortRepresentation(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.QueryPlanProto .internal_static_google_spanner_v1_PlanNode_ShortRepresentation_descriptor; @@ -2624,6 +2609,7 @@ public com.google.spanner.v1.PlanNode.ShortRepresentation getShortRepresentation * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -2645,6 +2631,7 @@ public boolean hasMetadata() { * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -2666,6 +2653,7 @@ public com.google.protobuf.Struct getMetadata() { * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -4109,6 +4097,7 @@ public Builder clearShortRepresentation() { * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -4129,6 +4118,7 @@ public boolean hasMetadata() { * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -4153,6 +4143,7 @@ public com.google.protobuf.Struct getMetadata() { * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -4181,6 +4172,7 @@ public Builder setMetadata(com.google.protobuf.Struct value) { * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -4206,6 +4198,7 @@ public Builder setMetadata(com.google.protobuf.Struct.Builder builderForValue) { * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -4237,6 +4230,7 @@ public Builder mergeMetadata(com.google.protobuf.Struct value) { * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -4262,6 +4256,7 @@ public Builder clearMetadata() { * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -4282,6 +4277,7 @@ public com.google.protobuf.Struct.Builder getMetadataBuilder() { * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -4304,6 +4300,7 @@ public com.google.protobuf.StructOrBuilder getMetadataOrBuilder() { * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PlanNodeOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PlanNodeOrBuilder.java index fa57b333d5f..0ba896c5717 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PlanNodeOrBuilder.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PlanNodeOrBuilder.java @@ -188,6 +188,7 @@ public interface PlanNodeOrBuilder * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -206,6 +207,7 @@ public interface PlanNodeOrBuilder * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" @@ -224,6 +226,7 @@ public interface PlanNodeOrBuilder * Attributes relevant to the node contained in a group of key-value pairs. * For example, a Parameter Reference node could have the following * information in its metadata: + * * { * "parameter_reference": "param1", * "parameter_type": "array" diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/QueryPlan.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/QueryPlan.java index 609fb5cd3ae..54d2be319de 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/QueryPlan.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/QueryPlan.java @@ -47,11 +47,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new QueryPlan(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.QueryPlanProto .internal_static_google_spanner_v1_QueryPlan_descriptor; diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequest.java index 5b75750eabf..54129945d8c 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequest.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequest.java @@ -42,7 +42,7 @@ private ReadRequest() { session_ = ""; table_ = ""; index_ = ""; - columns_ = com.google.protobuf.LazyStringArrayList.EMPTY; + columns_ = com.google.protobuf.LazyStringArrayList.emptyList(); resumeToken_ = com.google.protobuf.ByteString.EMPTY; partitionToken_ = com.google.protobuf.ByteString.EMPTY; } @@ -53,11 +53,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new ReadRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.SpannerProto .internal_static_google_spanner_v1_ReadRequest_descriptor; @@ -290,7 +285,8 @@ public com.google.protobuf.ByteString getIndexBytes() { public static final int COLUMNS_FIELD_NUMBER = 5; @SuppressWarnings("serial") - private com.google.protobuf.LazyStringList columns_; + private com.google.protobuf.LazyStringArrayList columns_ = + com.google.protobuf.LazyStringArrayList.emptyList(); /** * * @@ -364,10 +360,12 @@ public com.google.protobuf.ByteString getColumnsBytes(int index) { * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -388,10 +386,12 @@ public boolean hasKeySet() { * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -412,10 +412,12 @@ public com.google.spanner.v1.KeySet getKeySet() { * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -549,6 +551,7 @@ public com.google.spanner.v1.RequestOptionsOrBuilder getRequestOptionsOrBuilder( *
    * If this is for a partitioned read and this field is set to `true`, the
    * request will be executed via Spanner independent compute resources.
+   *
    * If the field is set to `true` but the request does not set
    * `partition_token`, the API will return an `INVALID_ARGUMENT` error.
    * 
@@ -879,8 +882,7 @@ public Builder clear() { } table_ = ""; index_ = ""; - columns_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000010); + columns_ = com.google.protobuf.LazyStringArrayList.emptyList(); keySet_ = null; if (keySetBuilder_ != null) { keySetBuilder_.dispose(); @@ -921,7 +923,6 @@ public com.google.spanner.v1.ReadRequest build() { @java.lang.Override public com.google.spanner.v1.ReadRequest buildPartial() { com.google.spanner.v1.ReadRequest result = new com.google.spanner.v1.ReadRequest(this); - buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } @@ -929,14 +930,6 @@ public com.google.spanner.v1.ReadRequest buildPartial() { return result; } - private void buildPartialRepeatedFields(com.google.spanner.v1.ReadRequest result) { - if (((bitField0_ & 0x00000010) != 0)) { - columns_ = columns_.getUnmodifiableView(); - bitField0_ = (bitField0_ & ~0x00000010); - } - result.columns_ = columns_; - } - private void buildPartial0(com.google.spanner.v1.ReadRequest result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { @@ -952,6 +945,10 @@ private void buildPartial0(com.google.spanner.v1.ReadRequest result) { if (((from_bitField0_ & 0x00000008) != 0)) { result.index_ = index_; } + if (((from_bitField0_ & 0x00000010) != 0)) { + columns_.makeImmutable(); + result.columns_ = columns_; + } if (((from_bitField0_ & 0x00000020) != 0)) { result.keySet_ = keySetBuilder_ == null ? keySet_ : keySetBuilder_.build(); } @@ -1039,7 +1036,7 @@ public Builder mergeFrom(com.google.spanner.v1.ReadRequest other) { if (!other.columns_.isEmpty()) { if (columns_.isEmpty()) { columns_ = other.columns_; - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ |= 0x00000010; } else { ensureColumnsIsMutable(); columns_.addAll(other.columns_); @@ -1707,14 +1704,14 @@ public Builder setIndexBytes(com.google.protobuf.ByteString value) { return this; } - private com.google.protobuf.LazyStringList columns_ = - com.google.protobuf.LazyStringArrayList.EMPTY; + private com.google.protobuf.LazyStringArrayList columns_ = + com.google.protobuf.LazyStringArrayList.emptyList(); private void ensureColumnsIsMutable() { - if (!((bitField0_ & 0x00000010) != 0)) { + if (!columns_.isModifiable()) { columns_ = new com.google.protobuf.LazyStringArrayList(columns_); - bitField0_ |= 0x00000010; } + bitField0_ |= 0x00000010; } /** * @@ -1729,7 +1726,8 @@ private void ensureColumnsIsMutable() { * @return A list containing the columns. */ public com.google.protobuf.ProtocolStringList getColumnsList() { - return columns_.getUnmodifiableView(); + columns_.makeImmutable(); + return columns_; } /** * @@ -1798,6 +1796,7 @@ public Builder setColumns(int index, java.lang.String value) { } ensureColumnsIsMutable(); columns_.set(index, value); + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -1820,6 +1819,7 @@ public Builder addColumns(java.lang.String value) { } ensureColumnsIsMutable(); columns_.add(value); + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -1839,6 +1839,7 @@ public Builder addColumns(java.lang.String value) { public Builder addAllColumns(java.lang.Iterable values) { ensureColumnsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll(values, columns_); + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -1855,8 +1856,9 @@ public Builder addAllColumns(java.lang.Iterable values) { * @return This builder for chaining. */ public Builder clearColumns() { - columns_ = com.google.protobuf.LazyStringArrayList.EMPTY; + columns_ = com.google.protobuf.LazyStringArrayList.emptyList(); bitField0_ = (bitField0_ & ~0x00000010); + ; onChanged(); return this; } @@ -1880,6 +1882,7 @@ public Builder addColumnsBytes(com.google.protobuf.ByteString value) { checkByteStringIsUtf8(value); ensureColumnsIsMutable(); columns_.add(value); + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -1898,10 +1901,12 @@ public Builder addColumnsBytes(com.google.protobuf.ByteString value) { * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -1921,10 +1926,12 @@ public boolean hasKeySet() { * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -1948,10 +1955,12 @@ public com.google.spanner.v1.KeySet getKeySet() { * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -1979,10 +1988,12 @@ public Builder setKeySet(com.google.spanner.v1.KeySet value) { * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -2007,10 +2018,12 @@ public Builder setKeySet(com.google.spanner.v1.KeySet.Builder builderForValue) { * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -2041,10 +2054,12 @@ public Builder mergeKeySet(com.google.spanner.v1.KeySet value) { * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -2069,10 +2084,12 @@ public Builder clearKeySet() { * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -2092,10 +2109,12 @@ public com.google.spanner.v1.KeySet.Builder getKeySetBuilder() { * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -2117,10 +2136,12 @@ public com.google.spanner.v1.KeySetOrBuilder getKeySetOrBuilder() { * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -2527,6 +2548,7 @@ public com.google.spanner.v1.RequestOptionsOrBuilder getRequestOptionsOrBuilder( *
      * If this is for a partitioned read and this field is set to `true`, the
      * request will be executed via Spanner independent compute resources.
+     *
      * If the field is set to `true` but the request does not set
      * `partition_token`, the API will return an `INVALID_ARGUMENT` error.
      * 
@@ -2545,6 +2567,7 @@ public boolean getDataBoostEnabled() { *
      * If this is for a partitioned read and this field is set to `true`, the
      * request will be executed via Spanner independent compute resources.
+     *
      * If the field is set to `true` but the request does not set
      * `partition_token`, the API will return an `INVALID_ARGUMENT` error.
      * 
@@ -2567,6 +2590,7 @@ public Builder setDataBoostEnabled(boolean value) { *
      * If this is for a partitioned read and this field is set to `true`, the
      * request will be executed via Spanner independent compute resources.
+     *
      * If the field is set to `true` but the request does not set
      * `partition_token`, the API will return an `INVALID_ARGUMENT` error.
      * 
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequestOrBuilder.java index fc986d632d4..3bdf94f7ebd 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequestOrBuilder.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequestOrBuilder.java @@ -207,10 +207,12 @@ public interface ReadRequestOrBuilder * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -228,10 +230,12 @@ public interface ReadRequestOrBuilder * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -249,10 +253,12 @@ public interface ReadRequestOrBuilder * primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index] * is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names * index keys in [index][google.spanner.v1.ReadRequest.index]. + * * If the [partition_token][google.spanner.v1.ReadRequest.partition_token] field is empty, rows are yielded * in table primary key order (if [index][google.spanner.v1.ReadRequest.index] is empty) or index key order * (if [index][google.spanner.v1.ReadRequest.index] is non-empty). If the [partition_token][google.spanner.v1.ReadRequest.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. *
@@ -351,6 +357,7 @@ public interface ReadRequestOrBuilder *
    * If this is for a partitioned read and this field is set to `true`, the
    * request will be executed via Spanner independent compute resources.
+   *
    * If the field is set to `true` but the request does not set
    * `partition_token`, the API will return an `INVALID_ARGUMENT` error.
    * 
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RequestOptions.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RequestOptions.java index bdce7978e3a..3b43c192884 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RequestOptions.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RequestOptions.java @@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new RequestOptions(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.SpannerProto .internal_static_google_spanner_v1_RequestOptions_descriptor; @@ -75,8 +70,10 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { *
    * The relative priority for requests. Note that priority is not applicable
    * for [BeginTransaction][google.spanner.v1.Spanner.BeginTransaction].
+   *
    * The priority acts as a hint to the Cloud Spanner scheduler and does not
    * guarantee priority or order of execution. For example:
+   *
    * * Some parts of a write operation always execute at `PRIORITY_HIGH`,
    *   regardless of the specified priority. This may cause you to see an
    *   increase in high priority workload even when executing a low priority
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSet.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSet.java
index 574ee4b5d29..c2982901a17 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSet.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSet.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ResultSet();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.ResultSetProto
         .internal_static_google_spanner_v1_ResultSet_descriptor;
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetMetadata.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetMetadata.java
index 6c2261da657..a195b930323 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetMetadata.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetMetadata.java
@@ -45,11 +45,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ResultSetMetadata();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.ResultSetProto
         .internal_static_google_spanner_v1_ResultSetMetadata_descriptor;
@@ -74,6 +69,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    * Indicates the field names and types for the rows in the result
    * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
    * Users"` could return a `row_type` value like:
+   *
    *     "fields": [
    *       { "name": "UserId", "type": { "code": "INT64" } },
    *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -95,6 +91,7 @@ public boolean hasRowType() {
    * Indicates the field names and types for the rows in the result
    * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
    * Users"` could return a `row_type` value like:
+   *
    *     "fields": [
    *       { "name": "UserId", "type": { "code": "INT64" } },
    *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -116,6 +113,7 @@ public com.google.spanner.v1.StructType getRowType() {
    * Indicates the field names and types for the rows in the result
    * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
    * Users"` could return a `row_type` value like:
+   *
    *     "fields": [
    *       { "name": "UserId", "type": { "code": "INT64" } },
    *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -193,6 +191,7 @@ public com.google.spanner.v1.TransactionOrBuilder getTransactionOrBuilder() {
    * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
    * Users where UserId = @userId and UserName = @userName "` could return a
    * `undeclared_parameters` value like:
+   *
    *     "fields": [
    *       { "name": "UserId", "type": { "code": "INT64" } },
    *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -216,6 +215,7 @@ public boolean hasUndeclaredParameters() {
    * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
    * Users where UserId = @userId and UserName = @userName "` could return a
    * `undeclared_parameters` value like:
+   *
    *     "fields": [
    *       { "name": "UserId", "type": { "code": "INT64" } },
    *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -241,6 +241,7 @@ public com.google.spanner.v1.StructType getUndeclaredParameters() {
    * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
    * Users where UserId = @userId and UserName = @userName "` could return a
    * `undeclared_parameters` value like:
+   *
    *     "fields": [
    *       { "name": "UserId", "type": { "code": "INT64" } },
    *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -684,6 +685,7 @@ public Builder mergeFrom(
      * Indicates the field names and types for the rows in the result
      * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
      * Users"` could return a `row_type` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -704,6 +706,7 @@ public boolean hasRowType() {
      * Indicates the field names and types for the rows in the result
      * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
      * Users"` could return a `row_type` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -728,6 +731,7 @@ public com.google.spanner.v1.StructType getRowType() {
      * Indicates the field names and types for the rows in the result
      * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
      * Users"` could return a `row_type` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -756,6 +760,7 @@ public Builder setRowType(com.google.spanner.v1.StructType value) {
      * Indicates the field names and types for the rows in the result
      * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
      * Users"` could return a `row_type` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -781,6 +786,7 @@ public Builder setRowType(com.google.spanner.v1.StructType.Builder builderForVal
      * Indicates the field names and types for the rows in the result
      * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
      * Users"` could return a `row_type` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -812,6 +818,7 @@ public Builder mergeRowType(com.google.spanner.v1.StructType value) {
      * Indicates the field names and types for the rows in the result
      * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
      * Users"` could return a `row_type` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -837,6 +844,7 @@ public Builder clearRowType() {
      * Indicates the field names and types for the rows in the result
      * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
      * Users"` could return a `row_type` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -857,6 +865,7 @@ public com.google.spanner.v1.StructType.Builder getRowTypeBuilder() {
      * Indicates the field names and types for the rows in the result
      * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
      * Users"` could return a `row_type` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -879,6 +888,7 @@ public com.google.spanner.v1.StructTypeOrBuilder getRowTypeOrBuilder() {
      * Indicates the field names and types for the rows in the result
      * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
      * Users"` could return a `row_type` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -1111,6 +1121,7 @@ public com.google.spanner.v1.TransactionOrBuilder getTransactionOrBuilder() {
      * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
      * Users where UserId = @userId and UserName = @userName "` could return a
      * `undeclared_parameters` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -1133,6 +1144,7 @@ public boolean hasUndeclaredParameters() {
      * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
      * Users where UserId = @userId and UserName = @userName "` could return a
      * `undeclared_parameters` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -1161,6 +1173,7 @@ public com.google.spanner.v1.StructType getUndeclaredParameters() {
      * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
      * Users where UserId = @userId and UserName = @userName "` could return a
      * `undeclared_parameters` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -1191,6 +1204,7 @@ public Builder setUndeclaredParameters(com.google.spanner.v1.StructType value) {
      * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
      * Users where UserId = @userId and UserName = @userName "` could return a
      * `undeclared_parameters` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -1219,6 +1233,7 @@ public Builder setUndeclaredParameters(
      * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
      * Users where UserId = @userId and UserName = @userName "` could return a
      * `undeclared_parameters` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -1252,6 +1267,7 @@ public Builder mergeUndeclaredParameters(com.google.spanner.v1.StructType value)
      * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
      * Users where UserId = @userId and UserName = @userName "` could return a
      * `undeclared_parameters` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -1279,6 +1295,7 @@ public Builder clearUndeclaredParameters() {
      * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
      * Users where UserId = @userId and UserName = @userName "` could return a
      * `undeclared_parameters` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -1301,6 +1318,7 @@ public com.google.spanner.v1.StructType.Builder getUndeclaredParametersBuilder()
      * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
      * Users where UserId = @userId and UserName = @userName "` could return a
      * `undeclared_parameters` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -1327,6 +1345,7 @@ public com.google.spanner.v1.StructTypeOrBuilder getUndeclaredParametersOrBuilde
      * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
      * Users where UserId = @userId and UserName = @userName "` could return a
      * `undeclared_parameters` value like:
+     *
      *     "fields": [
      *       { "name": "UserId", "type": { "code": "INT64" } },
      *       { "name": "UserName", "type": { "code": "STRING" } },
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetMetadataOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetMetadataOrBuilder.java
index 38216902ce7..ec11a259891 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetMetadataOrBuilder.java
@@ -30,6 +30,7 @@ public interface ResultSetMetadataOrBuilder
    * Indicates the field names and types for the rows in the result
    * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
    * Users"` could return a `row_type` value like:
+   *
    *     "fields": [
    *       { "name": "UserId", "type": { "code": "INT64" } },
    *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -48,6 +49,7 @@ public interface ResultSetMetadataOrBuilder
    * Indicates the field names and types for the rows in the result
    * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
    * Users"` could return a `row_type` value like:
+   *
    *     "fields": [
    *       { "name": "UserId", "type": { "code": "INT64" } },
    *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -66,6 +68,7 @@ public interface ResultSetMetadataOrBuilder
    * Indicates the field names and types for the rows in the result
    * set.  For example, a SQL query like `"SELECT UserId, UserName FROM
    * Users"` could return a `row_type` value like:
+   *
    *     "fields": [
    *       { "name": "UserId", "type": { "code": "INT64" } },
    *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -123,6 +126,7 @@ public interface ResultSetMetadataOrBuilder
    * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
    * Users where UserId = @userId and UserName = @userName "` could return a
    * `undeclared_parameters` value like:
+   *
    *     "fields": [
    *       { "name": "UserId", "type": { "code": "INT64" } },
    *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -143,6 +147,7 @@ public interface ResultSetMetadataOrBuilder
    * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
    * Users where UserId = @userId and UserName = @userName "` could return a
    * `undeclared_parameters` value like:
+   *
    *     "fields": [
    *       { "name": "UserId", "type": { "code": "INT64" } },
    *       { "name": "UserName", "type": { "code": "STRING" } },
@@ -163,6 +168,7 @@ public interface ResultSetMetadataOrBuilder
    * parameters in the SQL query. For example, a SQL query like `"SELECT * FROM
    * Users where UserId = @userId and UserName = @userName "` could return a
    * `undeclared_parameters` value like:
+   *
    *     "fields": [
    *       { "name": "UserId", "type": { "code": "INT64" } },
    *       { "name": "UserName", "type": { "code": "STRING" } },
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStats.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStats.java
index 3c940cb8d13..b4472630c26 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStats.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStats.java
@@ -45,11 +45,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new ResultSetStats();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.ResultSetProto
         .internal_static_google_spanner_v1_ResultSetStats_descriptor;
@@ -66,6 +61,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
   }
 
   private int rowCountCase_ = 0;
+
+  @SuppressWarnings("serial")
   private java.lang.Object rowCount_;
 
   public enum RowCountCase
@@ -167,6 +164,7 @@ public com.google.spanner.v1.QueryPlanOrBuilder getQueryPlanOrBuilder() {
    * Aggregated statistics from the execution of the query. Only present when
    * the query is profiled. For example, a query could return the statistics as
    * follows:
+   *
    *     {
    *       "rows_returned": "3",
    *       "elapsed_time": "1.22 secs",
@@ -189,6 +187,7 @@ public boolean hasQueryStats() {
    * Aggregated statistics from the execution of the query. Only present when
    * the query is profiled. For example, a query could return the statistics as
    * follows:
+   *
    *     {
    *       "rows_returned": "3",
    *       "elapsed_time": "1.22 secs",
@@ -211,6 +210,7 @@ public com.google.protobuf.Struct getQueryStats() {
    * Aggregated statistics from the execution of the query. Only present when
    * the query is profiled. For example, a query could return the statistics as
    * follows:
+   *
    *     {
    *       "rows_returned": "3",
    *       "elapsed_time": "1.22 secs",
@@ -958,6 +958,7 @@ public com.google.spanner.v1.QueryPlanOrBuilder getQueryPlanOrBuilder() {
      * Aggregated statistics from the execution of the query. Only present when
      * the query is profiled. For example, a query could return the statistics as
      * follows:
+     *
      *     {
      *       "rows_returned": "3",
      *       "elapsed_time": "1.22 secs",
@@ -979,6 +980,7 @@ public boolean hasQueryStats() {
      * Aggregated statistics from the execution of the query. Only present when
      * the query is profiled. For example, a query could return the statistics as
      * follows:
+     *
      *     {
      *       "rows_returned": "3",
      *       "elapsed_time": "1.22 secs",
@@ -1004,6 +1006,7 @@ public com.google.protobuf.Struct getQueryStats() {
      * Aggregated statistics from the execution of the query. Only present when
      * the query is profiled. For example, a query could return the statistics as
      * follows:
+     *
      *     {
      *       "rows_returned": "3",
      *       "elapsed_time": "1.22 secs",
@@ -1033,6 +1036,7 @@ public Builder setQueryStats(com.google.protobuf.Struct value) {
      * Aggregated statistics from the execution of the query. Only present when
      * the query is profiled. For example, a query could return the statistics as
      * follows:
+     *
      *     {
      *       "rows_returned": "3",
      *       "elapsed_time": "1.22 secs",
@@ -1059,6 +1063,7 @@ public Builder setQueryStats(com.google.protobuf.Struct.Builder builderForValue)
      * Aggregated statistics from the execution of the query. Only present when
      * the query is profiled. For example, a query could return the statistics as
      * follows:
+     *
      *     {
      *       "rows_returned": "3",
      *       "elapsed_time": "1.22 secs",
@@ -1091,6 +1096,7 @@ public Builder mergeQueryStats(com.google.protobuf.Struct value) {
      * Aggregated statistics from the execution of the query. Only present when
      * the query is profiled. For example, a query could return the statistics as
      * follows:
+     *
      *     {
      *       "rows_returned": "3",
      *       "elapsed_time": "1.22 secs",
@@ -1117,6 +1123,7 @@ public Builder clearQueryStats() {
      * Aggregated statistics from the execution of the query. Only present when
      * the query is profiled. For example, a query could return the statistics as
      * follows:
+     *
      *     {
      *       "rows_returned": "3",
      *       "elapsed_time": "1.22 secs",
@@ -1138,6 +1145,7 @@ public com.google.protobuf.Struct.Builder getQueryStatsBuilder() {
      * Aggregated statistics from the execution of the query. Only present when
      * the query is profiled. For example, a query could return the statistics as
      * follows:
+     *
      *     {
      *       "rows_returned": "3",
      *       "elapsed_time": "1.22 secs",
@@ -1161,6 +1169,7 @@ public com.google.protobuf.StructOrBuilder getQueryStatsOrBuilder() {
      * Aggregated statistics from the execution of the query. Only present when
      * the query is profiled. For example, a query could return the statistics as
      * follows:
+     *
      *     {
      *       "rows_returned": "3",
      *       "elapsed_time": "1.22 secs",
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStatsOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStatsOrBuilder.java
index 9a01e754b41..049091eeb0c 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStatsOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStatsOrBuilder.java
@@ -65,6 +65,7 @@ public interface ResultSetStatsOrBuilder
    * Aggregated statistics from the execution of the query. Only present when
    * the query is profiled. For example, a query could return the statistics as
    * follows:
+   *
    *     {
    *       "rows_returned": "3",
    *       "elapsed_time": "1.22 secs",
@@ -84,6 +85,7 @@ public interface ResultSetStatsOrBuilder
    * Aggregated statistics from the execution of the query. Only present when
    * the query is profiled. For example, a query could return the statistics as
    * follows:
+   *
    *     {
    *       "rows_returned": "3",
    *       "elapsed_time": "1.22 secs",
@@ -103,6 +105,7 @@ public interface ResultSetStatsOrBuilder
    * Aggregated statistics from the execution of the query. Only present when
    * the query is profiled. For example, a query could return the statistics as
    * follows:
+   *
    *     {
    *       "rows_returned": "3",
    *       "elapsed_time": "1.22 secs",
@@ -166,5 +169,5 @@ public interface ResultSetStatsOrBuilder
    */
   long getRowCountLowerBound();
 
-  public com.google.spanner.v1.ResultSetStats.RowCountCase getRowCountCase();
+  com.google.spanner.v1.ResultSetStats.RowCountCase getRowCountCase();
 }
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RollbackRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RollbackRequest.java
index ceb4ac4591a..d079779e349 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RollbackRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/RollbackRequest.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new RollbackRequest();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto
         .internal_static_google_spanner_v1_RollbackRequest_descriptor;
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Session.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Session.java
index 60f04ef5517..30a10b81938 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Session.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Session.java
@@ -48,11 +48,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new Session();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.SpannerProto.internal_static_google_spanner_v1_Session_descriptor;
   }
@@ -159,11 +154,13 @@ public int getLabelsCount() {
    *
    * 
    * The labels for the session.
+   *
    *  * Label keys must be between 1 and 63 characters long and must conform to
    *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
    *  * Label values must be between 0 and 63 characters long and must conform
    *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
    *  * No more than 64 labels can be associated with a given session.
+   *
    * See https://goo.gl/xmQnxf for more information on and examples of labels.
    * 
* @@ -187,11 +184,13 @@ public java.util.Map getLabels() { * *
    * The labels for the session.
+   *
    *  * Label keys must be between 1 and 63 characters long and must conform to
    *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
    *  * Label values must be between 0 and 63 characters long and must conform
    *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
    *  * No more than 64 labels can be associated with a given session.
+   *
    * See https://goo.gl/xmQnxf for more information on and examples of labels.
    * 
* @@ -206,11 +205,13 @@ public java.util.Map getLabelsMap() { * *
    * The labels for the session.
+   *
    *  * Label keys must be between 1 and 63 characters long and must conform to
    *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
    *  * Label values must be between 0 and 63 characters long and must conform
    *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
    *  * No more than 64 labels can be associated with a given session.
+   *
    * See https://goo.gl/xmQnxf for more information on and examples of labels.
    * 
* @@ -232,11 +233,13 @@ public java.util.Map getLabelsMap() { * *
    * The labels for the session.
+   *
    *  * Label keys must be between 1 and 63 characters long and must conform to
    *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
    *  * Label values must be between 0 and 63 characters long and must conform
    *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
    *  * No more than 64 labels can be associated with a given session.
+   *
    * See https://goo.gl/xmQnxf for more information on and examples of labels.
    * 
* @@ -1033,11 +1036,13 @@ public int getLabelsCount() { * *
      * The labels for the session.
+     *
      *  * Label keys must be between 1 and 63 characters long and must conform to
      *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
      *  * Label values must be between 0 and 63 characters long and must conform
      *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
      *  * No more than 64 labels can be associated with a given session.
+     *
      * See https://goo.gl/xmQnxf for more information on and examples of labels.
      * 
* @@ -1061,11 +1066,13 @@ public java.util.Map getLabels() { * *
      * The labels for the session.
+     *
      *  * Label keys must be between 1 and 63 characters long and must conform to
      *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
      *  * Label values must be between 0 and 63 characters long and must conform
      *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
      *  * No more than 64 labels can be associated with a given session.
+     *
      * See https://goo.gl/xmQnxf for more information on and examples of labels.
      * 
* @@ -1080,11 +1087,13 @@ public java.util.Map getLabelsMap() { * *
      * The labels for the session.
+     *
      *  * Label keys must be between 1 and 63 characters long and must conform to
      *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
      *  * Label values must be between 0 and 63 characters long and must conform
      *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
      *  * No more than 64 labels can be associated with a given session.
+     *
      * See https://goo.gl/xmQnxf for more information on and examples of labels.
      * 
* @@ -1106,11 +1115,13 @@ public java.util.Map getLabelsMap() { * *
      * The labels for the session.
+     *
      *  * Label keys must be between 1 and 63 characters long and must conform to
      *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
      *  * Label values must be between 0 and 63 characters long and must conform
      *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
      *  * No more than 64 labels can be associated with a given session.
+     *
      * See https://goo.gl/xmQnxf for more information on and examples of labels.
      * 
* @@ -1138,11 +1149,13 @@ public Builder clearLabels() { * *
      * The labels for the session.
+     *
      *  * Label keys must be between 1 and 63 characters long and must conform to
      *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
      *  * Label values must be between 0 and 63 characters long and must conform
      *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
      *  * No more than 64 labels can be associated with a given session.
+     *
      * See https://goo.gl/xmQnxf for more information on and examples of labels.
      * 
* @@ -1166,11 +1179,13 @@ public java.util.Map getMutableLabels() { * *
      * The labels for the session.
+     *
      *  * Label keys must be between 1 and 63 characters long and must conform to
      *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
      *  * Label values must be between 0 and 63 characters long and must conform
      *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
      *  * No more than 64 labels can be associated with a given session.
+     *
      * See https://goo.gl/xmQnxf for more information on and examples of labels.
      * 
* @@ -1192,11 +1207,13 @@ public Builder putLabels(java.lang.String key, java.lang.String value) { * *
      * The labels for the session.
+     *
      *  * Label keys must be between 1 and 63 characters long and must conform to
      *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
      *  * Label values must be between 0 and 63 characters long and must conform
      *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
      *  * No more than 64 labels can be associated with a given session.
+     *
      * See https://goo.gl/xmQnxf for more information on and examples of labels.
      * 
* diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SessionName.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SessionName.java index 84eb4091a65..241081d9bda 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SessionName.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SessionName.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SessionOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SessionOrBuilder.java index 71da8b1240f..15a932664ab 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SessionOrBuilder.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SessionOrBuilder.java @@ -53,11 +53,13 @@ public interface SessionOrBuilder * *
    * The labels for the session.
+   *
    *  * Label keys must be between 1 and 63 characters long and must conform to
    *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
    *  * Label values must be between 0 and 63 characters long and must conform
    *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
    *  * No more than 64 labels can be associated with a given session.
+   *
    * See https://goo.gl/xmQnxf for more information on and examples of labels.
    * 
* @@ -69,11 +71,13 @@ public interface SessionOrBuilder * *
    * The labels for the session.
+   *
    *  * Label keys must be between 1 and 63 characters long and must conform to
    *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
    *  * Label values must be between 0 and 63 characters long and must conform
    *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
    *  * No more than 64 labels can be associated with a given session.
+   *
    * See https://goo.gl/xmQnxf for more information on and examples of labels.
    * 
* @@ -88,11 +92,13 @@ public interface SessionOrBuilder * *
    * The labels for the session.
+   *
    *  * Label keys must be between 1 and 63 characters long and must conform to
    *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
    *  * Label values must be between 0 and 63 characters long and must conform
    *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
    *  * No more than 64 labels can be associated with a given session.
+   *
    * See https://goo.gl/xmQnxf for more information on and examples of labels.
    * 
* @@ -104,11 +110,13 @@ public interface SessionOrBuilder * *
    * The labels for the session.
+   *
    *  * Label keys must be between 1 and 63 characters long and must conform to
    *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
    *  * Label values must be between 0 and 63 characters long and must conform
    *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
    *  * No more than 64 labels can be associated with a given session.
+   *
    * See https://goo.gl/xmQnxf for more information on and examples of labels.
    * 
* @@ -124,11 +132,13 @@ java.lang.String getLabelsOrDefault( * *
    * The labels for the session.
+   *
    *  * Label keys must be between 1 and 63 characters long and must conform to
    *    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
    *  * Label values must be between 0 and 63 characters long and must conform
    *    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
    *  * No more than 64 labels can be associated with a given session.
+   *
    * See https://goo.gl/xmQnxf for more information on and examples of labels.
    * 
* diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java index 4cf68b20170..eaa10048ac4 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java @@ -156,206 +156,207 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "gle/spanner/v1/mutation.proto\032\"google/sp" + "anner/v1/result_set.proto\032#google/spanne" + "r/v1/transaction.proto\032\034google/spanner/v" - + "1/type.proto\"\203\001\n\024CreateSessionRequest\0229\n" - + "\010database\030\001 \001(\tB\'\340A\002\372A!\n\037spanner.googlea" - + "pis.com/Database\0220\n\007session\030\002 \001(\0132\032.goog" - + "le.spanner.v1.SessionB\003\340A\002\"\251\001\n\032BatchCrea" - + "teSessionsRequest\0229\n\010database\030\001 \001(\tB\'\340A\002" - + "\372A!\n\037spanner.googleapis.com/Database\0224\n\020" - + "session_template\030\002 \001(\0132\032.google.spanner." - + "v1.Session\022\032\n\rsession_count\030\003 \001(\005B\003\340A\002\"J" - + "\n\033BatchCreateSessionsResponse\022+\n\007session" - + "\030\001 \003(\0132\032.google.spanner.v1.Session\"\211\003\n\007S" - + "ession\022\021\n\004name\030\001 \001(\tB\003\340A\003\0226\n\006labels\030\002 \003(" - + "\0132&.google.spanner.v1.Session.LabelsEntr" - + "y\0224\n\013create_time\030\003 \001(\0132\032.google.protobuf" - + ".TimestampB\003\340A\003\022B\n\031approximate_last_use_" - + "time\030\004 \001(\0132\032.google.protobuf.TimestampB\003" - + "\340A\003\022\024\n\014creator_role\030\005 \001(\t\032-\n\013LabelsEntry" - + "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001:t\352Aq\n\036s" - + "panner.googleapis.com/Session\022Oprojects/" - + "{project}/instances/{instance}/databases" - + "/{database}/sessions/{session}\"I\n\021GetSes" - + "sionRequest\0224\n\004name\030\001 \001(\tB&\340A\002\372A \n\036spann" - + "er.googleapis.com/Session\"\207\001\n\023ListSessio" - + "nsRequest\0229\n\010database\030\001 \001(\tB\'\340A\002\372A!\n\037spa" - + "nner.googleapis.com/Database\022\021\n\tpage_siz" - + "e\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\022\016\n\006filter\030\004 " - + "\001(\t\"]\n\024ListSessionsResponse\022,\n\010sessions\030" - + "\001 \003(\0132\032.google.spanner.v1.Session\022\027\n\017nex" - + "t_page_token\030\002 \001(\t\"L\n\024DeleteSessionReque" - + "st\0224\n\004name\030\001 \001(\tB&\340A\002\372A \n\036spanner.google" - + "apis.com/Session\"\334\001\n\016RequestOptions\022<\n\010p" - + "riority\030\001 \001(\0162*.google.spanner.v1.Reques" - + "tOptions.Priority\022\023\n\013request_tag\030\002 \001(\t\022\027" - + "\n\017transaction_tag\030\003 \001(\t\"^\n\010Priority\022\030\n\024P" - + "RIORITY_UNSPECIFIED\020\000\022\020\n\014PRIORITY_LOW\020\001\022" - + "\023\n\017PRIORITY_MEDIUM\020\002\022\021\n\rPRIORITY_HIGH\020\003\"" - + "\200\006\n\021ExecuteSqlRequest\0227\n\007session\030\001 \001(\tB&" - + "\340A\002\372A \n\036spanner.googleapis.com/Session\022;" - + "\n\013transaction\030\002 \001(\0132&.google.spanner.v1." - + "TransactionSelector\022\020\n\003sql\030\003 \001(\tB\003\340A\002\022\'\n" - + "\006params\030\004 \001(\0132\027.google.protobuf.Struct\022I" - + "\n\013param_types\030\005 \003(\01324.google.spanner.v1." - + "ExecuteSqlRequest.ParamTypesEntry\022\024\n\014res" - + "ume_token\030\006 \001(\014\022B\n\nquery_mode\030\007 \001(\0162..go" - + "ogle.spanner.v1.ExecuteSqlRequest.QueryM" - + "ode\022\027\n\017partition_token\030\010 \001(\014\022\r\n\005seqno\030\t " - + "\001(\003\022H\n\rquery_options\030\n \001(\01321.google.span" - + "ner.v1.ExecuteSqlRequest.QueryOptions\022:\n" - + "\017request_options\030\013 \001(\0132!.google.spanner." - + "v1.RequestOptions\022\032\n\022data_boost_enabled\030" - + "\020 \001(\010\032O\n\014QueryOptions\022\031\n\021optimizer_versi" - + "on\030\001 \001(\t\022$\n\034optimizer_statistics_package" - + "\030\002 \001(\t\032J\n\017ParamTypesEntry\022\013\n\003key\030\001 \001(\t\022&" - + "\n\005value\030\002 \001(\0132\027.google.spanner.v1.Type:\002" - + "8\001\".\n\tQueryMode\022\n\n\006NORMAL\020\000\022\010\n\004PLAN\020\001\022\013\n" - + "\007PROFILE\020\002\"\240\004\n\026ExecuteBatchDmlRequest\0227\n" - + "\007session\030\001 \001(\tB&\340A\002\372A \n\036spanner.googleap" - + "is.com/Session\022@\n\013transaction\030\002 \001(\0132&.go" - + "ogle.spanner.v1.TransactionSelectorB\003\340A\002" - + "\022L\n\nstatements\030\003 \003(\01323.google.spanner.v1" - + ".ExecuteBatchDmlRequest.StatementB\003\340A\002\022\022" - + "\n\005seqno\030\004 \001(\003B\003\340A\002\022:\n\017request_options\030\005 " - + "\001(\0132!.google.spanner.v1.RequestOptions\032\354" - + "\001\n\tStatement\022\020\n\003sql\030\001 \001(\tB\003\340A\002\022\'\n\006params" - + "\030\002 \001(\0132\027.google.protobuf.Struct\022X\n\013param" - + "_types\030\003 \003(\0132C.google.spanner.v1.Execute" - + "BatchDmlRequest.Statement.ParamTypesEntr" - + "y\032J\n\017ParamTypesEntry\022\013\n\003key\030\001 \001(\t\022&\n\005val" - + "ue\030\002 \001(\0132\027.google.spanner.v1.Type:\0028\001\"p\n" - + "\027ExecuteBatchDmlResponse\0221\n\013result_sets\030" - + "\001 \003(\0132\034.google.spanner.v1.ResultSet\022\"\n\006s" - + "tatus\030\002 \001(\0132\022.google.rpc.Status\"H\n\020Parti" - + "tionOptions\022\034\n\024partition_size_bytes\030\001 \001(" - + "\003\022\026\n\016max_partitions\030\002 \001(\003\"\243\003\n\025PartitionQ" - + "ueryRequest\0227\n\007session\030\001 \001(\tB&\340A\002\372A \n\036sp" - + "anner.googleapis.com/Session\022;\n\013transact" - + "ion\030\002 \001(\0132&.google.spanner.v1.Transactio" - + "nSelector\022\020\n\003sql\030\003 \001(\tB\003\340A\002\022\'\n\006params\030\004 " - + "\001(\0132\027.google.protobuf.Struct\022M\n\013param_ty" - + "pes\030\005 \003(\01328.google.spanner.v1.PartitionQ" - + "ueryRequest.ParamTypesEntry\022>\n\021partition" - + "_options\030\006 \001(\0132#.google.spanner.v1.Parti" - + "tionOptions\032J\n\017ParamTypesEntry\022\013\n\003key\030\001 " - + "\001(\t\022&\n\005value\030\002 \001(\0132\027.google.spanner.v1.T" - + "ype:\0028\001\"\261\002\n\024PartitionReadRequest\0227\n\007sess" - + "ion\030\001 \001(\tB&\340A\002\372A \n\036spanner.googleapis.co" + + "1/type.proto\"\205\001\n\024CreateSessionRequest\022:\n" + + "\010database\030\001 \001(\tB(\342A\001\002\372A!\n\037spanner.google" + + "apis.com/Database\0221\n\007session\030\002 \001(\0132\032.goo" + + "gle.spanner.v1.SessionB\004\342A\001\002\"\253\001\n\032BatchCr" + + "eateSessionsRequest\022:\n\010database\030\001 \001(\tB(\342" + + "A\001\002\372A!\n\037spanner.googleapis.com/Database\022" + + "4\n\020session_template\030\002 \001(\0132\032.google.spann" + + "er.v1.Session\022\033\n\rsession_count\030\003 \001(\005B\004\342A" + + "\001\002\"J\n\033BatchCreateSessionsResponse\022+\n\007ses" + + "sion\030\001 \003(\0132\032.google.spanner.v1.Session\"\214" + + "\003\n\007Session\022\022\n\004name\030\001 \001(\tB\004\342A\001\003\0226\n\006labels" + + "\030\002 \003(\0132&.google.spanner.v1.Session.Label" + + "sEntry\0225\n\013create_time\030\003 \001(\0132\032.google.pro" + + "tobuf.TimestampB\004\342A\001\003\022C\n\031approximate_las" + + "t_use_time\030\004 \001(\0132\032.google.protobuf.Times" + + "tampB\004\342A\001\003\022\024\n\014creator_role\030\005 \001(\t\032-\n\013Labe" + + "lsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001:" + + "t\352Aq\n\036spanner.googleapis.com/Session\022Opr" + + "ojects/{project}/instances/{instance}/da" + + "tabases/{database}/sessions/{session}\"J\n" + + "\021GetSessionRequest\0225\n\004name\030\001 \001(\tB\'\342A\001\002\372A" + + " \n\036spanner.googleapis.com/Session\"\210\001\n\023Li" + + "stSessionsRequest\022:\n\010database\030\001 \001(\tB(\342A\001" + + "\002\372A!\n\037spanner.googleapis.com/Database\022\021\n" + + "\tpage_size\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\022\016\n\006" + + "filter\030\004 \001(\t\"]\n\024ListSessionsResponse\022,\n\010" + + "sessions\030\001 \003(\0132\032.google.spanner.v1.Sessi" + + "on\022\027\n\017next_page_token\030\002 \001(\t\"M\n\024DeleteSes" + + "sionRequest\0225\n\004name\030\001 \001(\tB\'\342A\001\002\372A \n\036span" + + "ner.googleapis.com/Session\"\334\001\n\016RequestOp" + + "tions\022<\n\010priority\030\001 \001(\0162*.google.spanner" + + ".v1.RequestOptions.Priority\022\023\n\013request_t" + + "ag\030\002 \001(\t\022\027\n\017transaction_tag\030\003 \001(\t\"^\n\010Pri" + + "ority\022\030\n\024PRIORITY_UNSPECIFIED\020\000\022\020\n\014PRIOR" + + "ITY_LOW\020\001\022\023\n\017PRIORITY_MEDIUM\020\002\022\021\n\rPRIORI" + + "TY_HIGH\020\003\"\202\006\n\021ExecuteSqlRequest\0228\n\007sessi" + + "on\030\001 \001(\tB\'\342A\001\002\372A \n\036spanner.googleapis.co" + "m/Session\022;\n\013transaction\030\002 \001(\0132&.google." - + "spanner.v1.TransactionSelector\022\022\n\005table\030" - + "\003 \001(\tB\003\340A\002\022\r\n\005index\030\004 \001(\t\022\017\n\007columns\030\005 \003" - + "(\t\022/\n\007key_set\030\006 \001(\0132\031.google.spanner.v1." - + "KeySetB\003\340A\002\022>\n\021partition_options\030\t \001(\0132#" - + ".google.spanner.v1.PartitionOptions\"$\n\tP" - + "artition\022\027\n\017partition_token\030\001 \001(\014\"z\n\021Par" - + "titionResponse\0220\n\npartitions\030\001 \003(\0132\034.goo" - + "gle.spanner.v1.Partition\0223\n\013transaction\030" - + "\002 \001(\0132\036.google.spanner.v1.Transaction\"\203\003" - + "\n\013ReadRequest\0227\n\007session\030\001 \001(\tB&\340A\002\372A \n\036" - + "spanner.googleapis.com/Session\022;\n\013transa" - + "ction\030\002 \001(\0132&.google.spanner.v1.Transact" - + "ionSelector\022\022\n\005table\030\003 \001(\tB\003\340A\002\022\r\n\005index" - + "\030\004 \001(\t\022\024\n\007columns\030\005 \003(\tB\003\340A\002\022/\n\007key_set\030" - + "\006 \001(\0132\031.google.spanner.v1.KeySetB\003\340A\002\022\r\n" - + "\005limit\030\010 \001(\003\022\024\n\014resume_token\030\t \001(\014\022\027\n\017pa" - + "rtition_token\030\n \001(\014\022:\n\017request_options\030\013" - + " \001(\0132!.google.spanner.v1.RequestOptions\022" - + "\032\n\022data_boost_enabled\030\017 \001(\010\"\313\001\n\027BeginTra" - + "nsactionRequest\0227\n\007session\030\001 \001(\tB&\340A\002\372A " - + "\n\036spanner.googleapis.com/Session\022;\n\007opti" - + "ons\030\002 \001(\0132%.google.spanner.v1.Transactio" - + "nOptionsB\003\340A\002\022:\n\017request_options\030\003 \001(\0132!" - + ".google.spanner.v1.RequestOptions\"\303\002\n\rCo" - + "mmitRequest\0227\n\007session\030\001 \001(\tB&\340A\002\372A \n\036sp" - + "anner.googleapis.com/Session\022\030\n\016transact" - + "ion_id\030\002 \001(\014H\000\022G\n\026single_use_transaction" - + "\030\003 \001(\0132%.google.spanner.v1.TransactionOp" - + "tionsH\000\022.\n\tmutations\030\004 \003(\0132\033.google.span" - + "ner.v1.Mutation\022\033\n\023return_commit_stats\030\005" - + " \001(\010\022:\n\017request_options\030\006 \001(\0132!.google.s" - + "panner.v1.RequestOptionsB\r\n\013transaction\"" - + "g\n\017RollbackRequest\0227\n\007session\030\001 \001(\tB&\340A\002" - + "\372A \n\036spanner.googleapis.com/Session\022\033\n\016t" - + "ransaction_id\030\002 \001(\014B\003\340A\0022\300\026\n\007Spanner\022\246\001\n" - + "\rCreateSession\022\'.google.spanner.v1.Creat" - + "eSessionRequest\032\032.google.spanner.v1.Sess" - + "ion\"P\202\323\344\223\002?\":/v1/{database=projects/*/in" - + "stances/*/databases/*}/sessions:\001*\332A\010dat" - + "abase\022\340\001\n\023BatchCreateSessions\022-.google.s" - + "panner.v1.BatchCreateSessionsRequest\032..g" - + "oogle.spanner.v1.BatchCreateSessionsResp" - + "onse\"j\202\323\344\223\002K\"F/v1/{database=projects/*/i" - + "nstances/*/databases/*}/sessions:batchCr" - + "eate:\001*\332A\026database,session_count\022\227\001\n\nGet" - + "Session\022$.google.spanner.v1.GetSessionRe" - + "quest\032\032.google.spanner.v1.Session\"G\202\323\344\223\002" - + ":\0228/v1/{name=projects/*/instances/*/data" - + "bases/*/sessions/*}\332A\004name\022\256\001\n\014ListSessi" - + "ons\022&.google.spanner.v1.ListSessionsRequ" - + "est\032\'.google.spanner.v1.ListSessionsResp" - + "onse\"M\202\323\344\223\002<\022:/v1/{database=projects/*/i" - + "nstances/*/databases/*}/sessions\332A\010datab" - + "ase\022\231\001\n\rDeleteSession\022\'.google.spanner.v" - + "1.DeleteSessionRequest\032\026.google.protobuf" - + ".Empty\"G\202\323\344\223\002:*8/v1/{name=projects/*/ins" - + "tances/*/databases/*/sessions/*}\332A\004name\022" - + "\243\001\n\nExecuteSql\022$.google.spanner.v1.Execu" - + "teSqlRequest\032\034.google.spanner.v1.ResultS" - + "et\"Q\202\323\344\223\002K\"F/v1/{session=projects/*/inst" - + "ances/*/databases/*/sessions/*}:executeS" - + "ql:\001*\022\276\001\n\023ExecuteStreamingSql\022$.google.s" - + "panner.v1.ExecuteSqlRequest\032#.google.spa" - + "nner.v1.PartialResultSet\"Z\202\323\344\223\002T\"O/v1/{s" - + "ession=projects/*/instances/*/databases/" - + "*/sessions/*}:executeStreamingSql:\001*0\001\022\300" - + "\001\n\017ExecuteBatchDml\022).google.spanner.v1.E" - + "xecuteBatchDmlRequest\032*.google.spanner.v" - + "1.ExecuteBatchDmlResponse\"V\202\323\344\223\002P\"K/v1/{" - + "session=projects/*/instances/*/databases" - + "/*/sessions/*}:executeBatchDml:\001*\022\221\001\n\004Re" - + "ad\022\036.google.spanner.v1.ReadRequest\032\034.goo" - + "gle.spanner.v1.ResultSet\"K\202\323\344\223\002E\"@/v1/{s" - + "ession=projects/*/instances/*/databases/" - + "*/sessions/*}:read:\001*\022\254\001\n\rStreamingRead\022" - + "\036.google.spanner.v1.ReadRequest\032#.google" - + ".spanner.v1.PartialResultSet\"T\202\323\344\223\002N\"I/v" - + "1/{session=projects/*/instances/*/databa" - + "ses/*/sessions/*}:streamingRead:\001*0\001\022\311\001\n" - + "\020BeginTransaction\022*.google.spanner.v1.Be" - + "ginTransactionRequest\032\036.google.spanner.v" - + "1.Transaction\"i\202\323\344\223\002Q\"L/v1/{session=proj" - + "ects/*/instances/*/databases/*/sessions/" - + "*}:beginTransaction:\001*\332A\017session,options" - + "\022\353\001\n\006Commit\022 .google.spanner.v1.CommitRe" - + "quest\032!.google.spanner.v1.CommitResponse" - + "\"\233\001\202\323\344\223\002G\"B/v1/{session=projects/*/insta" - + "nces/*/databases/*/sessions/*}:commit:\001*" - + "\332A session,transaction_id,mutations\332A(se" - + "ssion,single_use_transaction,mutations\022\260" - + "\001\n\010Rollback\022\".google.spanner.v1.Rollback" - + "Request\032\026.google.protobuf.Empty\"h\202\323\344\223\002I\"" - + "D/v1/{session=projects/*/instances/*/dat" - + "abases/*/sessions/*}:rollback:\001*\332A\026sessi" - + "on,transaction_id\022\267\001\n\016PartitionQuery\022(.g" - + "oogle.spanner.v1.PartitionQueryRequest\032$" - + ".google.spanner.v1.PartitionResponse\"U\202\323" - + "\344\223\002O\"J/v1/{session=projects/*/instances/" - + "*/databases/*/sessions/*}:partitionQuery" - + ":\001*\022\264\001\n\rPartitionRead\022\'.google.spanner.v" - + "1.PartitionReadRequest\032$.google.spanner." - + "v1.PartitionResponse\"T\202\323\344\223\002N\"I/v1/{sessi" - + "on=projects/*/instances/*/databases/*/se" - + "ssions/*}:partitionRead:\001*\032w\312A\026spanner.g" - + "oogleapis.com\322A[https://www.googleapis.c" - + "om/auth/cloud-platform,https://www.googl" - + "eapis.com/auth/spanner.dataB\221\002\n\025com.goog" - + "le.spanner.v1B\014SpannerProtoP\001Z5cloud.goo" - + "gle.com/go/spanner/apiv1/spannerpb;spann" - + "erpb\252\002\027Google.Cloud.Spanner.V1\312\002\027Google\\" - + "Cloud\\Spanner\\V1\352\002\032Google::Cloud::Spanne" - + "r::V1\352A_\n\037spanner.googleapis.com/Databas" - + "e\022\n\021partition_options\030\006 \001(\0132#.goog" + + "le.spanner.v1.PartitionOptions\032J\n\017ParamT" + + "ypesEntry\022\013\n\003key\030\001 \001(\t\022&\n\005value\030\002 \001(\0132\027." + + "google.spanner.v1.Type:\0028\001\"\264\002\n\024Partition" + + "ReadRequest\0228\n\007session\030\001 \001(\tB\'\342A\001\002\372A \n\036s" + + "panner.googleapis.com/Session\022;\n\013transac" + + "tion\030\002 \001(\0132&.google.spanner.v1.Transacti" + + "onSelector\022\023\n\005table\030\003 \001(\tB\004\342A\001\002\022\r\n\005index" + + "\030\004 \001(\t\022\017\n\007columns\030\005 \003(\t\0220\n\007key_set\030\006 \001(\013" + + "2\031.google.spanner.v1.KeySetB\004\342A\001\002\022>\n\021par" + + "tition_options\030\t \001(\0132#.google.spanner.v1" + + ".PartitionOptions\"$\n\tPartition\022\027\n\017partit" + + "ion_token\030\001 \001(\014\"z\n\021PartitionResponse\0220\n\n" + + "partitions\030\001 \003(\0132\034.google.spanner.v1.Par" + + "tition\0223\n\013transaction\030\002 \001(\0132\036.google.spa" + + "nner.v1.Transaction\"\207\003\n\013ReadRequest\0228\n\007s" + + "ession\030\001 \001(\tB\'\342A\001\002\372A \n\036spanner.googleapi" + + "s.com/Session\022;\n\013transaction\030\002 \001(\0132&.goo" + + "gle.spanner.v1.TransactionSelector\022\023\n\005ta" + + "ble\030\003 \001(\tB\004\342A\001\002\022\r\n\005index\030\004 \001(\t\022\025\n\007column" + + "s\030\005 \003(\tB\004\342A\001\002\0220\n\007key_set\030\006 \001(\0132\031.google." + + "spanner.v1.KeySetB\004\342A\001\002\022\r\n\005limit\030\010 \001(\003\022\024" + + "\n\014resume_token\030\t \001(\014\022\027\n\017partition_token\030" + + "\n \001(\014\022:\n\017request_options\030\013 \001(\0132!.google." + + "spanner.v1.RequestOptions\022\032\n\022data_boost_" + + "enabled\030\017 \001(\010\"\315\001\n\027BeginTransactionReques" + + "t\0228\n\007session\030\001 \001(\tB\'\342A\001\002\372A \n\036spanner.goo" + + "gleapis.com/Session\022<\n\007options\030\002 \001(\0132%.g" + + "oogle.spanner.v1.TransactionOptionsB\004\342A\001" + + "\002\022:\n\017request_options\030\003 \001(\0132!.google.span" + + "ner.v1.RequestOptions\"\304\002\n\rCommitRequest\022" + + "8\n\007session\030\001 \001(\tB\'\342A\001\002\372A \n\036spanner.googl" + + "eapis.com/Session\022\030\n\016transaction_id\030\002 \001(" + + "\014H\000\022G\n\026single_use_transaction\030\003 \001(\0132%.go" + + "ogle.spanner.v1.TransactionOptionsH\000\022.\n\t" + + "mutations\030\004 \003(\0132\033.google.spanner.v1.Muta" + + "tion\022\033\n\023return_commit_stats\030\005 \001(\010\022:\n\017req" + + "uest_options\030\006 \001(\0132!.google.spanner.v1.R" + + "equestOptionsB\r\n\013transaction\"i\n\017Rollback" + + "Request\0228\n\007session\030\001 \001(\tB\'\342A\001\002\372A \n\036spann" + + "er.googleapis.com/Session\022\034\n\016transaction" + + "_id\030\002 \001(\014B\004\342A\001\0022\300\026\n\007Spanner\022\246\001\n\rCreateSe" + + "ssion\022\'.google.spanner.v1.CreateSessionR" + + "equest\032\032.google.spanner.v1.Session\"P\332A\010d" + + "atabase\202\323\344\223\002?\":/v1/{database=projects/*/" + + "instances/*/databases/*}/sessions:\001*\022\340\001\n" + + "\023BatchCreateSessions\022-.google.spanner.v1" + + ".BatchCreateSessionsRequest\032..google.spa" + + "nner.v1.BatchCreateSessionsResponse\"j\332A\026" + + "database,session_count\202\323\344\223\002K\"F/v1/{datab" + + "ase=projects/*/instances/*/databases/*}/" + + "sessions:batchCreate:\001*\022\227\001\n\nGetSession\022$" + + ".google.spanner.v1.GetSessionRequest\032\032.g" + + "oogle.spanner.v1.Session\"G\332A\004name\202\323\344\223\002:\022" + + "8/v1/{name=projects/*/instances/*/databa" + + "ses/*/sessions/*}\022\256\001\n\014ListSessions\022&.goo" + + "gle.spanner.v1.ListSessionsRequest\032\'.goo" + + "gle.spanner.v1.ListSessionsResponse\"M\332A\010" + + "database\202\323\344\223\002<\022:/v1/{database=projects/*" + + "/instances/*/databases/*}/sessions\022\231\001\n\rD" + + "eleteSession\022\'.google.spanner.v1.DeleteS" + + "essionRequest\032\026.google.protobuf.Empty\"G\332" + + "A\004name\202\323\344\223\002:*8/v1/{name=projects/*/insta" + + "nces/*/databases/*/sessions/*}\022\243\001\n\nExecu" + + "teSql\022$.google.spanner.v1.ExecuteSqlRequ" + + "est\032\034.google.spanner.v1.ResultSet\"Q\202\323\344\223\002" + + "K\"F/v1/{session=projects/*/instances/*/d" + + "atabases/*/sessions/*}:executeSql:\001*\022\276\001\n" + + "\023ExecuteStreamingSql\022$.google.spanner.v1" + + ".ExecuteSqlRequest\032#.google.spanner.v1.P" + + "artialResultSet\"Z\202\323\344\223\002T\"O/v1/{session=pr" + + "ojects/*/instances/*/databases/*/session" + + "s/*}:executeStreamingSql:\001*0\001\022\300\001\n\017Execut" + + "eBatchDml\022).google.spanner.v1.ExecuteBat" + + "chDmlRequest\032*.google.spanner.v1.Execute" + + "BatchDmlResponse\"V\202\323\344\223\002P\"K/v1/{session=p" + + "rojects/*/instances/*/databases/*/sessio" + + "ns/*}:executeBatchDml:\001*\022\221\001\n\004Read\022\036.goog" + + "le.spanner.v1.ReadRequest\032\034.google.spann" + + "er.v1.ResultSet\"K\202\323\344\223\002E\"@/v1/{session=pr" + + "ojects/*/instances/*/databases/*/session" + + "s/*}:read:\001*\022\254\001\n\rStreamingRead\022\036.google." + + "spanner.v1.ReadRequest\032#.google.spanner." + + "v1.PartialResultSet\"T\202\323\344\223\002N\"I/v1/{sessio" + + "n=projects/*/instances/*/databases/*/ses" + + "sions/*}:streamingRead:\001*0\001\022\311\001\n\020BeginTra" + + "nsaction\022*.google.spanner.v1.BeginTransa" + + "ctionRequest\032\036.google.spanner.v1.Transac" + + "tion\"i\332A\017session,options\202\323\344\223\002Q\"L/v1/{ses" + + "sion=projects/*/instances/*/databases/*/" + + "sessions/*}:beginTransaction:\001*\022\353\001\n\006Comm" + + "it\022 .google.spanner.v1.CommitRequest\032!.g" + + "oogle.spanner.v1.CommitResponse\"\233\001\332A ses" + + "sion,transaction_id,mutations\332A(session," + + "single_use_transaction,mutations\202\323\344\223\002G\"B" + + "/v1/{session=projects/*/instances/*/data" + + "bases/*/sessions/*}:commit:\001*\022\260\001\n\010Rollba" + + "ck\022\".google.spanner.v1.RollbackRequest\032\026" + + ".google.protobuf.Empty\"h\332A\026session,trans" + + "action_id\202\323\344\223\002I\"D/v1/{session=projects/*" + + "/instances/*/databases/*/sessions/*}:rol" + + "lback:\001*\022\267\001\n\016PartitionQuery\022(.google.spa" + + "nner.v1.PartitionQueryRequest\032$.google.s" + + "panner.v1.PartitionResponse\"U\202\323\344\223\002O\"J/v1" + + "/{session=projects/*/instances/*/databas" + + "es/*/sessions/*}:partitionQuery:\001*\022\264\001\n\rP" + + "artitionRead\022\'.google.spanner.v1.Partiti" + + "onReadRequest\032$.google.spanner.v1.Partit" + + "ionResponse\"T\202\323\344\223\002N\"I/v1/{session=projec" + + "ts/*/instances/*/databases/*/sessions/*}" + + ":partitionRead:\001*\032w\312A\026spanner.googleapis" + + ".com\322A[https://www.googleapis.com/auth/c" + + "loud-platform,https://www.googleapis.com" + + "/auth/spanner.dataB\221\002\n\025com.google.spanne" + + "r.v1B\014SpannerProtoP\001Z5cloud.google.com/g" + + "o/spanner/apiv1/spannerpb;spannerpb\252\002\027Go" + + "ogle.Cloud.Spanner.V1\312\002\027Google\\Cloud\\Spa" + + "nner\\V1\352\002\032Google::Cloud::Spanner::V1\352A_\n" + + "\037spanner.googleapis.com/Database\022 @@ -100,6 +96,7 @@ public com.google.protobuf.ByteString getId() { * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -119,6 +116,7 @@ public boolean hasReadTimestamp() { * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -140,6 +138,7 @@ public com.google.protobuf.Timestamp getReadTimestamp() { * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -531,6 +530,7 @@ public Builder mergeFrom( * [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql], * [Commit][google.spanner.v1.Spanner.Commit], or * [Rollback][google.spanner.v1.Spanner.Rollback] calls. + * * Single-use read-only transactions do not have IDs, because * single-use transactions do not support multiple requests. *
@@ -552,6 +552,7 @@ public com.google.protobuf.ByteString getId() { * [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql], * [Commit][google.spanner.v1.Spanner.Commit], or * [Rollback][google.spanner.v1.Spanner.Rollback] calls. + * * Single-use read-only transactions do not have IDs, because * single-use transactions do not support multiple requests. *
@@ -579,6 +580,7 @@ public Builder setId(com.google.protobuf.ByteString value) { * [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql], * [Commit][google.spanner.v1.Spanner.Commit], or * [Rollback][google.spanner.v1.Spanner.Rollback] calls. + * * Single-use read-only transactions do not have IDs, because * single-use transactions do not support multiple requests. *
@@ -607,6 +609,7 @@ public Builder clearId() { * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -625,6 +628,7 @@ public boolean hasReadTimestamp() { * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -649,6 +653,7 @@ public com.google.protobuf.Timestamp getReadTimestamp() { * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -675,6 +680,7 @@ public Builder setReadTimestamp(com.google.protobuf.Timestamp value) { * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -698,6 +704,7 @@ public Builder setReadTimestamp(com.google.protobuf.Timestamp.Builder builderFor * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -727,6 +734,7 @@ public Builder mergeReadTimestamp(com.google.protobuf.Timestamp value) { * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -750,6 +758,7 @@ public Builder clearReadTimestamp() { * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -768,6 +777,7 @@ public com.google.protobuf.Timestamp.Builder getReadTimestampBuilder() { * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -790,6 +800,7 @@ public com.google.protobuf.TimestampOrBuilder getReadTimestampOrBuilder() { * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptions.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptions.java index 85b7624ebe4..d731f85b08a 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptions.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptions.java @@ -23,18 +23,23 @@ * *
  * Transactions:
+ *
  * Each session can have at most one active transaction at a time (note that
  * standalone reads and queries use a transaction internally and do count
  * towards the one transaction limit). After the active transaction is
  * completed, the session can immediately be re-used for the next transaction.
  * It is not necessary to create a new session for each transaction.
+ *
  * Transaction modes:
+ *
  * Cloud Spanner supports three transaction modes:
+ *
  *   1. Locking read-write. This type of transaction is the only way
  *      to write data into Cloud Spanner. These transactions rely on
  *      pessimistic locking and, if necessary, two-phase commit.
  *      Locking read-write transactions may abort, requiring the
  *      application to retry.
+ *
  *   2. Snapshot read-only. Snapshot read-only transactions provide guaranteed
  *      consistency across several reads, but do not allow
  *      writes. Snapshot read-only transactions can be configured to read at
@@ -43,28 +48,35 @@
  *      guaranteed to see the effects of all transactions that have committed
  *      before the start of the read). Snapshot read-only transactions do not
  *      need to be committed.
+ *
  *      Queries on change streams must be performed with the snapshot read-only
  *      transaction mode, specifying a strong read. Please see
  *      [TransactionOptions.ReadOnly.strong][google.spanner.v1.TransactionOptions.ReadOnly.strong]
  *      for more details.
+ *
  *   3. Partitioned DML. This type of transaction is used to execute
  *      a single Partitioned DML statement. Partitioned DML partitions
  *      the key space and runs the DML statement over each partition
  *      in parallel using separate, internal transactions that commit
  *      independently. Partitioned DML transactions do not need to be
  *      committed.
+ *
  * For transactions that only read, snapshot read-only transactions
  * provide simpler semantics and are almost always faster. In
  * particular, read-only transactions do not take locks, so they do
  * not conflict with read-write transactions. As a consequence of not
  * taking locks, they also do not abort, so retry loops are not needed.
+ *
  * Transactions may only read-write data in a single database. They
  * may, however, read-write data in different tables within that
  * database.
+ *
  * Locking read-write transactions:
+ *
  * Locking transactions may be used to atomically read-modify-write
  * data anywhere in a database. This type of transaction is externally
  * consistent.
+ *
  * Clients should attempt to minimize the amount of time a transaction
  * is active. Faster transactions commit with higher probability
  * and cause less contention. Cloud Spanner attempts to keep read locks
@@ -74,87 +86,113 @@
  * [Rollback][google.spanner.v1.Spanner.Rollback]. Long periods of
  * inactivity at the client may cause Cloud Spanner to release a
  * transaction's locks and abort it.
+ *
  * Conceptually, a read-write transaction consists of zero or more
  * reads or SQL statements followed by
  * [Commit][google.spanner.v1.Spanner.Commit]. At any time before
  * [Commit][google.spanner.v1.Spanner.Commit], the client can send a
  * [Rollback][google.spanner.v1.Spanner.Rollback] request to abort the
  * transaction.
+ *
  * Semantics:
+ *
  * Cloud Spanner can commit the transaction if all read locks it acquired
  * are still valid at commit time, and it is able to acquire write
  * locks for all writes. Cloud Spanner can abort the transaction for any
  * reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
  * that the transaction has not modified any user data in Cloud Spanner.
+ *
  * Unless the transaction commits, Cloud Spanner makes no guarantees about
  * how long the transaction's locks were held for. It is an error to
  * use Cloud Spanner locks for any sort of mutual exclusion other than
  * between Cloud Spanner transactions themselves.
+ *
  * Retrying aborted transactions:
+ *
  * When a transaction aborts, the application can choose to retry the
  * whole transaction again. To maximize the chances of successfully
  * committing the retry, the client should execute the retry in the
  * same session as the original attempt. The original session's lock
  * priority increases with each consecutive abort, meaning that each
  * attempt has a slightly better chance of success than the previous.
+ *
  * Under some circumstances (for example, many transactions attempting to
  * modify the same row(s)), a transaction can abort many times in a
  * short period before successfully committing. Thus, it is not a good
  * idea to cap the number of retries a transaction can attempt;
  * instead, it is better to limit the total amount of time spent
  * retrying.
+ *
  * Idle transactions:
+ *
  * A transaction is considered idle if it has no outstanding reads or
  * SQL queries and has not started a read or SQL query within the last 10
  * seconds. Idle transactions can be aborted by Cloud Spanner so that they
  * don't hold on to locks indefinitely. If an idle transaction is aborted, the
  * commit will fail with error `ABORTED`.
+ *
  * If this behavior is undesirable, periodically executing a simple
  * SQL query in the transaction (for example, `SELECT 1`) prevents the
  * transaction from becoming idle.
+ *
  * Snapshot read-only transactions:
+ *
  * Snapshot read-only transactions provides a simpler method than
  * locking read-write transactions for doing several consistent
  * reads. However, this type of transaction does not support writes.
+ *
  * Snapshot transactions do not take locks. Instead, they work by
  * choosing a Cloud Spanner timestamp, then executing all reads at that
  * timestamp. Since they do not acquire locks, they do not block
  * concurrent read-write transactions.
+ *
  * Unlike locking read-write transactions, snapshot read-only
  * transactions never abort. They can fail if the chosen read
  * timestamp is garbage collected; however, the default garbage
  * collection policy is generous enough that most applications do not
  * need to worry about this in practice.
+ *
  * Snapshot read-only transactions do not need to call
  * [Commit][google.spanner.v1.Spanner.Commit] or
  * [Rollback][google.spanner.v1.Spanner.Rollback] (and in fact are not
  * permitted to do so).
+ *
  * To execute a snapshot transaction, the client specifies a timestamp
  * bound, which tells Cloud Spanner how to choose a read timestamp.
+ *
  * The types of timestamp bound are:
+ *
  *   - Strong (the default).
  *   - Bounded staleness.
  *   - Exact staleness.
+ *
  * If the Cloud Spanner database to be read is geographically distributed,
  * stale read-only transactions can execute more quickly than strong
  * or read-write transactions, because they are able to execute far
  * from the leader replica.
+ *
  * Each type of timestamp bound is discussed in detail below.
+ *
  * Strong: Strong reads are guaranteed to see the effects of all transactions
  * that have committed before the start of the read. Furthermore, all
  * rows yielded by a single read are consistent with each other -- if
  * any part of the read observes a transaction, all parts of the read
  * see the transaction.
+ *
  * Strong reads are not repeatable: two consecutive strong read-only
  * transactions might return inconsistent results if there are
  * concurrent writes. If consistency across reads is required, the
  * reads should be executed within a transaction or at an exact read
  * timestamp.
+ *
  * Queries on change streams (see below for more details) must also specify
  * the strong read timestamp bound.
+ *
  * See
  * [TransactionOptions.ReadOnly.strong][google.spanner.v1.TransactionOptions.ReadOnly.strong].
+ *
  * Exact staleness:
+ *
  * These timestamp bounds execute reads at a user-specified
  * timestamp. Reads at a timestamp are guaranteed to see a consistent
  * prefix of the global transaction history: they observe
@@ -163,42 +201,54 @@
  * transactions with a larger commit timestamp. They will block until
  * all conflicting transactions that may be assigned commit timestamps
  * <= the read timestamp have finished.
+ *
  * The timestamp can either be expressed as an absolute Cloud Spanner commit
  * timestamp or a staleness relative to the current time.
+ *
  * These modes do not require a "negotiation phase" to pick a
  * timestamp. As a result, they execute slightly faster than the
  * equivalent boundedly stale concurrency modes. On the other hand,
  * boundedly stale reads usually return fresher results.
+ *
  * See
  * [TransactionOptions.ReadOnly.read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.read_timestamp]
  * and
  * [TransactionOptions.ReadOnly.exact_staleness][google.spanner.v1.TransactionOptions.ReadOnly.exact_staleness].
+ *
  * Bounded staleness:
+ *
  * Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
  * subject to a user-provided staleness bound. Cloud Spanner chooses the
  * newest timestamp within the staleness bound that allows execution
  * of the reads at the closest available replica without blocking.
+ *
  * All rows yielded are consistent with each other -- if any part of
  * the read observes a transaction, all parts of the read see the
  * transaction. Boundedly stale reads are not repeatable: two stale
  * reads, even if they use the same staleness bound, can execute at
  * different timestamps and thus return inconsistent results.
+ *
  * Boundedly stale reads execute in two phases: the first phase
  * negotiates a timestamp among all replicas needed to serve the
  * read. In the second phase, reads are executed at the negotiated
  * timestamp.
+ *
  * As a result of the two phase execution, bounded staleness reads are
  * usually a little slower than comparable exact staleness
  * reads. However, they are typically able to return fresher
  * results, and are more likely to execute at the closest replica.
+ *
  * Because the timestamp negotiation requires up-front knowledge of
  * which rows will be read, it can only be used with single-use
  * read-only transactions.
+ *
  * See
  * [TransactionOptions.ReadOnly.max_staleness][google.spanner.v1.TransactionOptions.ReadOnly.max_staleness]
  * and
  * [TransactionOptions.ReadOnly.min_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.min_read_timestamp].
+ *
  * Old read timestamps and garbage collection:
+ *
  * Cloud Spanner continuously garbage collects deleted and overwritten data
  * in the background to reclaim storage space. This process is known
  * as "version GC". By default, version GC reclaims versions after they
@@ -207,18 +257,23 @@
  * restriction also applies to in-progress reads and/or SQL queries whose
  * timestamp become too old while executing. Reads and SQL queries with
  * too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+ *
  * You can configure and extend the `VERSION_RETENTION_PERIOD` of a
  * database up to a period as long as one week, which allows Cloud Spanner
  * to perform reads up to one week in the past.
+ *
  * Querying change Streams:
+ *
  * A Change Stream is a schema object that can be configured to watch data
  * changes on the entire database, a set of tables, or a set of columns
  * in a database.
+ *
  * When a change stream is created, Spanner automatically defines a
  * corresponding SQL Table-Valued Function (TVF) that can be used to query
  * the change records in the associated change stream using the
  * ExecuteStreamingSql API. The name of the TVF for a change stream is
  * generated from the name of the change stream: READ_<change_stream_name>.
+ *
  * All queries on change stream TVFs must be executed using the
  * ExecuteStreamingSql API with a single-use read-only transaction with a
  * strong read-only timestamp_bound. The change stream TVF allows users to
@@ -226,34 +281,44 @@
  * interest. All change records within the retention period is accessible
  * using the strong read-only timestamp_bound. All other TransactionOptions
  * are invalid for change stream queries.
+ *
  * In addition, if TransactionOptions.read_only.return_read_timestamp is set
  * to true, a special value of 2^63 - 2 will be returned in the
  * [Transaction][google.spanner.v1.Transaction] message that describes the
  * transaction, instead of a valid read timestamp. This special value should be
  * discarded and not used for any subsequent queries.
+ *
  * Please see https://cloud.google.com/spanner/docs/change-streams
  * for more details on how to query the change stream TVFs.
+ *
  * Partitioned DML transactions:
+ *
  * Partitioned DML transactions are used to execute DML statements with a
  * different execution strategy that provides different, and often better,
  * scalability properties for large, table-wide operations than DML in a
  * ReadWrite transaction. Smaller scoped statements, such as an OLTP workload,
  * should prefer using ReadWrite transactions.
+ *
  * Partitioned DML partitions the keyspace and runs the DML statement on each
  * partition in separate, internal transactions. These transactions commit
  * automatically when complete, and run independently from one another.
+ *
  * To reduce lock contention, this execution strategy only acquires read locks
  * on rows that match the WHERE clause of the statement. Additionally, the
  * smaller per-partition transactions hold locks for less time.
+ *
  * That said, Partitioned DML is not a drop-in replacement for standard DML used
  * in ReadWrite transactions.
+ *
  *  - The DML statement must be fully-partitionable. Specifically, the statement
  *    must be expressible as the union of many statements which each access only
  *    a single row of the table.
+ *
  *  - The statement is not applied atomically to all rows of the table. Rather,
  *    the statement is applied atomically to partitions of the table, in
  *    independent transactions. Secondary index rows are updated atomically
  *    with the base table rows.
+ *
  *  - Partitioned DML does not guarantee exactly-once execution semantics
  *    against a partition. The statement will be applied at least once to each
  *    partition. It is strongly recommended that the DML statement should be
@@ -261,19 +326,23 @@
  *    dangerous to run a statement such as
  *    `UPDATE table SET column = column + 1` as it could be run multiple times
  *    against some rows.
+ *
  *  - The partitions are committed automatically - there is no support for
  *    Commit or Rollback. If the call returns an error, or if the client issuing
  *    the ExecuteSql call dies, it is possible that some rows had the statement
  *    executed on them successfully. It is also possible that statement was
  *    never executed against other rows.
+ *
  *  - Partitioned DML transactions may only contain the execution of a single
  *    DML statement via ExecuteSql or ExecuteStreamingSql.
+ *
  *  - If any error is encountered during the execution of the partitioned DML
  *    operation (for instance, a UNIQUE INDEX violation, division by zero, or a
  *    value that cannot be stored due to schema constraints), then the
  *    operation is stopped at that point and an error is returned. It is
  *    possible that at this point, some partitions have been committed (or even
  *    committed multiple times), and other partitions have not been run at all.
+ *
  * Given the above, Partitioned DML is good fit for large, database-wide,
  * operations that are idempotent, such as deleting old rows from a very large
  * table.
@@ -299,11 +368,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
     return new TransactionOptions();
   }
 
-  @java.lang.Override
-  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-    return this.unknownFields;
-  }
-
   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     return com.google.spanner.v1.TransactionProto
         .internal_static_google_spanner_v1_TransactionOptions_descriptor;
@@ -379,11 +443,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
       return new ReadWrite();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-      return this.unknownFields;
-    }
-
     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       return com.google.spanner.v1.TransactionProto
           .internal_static_google_spanner_v1_TransactionOptions_ReadWrite_descriptor;
@@ -415,6 +474,7 @@ public enum ReadLockMode implements com.google.protobuf.ProtocolMessageEnum {
        *
        * 
        * Default value.
+       *
        * If the value is not specified, the pessimistic read lock is used.
        * 
* @@ -426,6 +486,7 @@ public enum ReadLockMode implements com.google.protobuf.ProtocolMessageEnum { * *
        * Pessimistic lock mode.
+       *
        * Read locks are acquired immediately on read.
        * 
* @@ -437,6 +498,7 @@ public enum ReadLockMode implements com.google.protobuf.ProtocolMessageEnum { * *
        * 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.
@@ -453,6 +515,7 @@ public enum ReadLockMode implements com.google.protobuf.ProtocolMessageEnum {
        *
        * 
        * Default value.
+       *
        * If the value is not specified, the pessimistic read lock is used.
        * 
* @@ -464,6 +527,7 @@ public enum ReadLockMode implements com.google.protobuf.ProtocolMessageEnum { * *
        * Pessimistic lock mode.
+       *
        * Read locks are acquired immediately on read.
        * 
* @@ -475,6 +539,7 @@ public enum ReadLockMode implements com.google.protobuf.ProtocolMessageEnum { * *
        * 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.
@@ -1151,11 +1216,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
       return new PartitionedDml();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
-      return this.unknownFields;
-    }
-
     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       return com.google.spanner.v1.TransactionProto
           .internal_static_google_spanner_v1_TransactionOptions_PartitionedDml_descriptor;
@@ -1585,10 +1645,13 @@ public interface ReadOnlyOrBuilder
      *
      * 
      * Executes all reads at a timestamp >= `min_read_timestamp`.
+     *
      * This is useful for requesting fresher data than some previous
      * read, or data that is fresh enough to observe the effects of some
      * previously committed transaction whose timestamp is known.
+     *
      * Note that this option can only be used in single-use transactions.
+     *
      * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
      * Example: `"2014-10-02T15:01:23.045123456Z"`.
      * 
@@ -1603,10 +1666,13 @@ public interface ReadOnlyOrBuilder * *
      * Executes all reads at a timestamp >= `min_read_timestamp`.
+     *
      * This is useful for requesting fresher data than some previous
      * read, or data that is fresh enough to observe the effects of some
      * previously committed transaction whose timestamp is known.
+     *
      * Note that this option can only be used in single-use transactions.
+     *
      * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
      * Example: `"2014-10-02T15:01:23.045123456Z"`.
      * 
@@ -1621,10 +1687,13 @@ public interface ReadOnlyOrBuilder * *
      * Executes all reads at a timestamp >= `min_read_timestamp`.
+     *
      * This is useful for requesting fresher data than some previous
      * read, or data that is fresh enough to observe the effects of some
      * previously committed transaction whose timestamp is known.
+     *
      * Note that this option can only be used in single-use transactions.
+     *
      * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
      * Example: `"2014-10-02T15:01:23.045123456Z"`.
      * 
@@ -1643,9 +1712,11 @@ public interface ReadOnlyOrBuilder * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. *
@@ -1665,9 +1736,11 @@ public interface ReadOnlyOrBuilder * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. *
@@ -1687,9 +1760,11 @@ public interface ReadOnlyOrBuilder * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. *
@@ -1707,9 +1782,11 @@ public interface ReadOnlyOrBuilder * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -1728,9 +1805,11 @@ public interface ReadOnlyOrBuilder * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -1749,9 +1828,11 @@ public interface ReadOnlyOrBuilder * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -1766,11 +1847,13 @@ public interface ReadOnlyOrBuilder *
      * Executes all reads at a timestamp that is `exact_staleness`
      * old. The timestamp is chosen soon after the read is started.
+     *
      * Guarantees that all writes that have committed more than the
      * specified number of seconds ago are visible. Because Cloud Spanner
      * chooses the exact timestamp, this mode works even if the client's
      * local clock is substantially skewed from Cloud Spanner commit
      * timestamps.
+     *
      * Useful for reading at nearby replicas without the distributed
      * timestamp negotiation overhead of `max_staleness`.
      * 
@@ -1786,11 +1869,13 @@ public interface ReadOnlyOrBuilder *
      * Executes all reads at a timestamp that is `exact_staleness`
      * old. The timestamp is chosen soon after the read is started.
+     *
      * Guarantees that all writes that have committed more than the
      * specified number of seconds ago are visible. Because Cloud Spanner
      * chooses the exact timestamp, this mode works even if the client's
      * local clock is substantially skewed from Cloud Spanner commit
      * timestamps.
+     *
      * Useful for reading at nearby replicas without the distributed
      * timestamp negotiation overhead of `max_staleness`.
      * 
@@ -1806,11 +1891,13 @@ public interface ReadOnlyOrBuilder *
      * Executes all reads at a timestamp that is `exact_staleness`
      * old. The timestamp is chosen soon after the read is started.
+     *
      * Guarantees that all writes that have committed more than the
      * specified number of seconds ago are visible. Because Cloud Spanner
      * chooses the exact timestamp, this mode works even if the client's
      * local clock is substantially skewed from Cloud Spanner commit
      * timestamps.
+     *
      * Useful for reading at nearby replicas without the distributed
      * timestamp negotiation overhead of `max_staleness`.
      * 
@@ -1834,8 +1921,7 @@ public interface ReadOnlyOrBuilder */ boolean getReturnReadTimestamp(); - public com.google.spanner.v1.TransactionOptions.ReadOnly.TimestampBoundCase - getTimestampBoundCase(); + com.google.spanner.v1.TransactionOptions.ReadOnly.TimestampBoundCase getTimestampBoundCase(); } /** * @@ -1864,11 +1950,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new ReadOnly(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.TransactionProto .internal_static_google_spanner_v1_TransactionOptions_ReadOnly_descriptor; @@ -1885,6 +1966,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } private int timestampBoundCase_ = 0; + + @SuppressWarnings("serial") private java.lang.Object timestampBound_; public enum TimestampBoundCase @@ -1983,10 +2066,13 @@ public boolean getStrong() { * *
      * Executes all reads at a timestamp >= `min_read_timestamp`.
+     *
      * This is useful for requesting fresher data than some previous
      * read, or data that is fresh enough to observe the effects of some
      * previously committed transaction whose timestamp is known.
+     *
      * Note that this option can only be used in single-use transactions.
+     *
      * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
      * Example: `"2014-10-02T15:01:23.045123456Z"`.
      * 
@@ -2004,10 +2090,13 @@ public boolean hasMinReadTimestamp() { * *
      * Executes all reads at a timestamp >= `min_read_timestamp`.
+     *
      * This is useful for requesting fresher data than some previous
      * read, or data that is fresh enough to observe the effects of some
      * previously committed transaction whose timestamp is known.
+     *
      * Note that this option can only be used in single-use transactions.
+     *
      * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
      * Example: `"2014-10-02T15:01:23.045123456Z"`.
      * 
@@ -2028,10 +2117,13 @@ public com.google.protobuf.Timestamp getMinReadTimestamp() { * *
      * Executes all reads at a timestamp >= `min_read_timestamp`.
+     *
      * This is useful for requesting fresher data than some previous
      * read, or data that is fresh enough to observe the effects of some
      * previously committed transaction whose timestamp is known.
+     *
      * Note that this option can only be used in single-use transactions.
+     *
      * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
      * Example: `"2014-10-02T15:01:23.045123456Z"`.
      * 
@@ -2057,9 +2149,11 @@ public com.google.protobuf.TimestampOrBuilder getMinReadTimestampOrBuilder() { * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. *
@@ -2082,9 +2176,11 @@ public boolean hasMaxStaleness() { * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. *
@@ -2110,9 +2206,11 @@ public com.google.protobuf.Duration getMaxStaleness() { * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. *
@@ -2137,9 +2235,11 @@ public com.google.protobuf.DurationOrBuilder getMaxStalenessOrBuilder() { * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -2161,9 +2261,11 @@ public boolean hasReadTimestamp() { * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -2188,9 +2290,11 @@ public com.google.protobuf.Timestamp getReadTimestamp() { * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. * @@ -2212,11 +2316,13 @@ public com.google.protobuf.TimestampOrBuilder getReadTimestampOrBuilder() { *
      * Executes all reads at a timestamp that is `exact_staleness`
      * old. The timestamp is chosen soon after the read is started.
+     *
      * Guarantees that all writes that have committed more than the
      * specified number of seconds ago are visible. Because Cloud Spanner
      * chooses the exact timestamp, this mode works even if the client's
      * local clock is substantially skewed from Cloud Spanner commit
      * timestamps.
+     *
      * Useful for reading at nearby replicas without the distributed
      * timestamp negotiation overhead of `max_staleness`.
      * 
@@ -2235,11 +2341,13 @@ public boolean hasExactStaleness() { *
      * Executes all reads at a timestamp that is `exact_staleness`
      * old. The timestamp is chosen soon after the read is started.
+     *
      * Guarantees that all writes that have committed more than the
      * specified number of seconds ago are visible. Because Cloud Spanner
      * chooses the exact timestamp, this mode works even if the client's
      * local clock is substantially skewed from Cloud Spanner commit
      * timestamps.
+     *
      * Useful for reading at nearby replicas without the distributed
      * timestamp negotiation overhead of `max_staleness`.
      * 
@@ -2261,11 +2369,13 @@ public com.google.protobuf.Duration getExactStaleness() { *
      * Executes all reads at a timestamp that is `exact_staleness`
      * old. The timestamp is chosen soon after the read is started.
+     *
      * Guarantees that all writes that have committed more than the
      * specified number of seconds ago are visible. Because Cloud Spanner
      * chooses the exact timestamp, this mode works even if the client's
      * local clock is substantially skewed from Cloud Spanner commit
      * timestamps.
+     *
      * Useful for reading at nearby replicas without the distributed
      * timestamp negotiation overhead of `max_staleness`.
      * 
@@ -2921,10 +3031,13 @@ public Builder clearStrong() { * *
        * Executes all reads at a timestamp >= `min_read_timestamp`.
+       *
        * This is useful for requesting fresher data than some previous
        * read, or data that is fresh enough to observe the effects of some
        * previously committed transaction whose timestamp is known.
+       *
        * Note that this option can only be used in single-use transactions.
+       *
        * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
        * Example: `"2014-10-02T15:01:23.045123456Z"`.
        * 
@@ -2942,10 +3055,13 @@ public boolean hasMinReadTimestamp() { * *
        * Executes all reads at a timestamp >= `min_read_timestamp`.
+       *
        * This is useful for requesting fresher data than some previous
        * read, or data that is fresh enough to observe the effects of some
        * previously committed transaction whose timestamp is known.
+       *
        * Note that this option can only be used in single-use transactions.
+       *
        * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
        * Example: `"2014-10-02T15:01:23.045123456Z"`.
        * 
@@ -2973,10 +3089,13 @@ public com.google.protobuf.Timestamp getMinReadTimestamp() { * *
        * Executes all reads at a timestamp >= `min_read_timestamp`.
+       *
        * This is useful for requesting fresher data than some previous
        * read, or data that is fresh enough to observe the effects of some
        * previously committed transaction whose timestamp is known.
+       *
        * Note that this option can only be used in single-use transactions.
+       *
        * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
        * Example: `"2014-10-02T15:01:23.045123456Z"`.
        * 
@@ -3001,10 +3120,13 @@ public Builder setMinReadTimestamp(com.google.protobuf.Timestamp value) { * *
        * Executes all reads at a timestamp >= `min_read_timestamp`.
+       *
        * This is useful for requesting fresher data than some previous
        * read, or data that is fresh enough to observe the effects of some
        * previously committed transaction whose timestamp is known.
+       *
        * Note that this option can only be used in single-use transactions.
+       *
        * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
        * Example: `"2014-10-02T15:01:23.045123456Z"`.
        * 
@@ -3026,10 +3148,13 @@ public Builder setMinReadTimestamp(com.google.protobuf.Timestamp.Builder builder * *
        * Executes all reads at a timestamp >= `min_read_timestamp`.
+       *
        * This is useful for requesting fresher data than some previous
        * read, or data that is fresh enough to observe the effects of some
        * previously committed transaction whose timestamp is known.
+       *
        * Note that this option can only be used in single-use transactions.
+       *
        * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
        * Example: `"2014-10-02T15:01:23.045123456Z"`.
        * 
@@ -3064,10 +3189,13 @@ public Builder mergeMinReadTimestamp(com.google.protobuf.Timestamp value) { * *
        * Executes all reads at a timestamp >= `min_read_timestamp`.
+       *
        * This is useful for requesting fresher data than some previous
        * read, or data that is fresh enough to observe the effects of some
        * previously committed transaction whose timestamp is known.
+       *
        * Note that this option can only be used in single-use transactions.
+       *
        * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
        * Example: `"2014-10-02T15:01:23.045123456Z"`.
        * 
@@ -3095,10 +3223,13 @@ public Builder clearMinReadTimestamp() { * *
        * Executes all reads at a timestamp >= `min_read_timestamp`.
+       *
        * This is useful for requesting fresher data than some previous
        * read, or data that is fresh enough to observe the effects of some
        * previously committed transaction whose timestamp is known.
+       *
        * Note that this option can only be used in single-use transactions.
+       *
        * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
        * Example: `"2014-10-02T15:01:23.045123456Z"`.
        * 
@@ -3113,10 +3244,13 @@ public com.google.protobuf.Timestamp.Builder getMinReadTimestampBuilder() { * *
        * Executes all reads at a timestamp >= `min_read_timestamp`.
+       *
        * This is useful for requesting fresher data than some previous
        * read, or data that is fresh enough to observe the effects of some
        * previously committed transaction whose timestamp is known.
+       *
        * Note that this option can only be used in single-use transactions.
+       *
        * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
        * Example: `"2014-10-02T15:01:23.045123456Z"`.
        * 
@@ -3139,10 +3273,13 @@ public com.google.protobuf.TimestampOrBuilder getMinReadTimestampOrBuilder() { * *
        * Executes all reads at a timestamp >= `min_read_timestamp`.
+       *
        * This is useful for requesting fresher data than some previous
        * read, or data that is fresh enough to observe the effects of some
        * previously committed transaction whose timestamp is known.
+       *
        * Note that this option can only be used in single-use transactions.
+       *
        * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
        * Example: `"2014-10-02T15:01:23.045123456Z"`.
        * 
@@ -3188,9 +3325,11 @@ public com.google.protobuf.TimestampOrBuilder getMinReadTimestampOrBuilder() { * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. * @@ -3213,9 +3352,11 @@ public boolean hasMaxStaleness() { * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. * @@ -3248,9 +3389,11 @@ public com.google.protobuf.Duration getMaxStaleness() { * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. * @@ -3280,9 +3423,11 @@ public Builder setMaxStaleness(com.google.protobuf.Duration value) { * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. * @@ -3309,9 +3454,11 @@ public Builder setMaxStaleness(com.google.protobuf.Duration.Builder builderForVa * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. * @@ -3351,9 +3498,11 @@ public Builder mergeMaxStaleness(com.google.protobuf.Duration value) { * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. * @@ -3386,9 +3535,11 @@ public Builder clearMaxStaleness() { * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. * @@ -3408,9 +3559,11 @@ public com.google.protobuf.Duration.Builder getMaxStalenessBuilder() { * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. * @@ -3438,9 +3591,11 @@ public com.google.protobuf.DurationOrBuilder getMaxStalenessOrBuilder() { * Cloud Spanner chooses the exact timestamp, this mode works even if * the client's local clock is substantially skewed from Cloud Spanner * commit timestamps. + * * Useful for reading the freshest data available at a nearby * replica, while bounding the possible staleness if the local * replica has fallen behind. + * * Note that this option can only be used in single-use * transactions. * @@ -3485,9 +3640,11 @@ public com.google.protobuf.DurationOrBuilder getMaxStalenessOrBuilder() { * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. * @@ -3509,9 +3666,11 @@ public boolean hasReadTimestamp() { * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. * @@ -3543,9 +3702,11 @@ public com.google.protobuf.Timestamp getReadTimestamp() { * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. * @@ -3574,9 +3735,11 @@ public Builder setReadTimestamp(com.google.protobuf.Timestamp value) { * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. * @@ -3602,9 +3765,11 @@ public Builder setReadTimestamp(com.google.protobuf.Timestamp.Builder builderFor * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. * @@ -3643,9 +3808,11 @@ public Builder mergeReadTimestamp(com.google.protobuf.Timestamp value) { * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. * @@ -3677,9 +3844,11 @@ public Builder clearReadTimestamp() { * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. * @@ -3698,9 +3867,11 @@ public com.google.protobuf.Timestamp.Builder getReadTimestampBuilder() { * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. * @@ -3727,9 +3898,11 @@ public com.google.protobuf.TimestampOrBuilder getReadTimestampOrBuilder() { * the same timestamp always returns the same data. If the * timestamp is in the future, the read will block until the * specified timestamp, modulo the read's deadline. + * * Useful for large scale consistent reads such as mapreduces, or * for coordinating many reads against a consistent snapshot of the * data. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. * @@ -3771,11 +3944,13 @@ public com.google.protobuf.TimestampOrBuilder getReadTimestampOrBuilder() { *
        * Executes all reads at a timestamp that is `exact_staleness`
        * old. The timestamp is chosen soon after the read is started.
+       *
        * Guarantees that all writes that have committed more than the
        * specified number of seconds ago are visible. Because Cloud Spanner
        * chooses the exact timestamp, this mode works even if the client's
        * local clock is substantially skewed from Cloud Spanner commit
        * timestamps.
+       *
        * Useful for reading at nearby replicas without the distributed
        * timestamp negotiation overhead of `max_staleness`.
        * 
@@ -3794,11 +3969,13 @@ public boolean hasExactStaleness() { *
        * Executes all reads at a timestamp that is `exact_staleness`
        * old. The timestamp is chosen soon after the read is started.
+       *
        * Guarantees that all writes that have committed more than the
        * specified number of seconds ago are visible. Because Cloud Spanner
        * chooses the exact timestamp, this mode works even if the client's
        * local clock is substantially skewed from Cloud Spanner commit
        * timestamps.
+       *
        * Useful for reading at nearby replicas without the distributed
        * timestamp negotiation overhead of `max_staleness`.
        * 
@@ -3827,11 +4004,13 @@ public com.google.protobuf.Duration getExactStaleness() { *
        * Executes all reads at a timestamp that is `exact_staleness`
        * old. The timestamp is chosen soon after the read is started.
+       *
        * Guarantees that all writes that have committed more than the
        * specified number of seconds ago are visible. Because Cloud Spanner
        * chooses the exact timestamp, this mode works even if the client's
        * local clock is substantially skewed from Cloud Spanner commit
        * timestamps.
+       *
        * Useful for reading at nearby replicas without the distributed
        * timestamp negotiation overhead of `max_staleness`.
        * 
@@ -3857,11 +4036,13 @@ public Builder setExactStaleness(com.google.protobuf.Duration value) { *
        * Executes all reads at a timestamp that is `exact_staleness`
        * old. The timestamp is chosen soon after the read is started.
+       *
        * Guarantees that all writes that have committed more than the
        * specified number of seconds ago are visible. Because Cloud Spanner
        * chooses the exact timestamp, this mode works even if the client's
        * local clock is substantially skewed from Cloud Spanner commit
        * timestamps.
+       *
        * Useful for reading at nearby replicas without the distributed
        * timestamp negotiation overhead of `max_staleness`.
        * 
@@ -3884,11 +4065,13 @@ public Builder setExactStaleness(com.google.protobuf.Duration.Builder builderFor *
        * Executes all reads at a timestamp that is `exact_staleness`
        * old. The timestamp is chosen soon after the read is started.
+       *
        * Guarantees that all writes that have committed more than the
        * specified number of seconds ago are visible. Because Cloud Spanner
        * chooses the exact timestamp, this mode works even if the client's
        * local clock is substantially skewed from Cloud Spanner commit
        * timestamps.
+       *
        * Useful for reading at nearby replicas without the distributed
        * timestamp negotiation overhead of `max_staleness`.
        * 
@@ -3924,11 +4107,13 @@ public Builder mergeExactStaleness(com.google.protobuf.Duration value) { *
        * Executes all reads at a timestamp that is `exact_staleness`
        * old. The timestamp is chosen soon after the read is started.
+       *
        * Guarantees that all writes that have committed more than the
        * specified number of seconds ago are visible. Because Cloud Spanner
        * chooses the exact timestamp, this mode works even if the client's
        * local clock is substantially skewed from Cloud Spanner commit
        * timestamps.
+       *
        * Useful for reading at nearby replicas without the distributed
        * timestamp negotiation overhead of `max_staleness`.
        * 
@@ -3957,11 +4142,13 @@ public Builder clearExactStaleness() { *
        * Executes all reads at a timestamp that is `exact_staleness`
        * old. The timestamp is chosen soon after the read is started.
+       *
        * Guarantees that all writes that have committed more than the
        * specified number of seconds ago are visible. Because Cloud Spanner
        * chooses the exact timestamp, this mode works even if the client's
        * local clock is substantially skewed from Cloud Spanner commit
        * timestamps.
+       *
        * Useful for reading at nearby replicas without the distributed
        * timestamp negotiation overhead of `max_staleness`.
        * 
@@ -3977,11 +4164,13 @@ public com.google.protobuf.Duration.Builder getExactStalenessBuilder() { *
        * Executes all reads at a timestamp that is `exact_staleness`
        * old. The timestamp is chosen soon after the read is started.
+       *
        * Guarantees that all writes that have committed more than the
        * specified number of seconds ago are visible. Because Cloud Spanner
        * chooses the exact timestamp, this mode works even if the client's
        * local clock is substantially skewed from Cloud Spanner commit
        * timestamps.
+       *
        * Useful for reading at nearby replicas without the distributed
        * timestamp negotiation overhead of `max_staleness`.
        * 
@@ -4005,11 +4194,13 @@ public com.google.protobuf.DurationOrBuilder getExactStalenessOrBuilder() { *
        * Executes all reads at a timestamp that is `exact_staleness`
        * old. The timestamp is chosen soon after the read is started.
+       *
        * Guarantees that all writes that have committed more than the
        * specified number of seconds ago are visible. Because Cloud Spanner
        * chooses the exact timestamp, this mode works even if the client's
        * local clock is substantially skewed from Cloud Spanner commit
        * timestamps.
+       *
        * Useful for reading at nearby replicas without the distributed
        * timestamp negotiation overhead of `max_staleness`.
        * 
@@ -4164,6 +4355,8 @@ public com.google.spanner.v1.TransactionOptions.ReadOnly getDefaultInstanceForTy } private int modeCase_ = 0; + + @SuppressWarnings("serial") private java.lang.Object mode_; public enum ModeCase @@ -4219,6 +4412,7 @@ public ModeCase getModeCase() { * *
    * Transaction may write.
+   *
    * Authorization to begin a read-write transaction requires
    * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
    * on the `session` resource.
@@ -4237,6 +4431,7 @@ public boolean hasReadWrite() {
    *
    * 
    * Transaction may write.
+   *
    * Authorization to begin a read-write transaction requires
    * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
    * on the `session` resource.
@@ -4258,6 +4453,7 @@ public com.google.spanner.v1.TransactionOptions.ReadWrite getReadWrite() {
    *
    * 
    * Transaction may write.
+   *
    * Authorization to begin a read-write transaction requires
    * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
    * on the `session` resource.
@@ -4279,6 +4475,7 @@ public com.google.spanner.v1.TransactionOptions.ReadWriteOrBuilder getReadWriteO
    *
    * 
    * Partitioned DML transaction.
+   *
    * Authorization to begin a Partitioned DML transaction requires
    * `spanner.databases.beginPartitionedDmlTransaction` permission
    * on the `session` resource.
@@ -4297,6 +4494,7 @@ public boolean hasPartitionedDml() {
    *
    * 
    * Partitioned DML transaction.
+   *
    * Authorization to begin a Partitioned DML transaction requires
    * `spanner.databases.beginPartitionedDmlTransaction` permission
    * on the `session` resource.
@@ -4318,6 +4516,7 @@ public com.google.spanner.v1.TransactionOptions.PartitionedDml getPartitionedDml
    *
    * 
    * Partitioned DML transaction.
+   *
    * Authorization to begin a Partitioned DML transaction requires
    * `spanner.databases.beginPartitionedDmlTransaction` permission
    * on the `session` resource.
@@ -4340,6 +4539,7 @@ public com.google.spanner.v1.TransactionOptions.PartitionedDml getPartitionedDml
    *
    * 
    * Transaction will not write.
+   *
    * Authorization to begin a read-only transaction requires
    * `spanner.databases.beginReadOnlyTransaction` permission
    * on the `session` resource.
@@ -4358,6 +4558,7 @@ public boolean hasReadOnly() {
    *
    * 
    * Transaction will not write.
+   *
    * Authorization to begin a read-only transaction requires
    * `spanner.databases.beginReadOnlyTransaction` permission
    * on the `session` resource.
@@ -4379,6 +4580,7 @@ public com.google.spanner.v1.TransactionOptions.ReadOnly getReadOnly() {
    *
    * 
    * Transaction will not write.
+   *
    * Authorization to begin a read-only transaction requires
    * `spanner.databases.beginReadOnlyTransaction` permission
    * on the `session` resource.
@@ -4602,18 +4804,23 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *
    * 
    * Transactions:
+   *
    * Each session can have at most one active transaction at a time (note that
    * standalone reads and queries use a transaction internally and do count
    * towards the one transaction limit). After the active transaction is
    * completed, the session can immediately be re-used for the next transaction.
    * It is not necessary to create a new session for each transaction.
+   *
    * Transaction modes:
+   *
    * Cloud Spanner supports three transaction modes:
+   *
    *   1. Locking read-write. This type of transaction is the only way
    *      to write data into Cloud Spanner. These transactions rely on
    *      pessimistic locking and, if necessary, two-phase commit.
    *      Locking read-write transactions may abort, requiring the
    *      application to retry.
+   *
    *   2. Snapshot read-only. Snapshot read-only transactions provide guaranteed
    *      consistency across several reads, but do not allow
    *      writes. Snapshot read-only transactions can be configured to read at
@@ -4622,28 +4829,35 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *      guaranteed to see the effects of all transactions that have committed
    *      before the start of the read). Snapshot read-only transactions do not
    *      need to be committed.
+   *
    *      Queries on change streams must be performed with the snapshot read-only
    *      transaction mode, specifying a strong read. Please see
    *      [TransactionOptions.ReadOnly.strong][google.spanner.v1.TransactionOptions.ReadOnly.strong]
    *      for more details.
+   *
    *   3. Partitioned DML. This type of transaction is used to execute
    *      a single Partitioned DML statement. Partitioned DML partitions
    *      the key space and runs the DML statement over each partition
    *      in parallel using separate, internal transactions that commit
    *      independently. Partitioned DML transactions do not need to be
    *      committed.
+   *
    * For transactions that only read, snapshot read-only transactions
    * provide simpler semantics and are almost always faster. In
    * particular, read-only transactions do not take locks, so they do
    * not conflict with read-write transactions. As a consequence of not
    * taking locks, they also do not abort, so retry loops are not needed.
+   *
    * Transactions may only read-write data in a single database. They
    * may, however, read-write data in different tables within that
    * database.
+   *
    * Locking read-write transactions:
+   *
    * Locking transactions may be used to atomically read-modify-write
    * data anywhere in a database. This type of transaction is externally
    * consistent.
+   *
    * Clients should attempt to minimize the amount of time a transaction
    * is active. Faster transactions commit with higher probability
    * and cause less contention. Cloud Spanner attempts to keep read locks
@@ -4653,87 +4867,113 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    * [Rollback][google.spanner.v1.Spanner.Rollback]. Long periods of
    * inactivity at the client may cause Cloud Spanner to release a
    * transaction's locks and abort it.
+   *
    * Conceptually, a read-write transaction consists of zero or more
    * reads or SQL statements followed by
    * [Commit][google.spanner.v1.Spanner.Commit]. At any time before
    * [Commit][google.spanner.v1.Spanner.Commit], the client can send a
    * [Rollback][google.spanner.v1.Spanner.Rollback] request to abort the
    * transaction.
+   *
    * Semantics:
+   *
    * Cloud Spanner can commit the transaction if all read locks it acquired
    * are still valid at commit time, and it is able to acquire write
    * locks for all writes. Cloud Spanner can abort the transaction for any
    * reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
    * that the transaction has not modified any user data in Cloud Spanner.
+   *
    * Unless the transaction commits, Cloud Spanner makes no guarantees about
    * how long the transaction's locks were held for. It is an error to
    * use Cloud Spanner locks for any sort of mutual exclusion other than
    * between Cloud Spanner transactions themselves.
+   *
    * Retrying aborted transactions:
+   *
    * When a transaction aborts, the application can choose to retry the
    * whole transaction again. To maximize the chances of successfully
    * committing the retry, the client should execute the retry in the
    * same session as the original attempt. The original session's lock
    * priority increases with each consecutive abort, meaning that each
    * attempt has a slightly better chance of success than the previous.
+   *
    * Under some circumstances (for example, many transactions attempting to
    * modify the same row(s)), a transaction can abort many times in a
    * short period before successfully committing. Thus, it is not a good
    * idea to cap the number of retries a transaction can attempt;
    * instead, it is better to limit the total amount of time spent
    * retrying.
+   *
    * Idle transactions:
+   *
    * A transaction is considered idle if it has no outstanding reads or
    * SQL queries and has not started a read or SQL query within the last 10
    * seconds. Idle transactions can be aborted by Cloud Spanner so that they
    * don't hold on to locks indefinitely. If an idle transaction is aborted, the
    * commit will fail with error `ABORTED`.
+   *
    * If this behavior is undesirable, periodically executing a simple
    * SQL query in the transaction (for example, `SELECT 1`) prevents the
    * transaction from becoming idle.
+   *
    * Snapshot read-only transactions:
+   *
    * Snapshot read-only transactions provides a simpler method than
    * locking read-write transactions for doing several consistent
    * reads. However, this type of transaction does not support writes.
+   *
    * Snapshot transactions do not take locks. Instead, they work by
    * choosing a Cloud Spanner timestamp, then executing all reads at that
    * timestamp. Since they do not acquire locks, they do not block
    * concurrent read-write transactions.
+   *
    * Unlike locking read-write transactions, snapshot read-only
    * transactions never abort. They can fail if the chosen read
    * timestamp is garbage collected; however, the default garbage
    * collection policy is generous enough that most applications do not
    * need to worry about this in practice.
+   *
    * Snapshot read-only transactions do not need to call
    * [Commit][google.spanner.v1.Spanner.Commit] or
    * [Rollback][google.spanner.v1.Spanner.Rollback] (and in fact are not
    * permitted to do so).
+   *
    * To execute a snapshot transaction, the client specifies a timestamp
    * bound, which tells Cloud Spanner how to choose a read timestamp.
+   *
    * The types of timestamp bound are:
+   *
    *   - Strong (the default).
    *   - Bounded staleness.
    *   - Exact staleness.
+   *
    * If the Cloud Spanner database to be read is geographically distributed,
    * stale read-only transactions can execute more quickly than strong
    * or read-write transactions, because they are able to execute far
    * from the leader replica.
+   *
    * Each type of timestamp bound is discussed in detail below.
+   *
    * Strong: Strong reads are guaranteed to see the effects of all transactions
    * that have committed before the start of the read. Furthermore, all
    * rows yielded by a single read are consistent with each other -- if
    * any part of the read observes a transaction, all parts of the read
    * see the transaction.
+   *
    * Strong reads are not repeatable: two consecutive strong read-only
    * transactions might return inconsistent results if there are
    * concurrent writes. If consistency across reads is required, the
    * reads should be executed within a transaction or at an exact read
    * timestamp.
+   *
    * Queries on change streams (see below for more details) must also specify
    * the strong read timestamp bound.
+   *
    * See
    * [TransactionOptions.ReadOnly.strong][google.spanner.v1.TransactionOptions.ReadOnly.strong].
+   *
    * Exact staleness:
+   *
    * These timestamp bounds execute reads at a user-specified
    * timestamp. Reads at a timestamp are guaranteed to see a consistent
    * prefix of the global transaction history: they observe
@@ -4742,42 +4982,54 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    * transactions with a larger commit timestamp. They will block until
    * all conflicting transactions that may be assigned commit timestamps
    * <= the read timestamp have finished.
+   *
    * The timestamp can either be expressed as an absolute Cloud Spanner commit
    * timestamp or a staleness relative to the current time.
+   *
    * These modes do not require a "negotiation phase" to pick a
    * timestamp. As a result, they execute slightly faster than the
    * equivalent boundedly stale concurrency modes. On the other hand,
    * boundedly stale reads usually return fresher results.
+   *
    * See
    * [TransactionOptions.ReadOnly.read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.read_timestamp]
    * and
    * [TransactionOptions.ReadOnly.exact_staleness][google.spanner.v1.TransactionOptions.ReadOnly.exact_staleness].
+   *
    * Bounded staleness:
+   *
    * Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
    * subject to a user-provided staleness bound. Cloud Spanner chooses the
    * newest timestamp within the staleness bound that allows execution
    * of the reads at the closest available replica without blocking.
+   *
    * All rows yielded are consistent with each other -- if any part of
    * the read observes a transaction, all parts of the read see the
    * transaction. Boundedly stale reads are not repeatable: two stale
    * reads, even if they use the same staleness bound, can execute at
    * different timestamps and thus return inconsistent results.
+   *
    * Boundedly stale reads execute in two phases: the first phase
    * negotiates a timestamp among all replicas needed to serve the
    * read. In the second phase, reads are executed at the negotiated
    * timestamp.
+   *
    * As a result of the two phase execution, bounded staleness reads are
    * usually a little slower than comparable exact staleness
    * reads. However, they are typically able to return fresher
    * results, and are more likely to execute at the closest replica.
+   *
    * Because the timestamp negotiation requires up-front knowledge of
    * which rows will be read, it can only be used with single-use
    * read-only transactions.
+   *
    * See
    * [TransactionOptions.ReadOnly.max_staleness][google.spanner.v1.TransactionOptions.ReadOnly.max_staleness]
    * and
    * [TransactionOptions.ReadOnly.min_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.min_read_timestamp].
+   *
    * Old read timestamps and garbage collection:
+   *
    * Cloud Spanner continuously garbage collects deleted and overwritten data
    * in the background to reclaim storage space. This process is known
    * as "version GC". By default, version GC reclaims versions after they
@@ -4786,18 +5038,23 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    * restriction also applies to in-progress reads and/or SQL queries whose
    * timestamp become too old while executing. Reads and SQL queries with
    * too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+   *
    * You can configure and extend the `VERSION_RETENTION_PERIOD` of a
    * database up to a period as long as one week, which allows Cloud Spanner
    * to perform reads up to one week in the past.
+   *
    * Querying change Streams:
+   *
    * A Change Stream is a schema object that can be configured to watch data
    * changes on the entire database, a set of tables, or a set of columns
    * in a database.
+   *
    * When a change stream is created, Spanner automatically defines a
    * corresponding SQL Table-Valued Function (TVF) that can be used to query
    * the change records in the associated change stream using the
    * ExecuteStreamingSql API. The name of the TVF for a change stream is
    * generated from the name of the change stream: READ_<change_stream_name>.
+   *
    * All queries on change stream TVFs must be executed using the
    * ExecuteStreamingSql API with a single-use read-only transaction with a
    * strong read-only timestamp_bound. The change stream TVF allows users to
@@ -4805,34 +5062,44 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    * interest. All change records within the retention period is accessible
    * using the strong read-only timestamp_bound. All other TransactionOptions
    * are invalid for change stream queries.
+   *
    * In addition, if TransactionOptions.read_only.return_read_timestamp is set
    * to true, a special value of 2^63 - 2 will be returned in the
    * [Transaction][google.spanner.v1.Transaction] message that describes the
    * transaction, instead of a valid read timestamp. This special value should be
    * discarded and not used for any subsequent queries.
+   *
    * Please see https://cloud.google.com/spanner/docs/change-streams
    * for more details on how to query the change stream TVFs.
+   *
    * Partitioned DML transactions:
+   *
    * Partitioned DML transactions are used to execute DML statements with a
    * different execution strategy that provides different, and often better,
    * scalability properties for large, table-wide operations than DML in a
    * ReadWrite transaction. Smaller scoped statements, such as an OLTP workload,
    * should prefer using ReadWrite transactions.
+   *
    * Partitioned DML partitions the keyspace and runs the DML statement on each
    * partition in separate, internal transactions. These transactions commit
    * automatically when complete, and run independently from one another.
+   *
    * To reduce lock contention, this execution strategy only acquires read locks
    * on rows that match the WHERE clause of the statement. Additionally, the
    * smaller per-partition transactions hold locks for less time.
+   *
    * That said, Partitioned DML is not a drop-in replacement for standard DML used
    * in ReadWrite transactions.
+   *
    *  - The DML statement must be fully-partitionable. Specifically, the statement
    *    must be expressible as the union of many statements which each access only
    *    a single row of the table.
+   *
    *  - The statement is not applied atomically to all rows of the table. Rather,
    *    the statement is applied atomically to partitions of the table, in
    *    independent transactions. Secondary index rows are updated atomically
    *    with the base table rows.
+   *
    *  - Partitioned DML does not guarantee exactly-once execution semantics
    *    against a partition. The statement will be applied at least once to each
    *    partition. It is strongly recommended that the DML statement should be
@@ -4840,19 +5107,23 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
    *    dangerous to run a statement such as
    *    `UPDATE table SET column = column + 1` as it could be run multiple times
    *    against some rows.
+   *
    *  - The partitions are committed automatically - there is no support for
    *    Commit or Rollback. If the call returns an error, or if the client issuing
    *    the ExecuteSql call dies, it is possible that some rows had the statement
    *    executed on them successfully. It is also possible that statement was
    *    never executed against other rows.
+   *
    *  - Partitioned DML transactions may only contain the execution of a single
    *    DML statement via ExecuteSql or ExecuteStreamingSql.
+   *
    *  - If any error is encountered during the execution of the partitioned DML
    *    operation (for instance, a UNIQUE INDEX violation, division by zero, or a
    *    value that cannot be stored due to schema constraints), then the
    *    operation is stopped at that point and an error is returned. It is
    *    possible that at this point, some partitions have been committed (or even
    *    committed multiple times), and other partitions have not been run at all.
+   *
    * Given the above, Partitioned DML is good fit for large, database-wide,
    * operations that are idempotent, such as deleting old rows from a very large
    * table.
@@ -5107,6 +5378,7 @@ public Builder clearMode() {
      *
      * 
      * Transaction may write.
+     *
      * Authorization to begin a read-write transaction requires
      * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
      * on the `session` resource.
@@ -5125,6 +5397,7 @@ public boolean hasReadWrite() {
      *
      * 
      * Transaction may write.
+     *
      * Authorization to begin a read-write transaction requires
      * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
      * on the `session` resource.
@@ -5153,6 +5426,7 @@ public com.google.spanner.v1.TransactionOptions.ReadWrite getReadWrite() {
      *
      * 
      * Transaction may write.
+     *
      * Authorization to begin a read-write transaction requires
      * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
      * on the `session` resource.
@@ -5178,6 +5452,7 @@ public Builder setReadWrite(com.google.spanner.v1.TransactionOptions.ReadWrite v
      *
      * 
      * Transaction may write.
+     *
      * Authorization to begin a read-write transaction requires
      * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
      * on the `session` resource.
@@ -5201,6 +5476,7 @@ public Builder setReadWrite(
      *
      * 
      * Transaction may write.
+     *
      * Authorization to begin a read-write transaction requires
      * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
      * on the `session` resource.
@@ -5236,6 +5512,7 @@ public Builder mergeReadWrite(com.google.spanner.v1.TransactionOptions.ReadWrite
      *
      * 
      * Transaction may write.
+     *
      * Authorization to begin a read-write transaction requires
      * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
      * on the `session` resource.
@@ -5264,6 +5541,7 @@ public Builder clearReadWrite() {
      *
      * 
      * Transaction may write.
+     *
      * Authorization to begin a read-write transaction requires
      * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
      * on the `session` resource.
@@ -5279,6 +5557,7 @@ public com.google.spanner.v1.TransactionOptions.ReadWrite.Builder getReadWriteBu
      *
      * 
      * Transaction may write.
+     *
      * Authorization to begin a read-write transaction requires
      * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
      * on the `session` resource.
@@ -5302,6 +5581,7 @@ public com.google.spanner.v1.TransactionOptions.ReadWriteOrBuilder getReadWriteO
      *
      * 
      * Transaction may write.
+     *
      * Authorization to begin a read-write transaction requires
      * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
      * on the `session` resource.
@@ -5343,6 +5623,7 @@ public com.google.spanner.v1.TransactionOptions.ReadWriteOrBuilder getReadWriteO
      *
      * 
      * Partitioned DML transaction.
+     *
      * Authorization to begin a Partitioned DML transaction requires
      * `spanner.databases.beginPartitionedDmlTransaction` permission
      * on the `session` resource.
@@ -5361,6 +5642,7 @@ public boolean hasPartitionedDml() {
      *
      * 
      * Partitioned DML transaction.
+     *
      * Authorization to begin a Partitioned DML transaction requires
      * `spanner.databases.beginPartitionedDmlTransaction` permission
      * on the `session` resource.
@@ -5389,6 +5671,7 @@ public com.google.spanner.v1.TransactionOptions.PartitionedDml getPartitionedDml
      *
      * 
      * Partitioned DML transaction.
+     *
      * Authorization to begin a Partitioned DML transaction requires
      * `spanner.databases.beginPartitionedDmlTransaction` permission
      * on the `session` resource.
@@ -5415,6 +5698,7 @@ public Builder setPartitionedDml(
      *
      * 
      * Partitioned DML transaction.
+     *
      * Authorization to begin a Partitioned DML transaction requires
      * `spanner.databases.beginPartitionedDmlTransaction` permission
      * on the `session` resource.
@@ -5438,6 +5722,7 @@ public Builder setPartitionedDml(
      *
      * 
      * Partitioned DML transaction.
+     *
      * Authorization to begin a Partitioned DML transaction requires
      * `spanner.databases.beginPartitionedDmlTransaction` permission
      * on the `session` resource.
@@ -5475,6 +5760,7 @@ public Builder mergePartitionedDml(
      *
      * 
      * Partitioned DML transaction.
+     *
      * Authorization to begin a Partitioned DML transaction requires
      * `spanner.databases.beginPartitionedDmlTransaction` permission
      * on the `session` resource.
@@ -5503,6 +5789,7 @@ public Builder clearPartitionedDml() {
      *
      * 
      * Partitioned DML transaction.
+     *
      * Authorization to begin a Partitioned DML transaction requires
      * `spanner.databases.beginPartitionedDmlTransaction` permission
      * on the `session` resource.
@@ -5519,6 +5806,7 @@ public Builder clearPartitionedDml() {
      *
      * 
      * Partitioned DML transaction.
+     *
      * Authorization to begin a Partitioned DML transaction requires
      * `spanner.databases.beginPartitionedDmlTransaction` permission
      * on the `session` resource.
@@ -5543,6 +5831,7 @@ public Builder clearPartitionedDml() {
      *
      * 
      * Partitioned DML transaction.
+     *
      * Authorization to begin a Partitioned DML transaction requires
      * `spanner.databases.beginPartitionedDmlTransaction` permission
      * on the `session` resource.
@@ -5584,6 +5873,7 @@ public Builder clearPartitionedDml() {
      *
      * 
      * Transaction will not write.
+     *
      * Authorization to begin a read-only transaction requires
      * `spanner.databases.beginReadOnlyTransaction` permission
      * on the `session` resource.
@@ -5602,6 +5892,7 @@ public boolean hasReadOnly() {
      *
      * 
      * Transaction will not write.
+     *
      * Authorization to begin a read-only transaction requires
      * `spanner.databases.beginReadOnlyTransaction` permission
      * on the `session` resource.
@@ -5630,6 +5921,7 @@ public com.google.spanner.v1.TransactionOptions.ReadOnly getReadOnly() {
      *
      * 
      * Transaction will not write.
+     *
      * Authorization to begin a read-only transaction requires
      * `spanner.databases.beginReadOnlyTransaction` permission
      * on the `session` resource.
@@ -5655,6 +5947,7 @@ public Builder setReadOnly(com.google.spanner.v1.TransactionOptions.ReadOnly val
      *
      * 
      * Transaction will not write.
+     *
      * Authorization to begin a read-only transaction requires
      * `spanner.databases.beginReadOnlyTransaction` permission
      * on the `session` resource.
@@ -5678,6 +5971,7 @@ public Builder setReadOnly(
      *
      * 
      * Transaction will not write.
+     *
      * Authorization to begin a read-only transaction requires
      * `spanner.databases.beginReadOnlyTransaction` permission
      * on the `session` resource.
@@ -5713,6 +6007,7 @@ public Builder mergeReadOnly(com.google.spanner.v1.TransactionOptions.ReadOnly v
      *
      * 
      * Transaction will not write.
+     *
      * Authorization to begin a read-only transaction requires
      * `spanner.databases.beginReadOnlyTransaction` permission
      * on the `session` resource.
@@ -5741,6 +6036,7 @@ public Builder clearReadOnly() {
      *
      * 
      * Transaction will not write.
+     *
      * Authorization to begin a read-only transaction requires
      * `spanner.databases.beginReadOnlyTransaction` permission
      * on the `session` resource.
@@ -5756,6 +6052,7 @@ public com.google.spanner.v1.TransactionOptions.ReadOnly.Builder getReadOnlyBuil
      *
      * 
      * Transaction will not write.
+     *
      * Authorization to begin a read-only transaction requires
      * `spanner.databases.beginReadOnlyTransaction` permission
      * on the `session` resource.
@@ -5779,6 +6076,7 @@ public com.google.spanner.v1.TransactionOptions.ReadOnlyOrBuilder getReadOnlyOrB
      *
      * 
      * Transaction will not write.
+     *
      * Authorization to begin a read-only transaction requires
      * `spanner.databases.beginReadOnlyTransaction` permission
      * on the `session` resource.
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptionsOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptionsOrBuilder.java
index c7b46083a13..e2f2613bb69 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptionsOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptionsOrBuilder.java
@@ -28,6 +28,7 @@ public interface TransactionOptionsOrBuilder
    *
    * 
    * Transaction may write.
+   *
    * Authorization to begin a read-write transaction requires
    * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
    * on the `session` resource.
@@ -43,6 +44,7 @@ public interface TransactionOptionsOrBuilder
    *
    * 
    * Transaction may write.
+   *
    * Authorization to begin a read-write transaction requires
    * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
    * on the `session` resource.
@@ -58,6 +60,7 @@ public interface TransactionOptionsOrBuilder
    *
    * 
    * Transaction may write.
+   *
    * Authorization to begin a read-write transaction requires
    * `spanner.databases.beginOrRollbackReadWriteTransaction` permission
    * on the `session` resource.
@@ -72,6 +75,7 @@ public interface TransactionOptionsOrBuilder
    *
    * 
    * Partitioned DML transaction.
+   *
    * Authorization to begin a Partitioned DML transaction requires
    * `spanner.databases.beginPartitionedDmlTransaction` permission
    * on the `session` resource.
@@ -87,6 +91,7 @@ public interface TransactionOptionsOrBuilder
    *
    * 
    * Partitioned DML transaction.
+   *
    * Authorization to begin a Partitioned DML transaction requires
    * `spanner.databases.beginPartitionedDmlTransaction` permission
    * on the `session` resource.
@@ -102,6 +107,7 @@ public interface TransactionOptionsOrBuilder
    *
    * 
    * Partitioned DML transaction.
+   *
    * Authorization to begin a Partitioned DML transaction requires
    * `spanner.databases.beginPartitionedDmlTransaction` permission
    * on the `session` resource.
@@ -116,6 +122,7 @@ public interface TransactionOptionsOrBuilder
    *
    * 
    * Transaction will not write.
+   *
    * Authorization to begin a read-only transaction requires
    * `spanner.databases.beginReadOnlyTransaction` permission
    * on the `session` resource.
@@ -131,6 +138,7 @@ public interface TransactionOptionsOrBuilder
    *
    * 
    * Transaction will not write.
+   *
    * Authorization to begin a read-only transaction requires
    * `spanner.databases.beginReadOnlyTransaction` permission
    * on the `session` resource.
@@ -146,6 +154,7 @@ public interface TransactionOptionsOrBuilder
    *
    * 
    * Transaction will not write.
+   *
    * Authorization to begin a read-only transaction requires
    * `spanner.databases.beginReadOnlyTransaction` permission
    * on the `session` resource.
@@ -155,5 +164,5 @@ public interface TransactionOptionsOrBuilder
    */
   com.google.spanner.v1.TransactionOptions.ReadOnlyOrBuilder getReadOnlyOrBuilder();
 
-  public com.google.spanner.v1.TransactionOptions.ModeCase getModeCase();
+  com.google.spanner.v1.TransactionOptions.ModeCase getModeCase();
 }
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOrBuilder.java
index 24a9ee693d9..57893613d67 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOrBuilder.java
@@ -32,6 +32,7 @@ public interface TransactionOrBuilder
    * [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql],
    * [Commit][google.spanner.v1.Spanner.Commit], or
    * [Rollback][google.spanner.v1.Spanner.Rollback] calls.
+   *
    * Single-use read-only transactions do not have IDs, because
    * single-use transactions do not support multiple requests.
    * 
@@ -49,6 +50,7 @@ public interface TransactionOrBuilder * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -65,6 +67,7 @@ public interface TransactionOrBuilder * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
@@ -81,6 +84,7 @@ public interface TransactionOrBuilder * For snapshot read-only transactions, the read timestamp chosen * for the transaction. Not returned by default: see * [TransactionOptions.ReadOnly.return_read_timestamp][google.spanner.v1.TransactionOptions.ReadOnly.return_read_timestamp]. + * * A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. * Example: `"2014-10-02T15:01:23.045123456Z"`. *
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionSelector.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionSelector.java index 3d3062141b9..b96de165770 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionSelector.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionSelector.java @@ -25,6 +25,7 @@ * This message is used to select the transaction in which a * [Read][google.spanner.v1.Spanner.Read] or * [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] call runs. + * * See [TransactionOptions][google.spanner.v1.TransactionOptions] for more * information about transactions. *
@@ -49,11 +50,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new TransactionSelector(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.TransactionProto .internal_static_google_spanner_v1_TransactionSelector_descriptor; @@ -70,6 +66,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } private int selectorCase_ = 0; + + @SuppressWarnings("serial") private java.lang.Object selector_; public enum SelectorCase @@ -482,6 +480,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build * This message is used to select the transaction in which a * [Read][google.spanner.v1.Spanner.Read] or * [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] call runs. + * * See [TransactionOptions][google.spanner.v1.TransactionOptions] for more * information about transactions. *
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionSelectorOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionSelectorOrBuilder.java index ff10cc1510b..478bc44b868 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionSelectorOrBuilder.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionSelectorOrBuilder.java @@ -133,5 +133,5 @@ public interface TransactionSelectorOrBuilder */ com.google.spanner.v1.TransactionOptionsOrBuilder getBeginOrBuilder(); - public com.google.spanner.v1.TransactionSelector.SelectorCase getSelectorCase(); + com.google.spanner.v1.TransactionSelector.SelectorCase getSelectorCase(); } diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Type.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Type.java index 6785a32ef32..eba671dad85 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Type.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/Type.java @@ -49,11 +49,6 @@ protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new Type(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.spanner.v1.TypeProto.internal_static_google_spanner_v1_Type_descriptor; } diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeCode.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeCode.java index 4b6561e9def..5ce677274bd 100644 --- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeCode.java +++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeCode.java @@ -24,6 +24,7 @@ *
  * `TypeCode` is used as part of [Type][google.spanner.v1.Type] to
  * indicate the type of a Cloud Spanner value.
+ *
  * Each legal value of a type can be encoded to or decoded from a JSON
  * value, using the encodings described below. All Cloud Spanner values can
  * be `null`, regardless of type; `null`s are always encoded as a JSON
@@ -80,6 +81,7 @@ public enum TypeCode implements com.google.protobuf.ProtocolMessageEnum {
    * 
    * Encoded as `string` in RFC 3339 timestamp format. The time zone
    * must be present, and must be `"Z"`.
+   *
    * If the schema has the column option
    * `allow_commit_timestamp=true`, the placeholder string
    * `"spanner.commit_timestamp()"` can be used to instruct the system
@@ -152,6 +154,7 @@ public enum TypeCode implements com.google.protobuf.ProtocolMessageEnum {
    * <br>Decimal format:
    * <br>`[+-]Digits[.[Digits]]` or
    * <br>`[+-][Digits].Digits`
+   *
    * Scientific notation:
    * <br>`[+-]Digits[.[Digits]][ExponentIndicator[+-]Digits]` or
    * <br>`[+-][Digits].Digits[ExponentIndicator[+-]Digits]`
@@ -167,6 +170,7 @@ public enum TypeCode implements com.google.protobuf.ProtocolMessageEnum {
    * 
    * Encoded as a JSON-formatted `string` as described in RFC 7159. The
    * following rules are applied when parsing JSON input:
+   *
    * - Whitespace characters are not preserved.
    * - If a JSON object has duplicate keys, only the first key is preserved.
    * - Members of a JSON object are not guaranteed to have their order
@@ -227,6 +231,7 @@ public enum TypeCode implements com.google.protobuf.ProtocolMessageEnum {
    * 
    * Encoded as `string` in RFC 3339 timestamp format. The time zone
    * must be present, and must be `"Z"`.
+   *
    * If the schema has the column option
    * `allow_commit_timestamp=true`, the placeholder string
    * `"spanner.commit_timestamp()"` can be used to instruct the system
@@ -299,6 +304,7 @@ public enum TypeCode implements com.google.protobuf.ProtocolMessageEnum {
    * <br>Decimal format:
    * <br>`[+-]Digits[.[Digits]]` or
    * <br>`[+-][Digits].Digits`
+   *
    * Scientific notation:
    * <br>`[+-]Digits[.[Digits]][ExponentIndicator[+-]Digits]` or
    * <br>`[+-][Digits].Digits[ExponentIndicator[+-]Digits]`
@@ -314,6 +320,7 @@ public enum TypeCode implements com.google.protobuf.ProtocolMessageEnum {
    * 
    * Encoded as a JSON-formatted `string` as described in RFC 7159. The
    * following rules are applied when parsing JSON input:
+   *
    * - Whitespace characters are not preserved.
    * - If a JSON object has duplicate keys, only the first key is preserved.
    * - Members of a JSON object are not guaranteed to have their order
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeProto.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeProto.java
index cc18356b426..1c024ce208a 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeProto.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeProto.java
@@ -50,26 +50,26 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     java.lang.String[] descriptorData = {
       "\n\034google/spanner/v1/type.proto\022\021google.s"
           + "panner.v1\032\037google/api/field_behavior.pro"
-          + "to\"\337\001\n\004Type\022.\n\004code\030\001 \001(\0162\033.google.spann"
-          + "er.v1.TypeCodeB\003\340A\002\0223\n\022array_element_typ"
-          + "e\030\002 \001(\0132\027.google.spanner.v1.Type\0222\n\013stru"
-          + "ct_type\030\003 \001(\0132\035.google.spanner.v1.Struct"
-          + "Type\022>\n\017type_annotation\030\004 \001(\0162%.google.s"
-          + "panner.v1.TypeAnnotationCode\"\177\n\nStructTy"
-          + "pe\0223\n\006fields\030\001 \003(\0132#.google.spanner.v1.S"
-          + "tructType.Field\032<\n\005Field\022\014\n\004name\030\001 \001(\t\022%"
-          + "\n\004type\030\002 \001(\0132\027.google.spanner.v1.Type*\245\001"
-          + "\n\010TypeCode\022\031\n\025TYPE_CODE_UNSPECIFIED\020\000\022\010\n"
-          + "\004BOOL\020\001\022\t\n\005INT64\020\002\022\013\n\007FLOAT64\020\003\022\r\n\tTIMES"
-          + "TAMP\020\004\022\010\n\004DATE\020\005\022\n\n\006STRING\020\006\022\t\n\005BYTES\020\007\022"
-          + "\t\n\005ARRAY\020\010\022\n\n\006STRUCT\020\t\022\013\n\007NUMERIC\020\n\022\010\n\004J"
-          + "SON\020\013*X\n\022TypeAnnotationCode\022$\n TYPE_ANNO"
-          + "TATION_CODE_UNSPECIFIED\020\000\022\016\n\nPG_NUMERIC\020"
-          + "\002\022\014\n\010PG_JSONB\020\003B\254\001\n\025com.google.spanner.v"
-          + "1B\tTypeProtoP\001Z5cloud.google.com/go/span"
-          + "ner/apiv1/spannerpb;spannerpb\252\002\027Google.C"
-          + "loud.Spanner.V1\312\002\027Google\\Cloud\\Spanner\\V"
-          + "1\352\002\032Google::Cloud::Spanner::V1b\006proto3"
+          + "to\"\340\001\n\004Type\022/\n\004code\030\001 \001(\0162\033.google.spann"
+          + "er.v1.TypeCodeB\004\342A\001\002\0223\n\022array_element_ty"
+          + "pe\030\002 \001(\0132\027.google.spanner.v1.Type\0222\n\013str"
+          + "uct_type\030\003 \001(\0132\035.google.spanner.v1.Struc"
+          + "tType\022>\n\017type_annotation\030\004 \001(\0162%.google."
+          + "spanner.v1.TypeAnnotationCode\"\177\n\nStructT"
+          + "ype\0223\n\006fields\030\001 \003(\0132#.google.spanner.v1."
+          + "StructType.Field\032<\n\005Field\022\014\n\004name\030\001 \001(\t\022"
+          + "%\n\004type\030\002 \001(\0132\027.google.spanner.v1.Type*\245"
+          + "\001\n\010TypeCode\022\031\n\025TYPE_CODE_UNSPECIFIED\020\000\022\010"
+          + "\n\004BOOL\020\001\022\t\n\005INT64\020\002\022\013\n\007FLOAT64\020\003\022\r\n\tTIME"
+          + "STAMP\020\004\022\010\n\004DATE\020\005\022\n\n\006STRING\020\006\022\t\n\005BYTES\020\007"
+          + "\022\t\n\005ARRAY\020\010\022\n\n\006STRUCT\020\t\022\013\n\007NUMERIC\020\n\022\010\n\004"
+          + "JSON\020\013*X\n\022TypeAnnotationCode\022$\n TYPE_ANN"
+          + "OTATION_CODE_UNSPECIFIED\020\000\022\016\n\nPG_NUMERIC"
+          + "\020\002\022\014\n\010PG_JSONB\020\003B\254\001\n\025com.google.spanner."
+          + "v1B\tTypeProtoP\001Z5cloud.google.com/go/spa"
+          + "nner/apiv1/spannerpb;spannerpb\252\002\027Google."
+          + "Cloud.Spanner.V1\312\002\027Google\\Cloud\\Spanner\\"
+          + "V1\352\002\032Google::Cloud::Spanner::V1b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(

From 8aa407f3e1b4c6cf66b679e698992a6a5e3034c0 Mon Sep 17 00:00:00 2001
From: Arpan Mishra 
Date: Fri, 21 Jul 2023 22:14:12 +0530
Subject: [PATCH 14/22] docs: fixing errors  (#2536)

Java SDK team is installing a job to compile doc errors as part of - https://togithub.com/googleapis/java-spanner/pull/2515 . The job won't succeed with existing errors. This PR fixes the existing errors in docs.

Command for testing - `mvn javadoc:javadoc javadoc:test-javadoc -B -ntp`
---
 .github/sync-repo-settings.yaml               |   8 +
 .../spanner/AbstractLazyInitializer.java      |   2 +
 .../google/cloud/spanner/AsyncResultSet.java  |  18 +-
 .../com/google/cloud/spanner/AsyncRunner.java |   5 +-
 .../spanner/AsyncTransactionManager.java      |  24 +-
 .../cloud/spanner/DatabaseAdminClient.java    |   2 +-
 .../google/cloud/spanner/DatabaseClient.java  |  19 +-
 .../cloud/spanner/InstanceConfigInfo.java     |   6 +-
 .../com/google/cloud/spanner/Operation.java   |   7 +-
 .../com/google/cloud/spanner/Options.java     |   6 +-
 .../com/google/cloud/spanner/Session.java     |  12 +-
 .../google/cloud/spanner/SpannerOptions.java  |  12 +-
 .../google/cloud/spanner/StructReader.java    | 322 ++++++++++++------
 .../google/cloud/spanner/TimestampBound.java  |   8 +-
 .../cloud/spanner/TransactionContext.java     |  37 +-
 .../cloud/spanner/TransactionManager.java     |   3 +-
 .../cloud/spanner/TransactionRunner.java      |   3 +-
 .../com/google/cloud/spanner/ValueBinder.java |   2 +
 .../connection/AbstractStatementParser.java   |  53 ++-
 .../cloud/spanner/GrpcResultSetTest.java      |   2 +-
 .../spanner/InstanceAdminClientImplTest.java  |   2 +-
 .../spanner/TransactionRunnerImplTest.java    |   2 +-
 .../connection/AbstractSqlScriptVerifier.java |  24 +-
 .../spanner/connection/SqlScriptVerifier.java |   3 +-
 24 files changed, 371 insertions(+), 211 deletions(-)

diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml
index b712292013b..a6177d5b0ef 100644
--- a/.github/sync-repo-settings.yaml
+++ b/.github/sync-repo-settings.yaml
@@ -10,6 +10,7 @@ branchProtectionRules:
     requiredStatusCheckContexts:
       - dependencies (17)
       - lint
+      - javadoc
       - units (8)
       - units (11)
       - 'Kokoro - Test: Integration'
@@ -28,6 +29,7 @@ branchProtectionRules:
     requiredStatusCheckContexts:
       - dependencies (11)
       - lint
+      - javadoc
       - units (7)
       - units (8)
       - units (11)
@@ -42,6 +44,7 @@ branchProtectionRules:
     requiredStatusCheckContexts:
       - dependencies (11)
       - lint
+      - javadoc
       - units (7)
       - units (8)
       - units (11)
@@ -56,6 +59,7 @@ branchProtectionRules:
     requiredStatusCheckContexts:
       - dependencies (11)
       - lint
+      - javadoc
       - units (7)
       - units (8)
       - units (11)
@@ -69,6 +73,7 @@ branchProtectionRules:
     requiresStrictStatusChecks: false
     requiredStatusCheckContexts:
       - lint
+      - javadoc
       - units (8)
       - units (11)
       - 'Kokoro - Test: Integration'
@@ -81,6 +86,7 @@ branchProtectionRules:
     requiresStrictStatusChecks: false
     requiredStatusCheckContexts:
       - lint
+      - javadoc
       - units (8)
       - units (11)
       - 'Kokoro - Test: Integration'
@@ -95,6 +101,7 @@ branchProtectionRules:
     requiresStrictStatusChecks: false
     requiredStatusCheckContexts:
       - lint
+      - javadoc
       - units (8)
       - units (11)
       - 'Kokoro - Test: Integration'
@@ -109,6 +116,7 @@ branchProtectionRules:
     requiresStrictStatusChecks: false
     requiredStatusCheckContexts:
       - lint
+      - javadoc
       - units (8)
       - units (11)
       - 'Kokoro - Test: Integration'
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AbstractLazyInitializer.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AbstractLazyInitializer.java
index bc595b14662..73436852602 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AbstractLazyInitializer.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AbstractLazyInitializer.java
@@ -19,6 +19,8 @@
 /**
  * Generic {@link AbstractLazyInitializer} for any heavy-weight object that might throw an exception
  * during initialization. The underlying object is initialized at most once.
+ *
+ * @param  Object which is to be initialized lazily
  */
 public abstract class AbstractLazyInitializer {
   private final Object lock = new Object();
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncResultSet.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncResultSet.java
index 501ae054e9f..dfedcc4f8be 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncResultSet.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncResultSet.java
@@ -60,7 +60,8 @@ enum CallbackResponse {
     CONTINUE,
 
     /**
-     * Tell the cursor to suspend all callbacks until application calls {@link RowCursor#resume()}.
+     * Tell the cursor to suspend all callbacks until application calls {@link
+     * ForwardingAsyncResultSet#resume()}.
      */
     PAUSE,
 
@@ -68,8 +69,8 @@ enum CallbackResponse {
      * Tell the cursor you are done receiving results, even if there are more results sitting in the
      * buffer. Once you return DONE, you will receive no further callbacks.
      *
-     * 

Approximately equivalent to calling {@link RowCursor#cancel()}, and then returning {@code - * PAUSE}, but more clear, immediate, and idiomatic. + *

Approximately equivalent to calling {@link ForwardingAsyncResultSet#cancel()}, and then + * returning {@code PAUSE}, but more clear, immediate, and idiomatic. * *

It is legal to commit a transaction that owns this read before actually returning {@code * DONE}. @@ -105,17 +106,18 @@ interface ReadyCallback { *

  • Callback will stop being called once any of the following occurs: *
      *
    1. Callback returns {@link CallbackResponse#DONE}. - *
    2. {@link ResultSet#tryNext()} returns {@link CursorState#DONE}. - *
    3. {@link ResultSet#tryNext()} throws an exception. + *
    4. {@link ForwardingAsyncResultSet#tryNext()} returns {@link CursorState#DONE}. + *
    5. {@link ForwardingAsyncResultSet#tryNext()} throws an exception. *
    - *
  • Callback may possibly be invoked after a call to {@link ResultSet#cancel()} call, but the - * subsequent call to {@link #tryNext()} will yield a SpannerException. + *
  • Callback may possibly be invoked after a call to {@link + * ForwardingAsyncResultSet#cancel()} call, but the subsequent call to {@link #tryNext()} + * will yield a SpannerException. *
  • Spurious callbacks are possible where cursors are not actually ready. Typically callback * should return {@link CallbackResponse#CONTINUE} any time it sees {@link * CursorState#NOT_READY}. * * - *

    Flow Control

    + *

    Flow Control

    * * If no flow control is needed (say because result sizes are known in advance to be finite in * size) then async processing is simple. The following is a code example that transfers work from diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncRunner.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncRunner.java index 1703ef1ab27..3df3b9068b2 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncRunner.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncRunner.java @@ -18,6 +18,7 @@ import com.google.api.core.ApiFuture; import com.google.cloud.Timestamp; +import io.grpc.Status.Code; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; @@ -40,8 +41,8 @@ interface AsyncWork { *

    In most cases, the implementation will not need to catch {@code SpannerException}s from * Spanner operations, instead letting these propagate to the framework. The transaction runner * will take appropriate action based on the type of exception. In particular, implementations - * should never catch an exception of type {@link SpannerErrors#isAborted}: these indicate that - * some reads may have returned inconsistent data and the transaction attempt must be aborted. + * should never catch an exception of type {@link Code#ABORTED}: these indicate that some reads + * may have returned inconsistent data and the transaction attempt must be aborted. * * @param txn the transaction * @return future over the result of the work diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncTransactionManager.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncTransactionManager.java index 391be3d190b..c6ead432046 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncTransactionManager.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncTransactionManager.java @@ -18,7 +18,7 @@ import com.google.api.core.ApiFuture; import com.google.cloud.Timestamp; -import com.google.cloud.spanner.AsyncTransactionManager.TransactionContextFuture; +import com.google.cloud.spanner.Options.TransactionOption; import com.google.cloud.spanner.TransactionManager.TransactionState; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; @@ -43,7 +43,7 @@ * so can cause resources to be leaked and deadlocks. Easiest way to guarantee this is by calling * {@link #close()} in a finally block. * - * @see DatabaseClient#transactionManagerAsync() + * @see DatabaseClient#transactionManagerAsync(TransactionOption...) */ public interface AsyncTransactionManager extends AutoCloseable { /** @@ -91,10 +91,10 @@ Timestamp get(long timeout, TimeUnit unit) /** * {@link AsyncTransactionStep} is returned by {@link - * TransactionContextFuture#then(AsyncTransactionFunction)} and {@link - * AsyncTransactionStep#then(AsyncTransactionFunction)} and allows transaction steps that should - * be executed serially to be chained together. Each step can contain one or more statements that - * may execute in parallel. + * TransactionContextFuture#then(AsyncTransactionFunction, Executor)} and {@link + * AsyncTransactionStep#then(AsyncTransactionFunction, Executor)} and allows transaction steps + * that should be executed serially to be chained together. Each step can contain one or more + * statements that may execute in parallel. * *

    Example usage: * @@ -115,6 +115,9 @@ Timestamp get(long timeout, TimeUnit unit) * executor) * .commitAsync(); * }

  • + * + * @param + * @param */ interface AsyncTransactionStep extends ApiFuture { /** @@ -140,6 +143,9 @@ AsyncTransactionStep then( * a {@link TransactionContext} and the output value of the previous transaction step as its input * parameters. The method should return an {@link ApiFuture} that will return the result of this * step. + * + * @param + * @param */ interface AsyncTransactionFunction { /** @@ -151,8 +157,8 @@ interface AsyncTransactionFunction { * @param input the result of the previous transaction step. * @return an {@link ApiFuture} that will return the result of this step, and that will be the * input of the next transaction step. This method should never return null. - * Instead, if the method does not have a return value, the method should return {@link - * ApiFutures#immediateFuture(null)}. + * Instead, if the method does not have a return value, the method should return + * ApiFutures#immediateFuture(null). */ ApiFuture apply(TransactionContext txn, I input) throws Exception; } @@ -160,7 +166,7 @@ interface AsyncTransactionFunction { /** * Creates a new read write transaction. This must be called before doing any other operation and * can only be called once. To create a new transaction for subsequent retries, see {@link - * #resetForRetry()}. + * #resetForRetryAsync()}. */ TransactionContextFuture beginAsync(); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseAdminClient.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseAdminClient.java index 9168c2a11dd..8372bb61fd3 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseAdminClient.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseAdminClient.java @@ -137,7 +137,7 @@ default OperationFuture createDatabase( * Database db = op.waitFor().getResult(); * }
    * - * @see also #createDatabase(String, String, Iterable) + * @see #createDatabase(String, String, Iterable) */ OperationFuture createDatabase( Database database, Iterable statements) throws SpannerException; diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseClient.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseClient.java index a82225d5f44..f6acf04b6ca 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseClient.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseClient.java @@ -368,8 +368,8 @@ CommitResponse writeAtLeastOnceWithOptions( /** * Returns a transaction manager which allows manual management of transaction lifecycle. This API - * is meant for advanced users. Most users should instead use the {@link #readWriteTransaction()} - * API instead. + * is meant for advanced users. Most users should instead use the {@link + * #readWriteTransaction(TransactionOption...)} API instead. * *

    Example of using {@link TransactionManager}. * @@ -412,7 +412,7 @@ CommitResponse writeAtLeastOnceWithOptions( * *

    Example of a read write transaction. * - *

     
    +   * 
    {@code
        * Executor executor = Executors.newSingleThreadExecutor();
        * final long singerId = my_singer_id;
        * AsyncRunner runner = client.runAsync();
    @@ -432,7 +432,7 @@ CommitResponse writeAtLeastOnceWithOptions(
        *                   .build());
        *         },
        *         executor);
    -   * 
    + * }
    * * Options for a transaction can include: * @@ -449,7 +449,7 @@ CommitResponse writeAtLeastOnceWithOptions( /** * Returns an asynchronous transaction manager which allows manual management of transaction * lifecycle. This API is meant for advanced users. Most users should instead use the {@link - * #runAsync()} API instead. + * #runAsync(TransactionOption...)} API instead. * *

    Example of using {@link AsyncTransactionManager}. * @@ -514,12 +514,13 @@ CommitResponse writeAtLeastOnceWithOptions( * *

    Partitioned DML updates are used to execute a single DML statement with a different * execution strategy that provides different, and often better, scalability properties for large, - * table-wide operations than DML in a {@link #readWriteTransaction()} transaction. Smaller scoped - * statements, such as an OLTP workload, should prefer using {@link - * TransactionContext#executeUpdate(Statement)} with {@link #readWriteTransaction()}. + * table-wide operations than DML in a {@link #readWriteTransaction(TransactionOption...)} + * transaction. Smaller scoped statements, such as an OLTP workload, should prefer using {@link + * TransactionContext#executeUpdate(Statement,UpdateOption...)} with {@link + * #readWriteTransaction(TransactionOption...)}. * *

    That said, Partitioned DML is not a drop-in replacement for standard DML used in {@link - * #readWriteTransaction()}. + * #readWriteTransaction(TransactionOption...)}. * *

      *
    • The DML statement must be fully-partitionable. Specifically, the statement must be diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/InstanceConfigInfo.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/InstanceConfigInfo.java index f2b256fff40..39d32fc8a80 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/InstanceConfigInfo.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/InstanceConfigInfo.java @@ -117,9 +117,9 @@ public List getOptionalReplicas() { } /** - * Base configuration, e.g. projects//instanceConfigs/nam3, based on which this - * configuration is created. Only set for user managed configurations. The base config must refer - * to a configuration of type GOOGLE_MANAGED. + * Base configuration, e.g. {@code projects//instanceConfigs/nam3}, based on which + * this configuration is created. Only set for user managed configurations. The base config must + * refer to a configuration of type GOOGLE_MANAGED. */ public InstanceConfigInfo getBaseConfig() { return baseConfig; diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Operation.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Operation.java index bd238d3ef8b..f8f9d1e9779 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Operation.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Operation.java @@ -32,7 +32,12 @@ import javax.annotation.Nullable; import org.threeten.bp.Duration; -/** Represents a long running operation. */ +/** + * Represents a long-running operation. + * + * @param + * @param + */ // TODO(user): Implement other operations on Operation. public class Operation { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Options.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Options.java index 9712b508d5f..0d804bfd933 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Options.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Options.java @@ -156,9 +156,9 @@ public static ListOption pageSize(int pageSize) { } /** - * If this is for a partitioned read & query and this field is set to `true`, the request will be - * executed via Spanner independent compute resources. The method is available in Beta mode (and - * is not generally available now). + * If this is for a partitioned read and query and this field is set to `true`, the request will + * be executed via Spanner independent compute resources. The method is available in Beta mode + * (and is not generally available now). */ @BetaApi public static DataBoostQueryOption dataBoostEnabled(Boolean dataBoostEnabled) { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Session.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Session.java index d322e0fb6d0..98c40b49ccc 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Session.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Session.java @@ -18,6 +18,7 @@ import com.google.api.core.ApiFuture; import com.google.api.core.InternalApi; +import com.google.cloud.spanner.Options.TransactionOption; import com.google.protobuf.Empty; /** @@ -48,11 +49,12 @@ public interface Session extends DatabaseClient, AutoCloseable { String getName(); /** - * Prepares a transaction for use by a subsequent {@link #readWriteTransaction()} or {@link - * #write(Iterable)} call. It is not necessary to call this method before running a transaction or - * performing a write, but doing so may allow one round trip of the protocol to be performed in - * advance; calling this method on an idle session that is expected to execute a transaction or - * write in the near future may reduce the latency of the subsequent transaction/write. + * Prepares a transaction for use by a subsequent {@link + * DatabaseClient#readWriteTransaction(TransactionOption...)} or {@link #write(Iterable)} call. It + * is not necessary to call this method before running a transaction or performing a write, but + * doing so may allow one round trip of the protocol to be performed in advance; calling this + * method on an idle session that is expected to execute a transaction or write in the near future + * may reduce the latency of the subsequent transaction/write. */ void prepareReadWriteTransaction(); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java index 063ef8af4cf..5df163ecd87 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java @@ -32,6 +32,7 @@ import com.google.cloud.grpc.GcpManagedChannelOptions; import com.google.cloud.grpc.GrpcTransportOptions; import com.google.cloud.spanner.Options.QueryOption; +import com.google.cloud.spanner.Options.UpdateOption; import com.google.cloud.spanner.admin.database.v1.DatabaseAdminSettings; import com.google.cloud.spanner.admin.database.v1.stub.DatabaseAdminStubSettings; import com.google.cloud.spanner.admin.instance.v1.InstanceAdminSettings; @@ -134,10 +135,7 @@ public class SpannerOptions extends ServiceOptions { private final String compressorName; private final boolean leaderAwareRoutingEnabled; - /** - * Interface that can be used to provide {@link CallCredentials} instead of {@link Credentials} to - * {@link SpannerOptions}. - */ + /** Interface that can be used to provide {@link CallCredentials} to {@link SpannerOptions}. */ public interface CallCredentialsProvider { /** Return the {@link CallCredentials} to use for a gRPC call. */ CallCredentials getCallCredentials(); @@ -970,7 +968,7 @@ public DatabaseAdminStubSettings.Builder getDatabaseAdminStubSettingsBuilder() { /** * Sets a timeout specifically for Partitioned DML statements executed through {@link - * DatabaseClient#executePartitionedUpdate(Statement)}. The default is 2 hours. + * DatabaseClient#executePartitionedUpdate(Statement, UpdateOption...)}. The default is 2 hours. */ public Builder setPartitionedDmlTimeout(Duration timeout) { this.partitionedDmlTimeout = timeout; @@ -1065,9 +1063,7 @@ QueryOptions getEnvironmentQueryOptions() { /** * Sets a {@link CallCredentialsProvider} that can deliver {@link CallCredentials} to use on a - * per-gRPC basis. Any credentials returned by this {@link CallCredentialsProvider} will have - * preference above any {@link Credentials} that may have been set on the {@link SpannerOptions} - * instance. + * per-gRPC basis. */ public Builder setCallCredentialsProvider(CallCredentialsProvider callCredentialsProvider) { this.callCredentialsProvider = callCredentialsProvider; diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/StructReader.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/StructReader.java index b767bd6d82c..ad085ca2dcc 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/StructReader.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/StructReader.java @@ -52,323 +52,423 @@ */ public interface StructReader { /** - * Returns the type of the underlying data. This will always be a {@code STRUCT} type, with fields - * corresponding to the data's columns. For the result of a read or query, this will always match - * the columns passed to the {@code read()} call or named in the query text, in order. + * @return the type of the underlying data. This will always be a {@code STRUCT} type, with fields + * corresponding to the data's columns. For the result of a read or query, this will always + * match the columns passed to the {@code read()} call or named in the query text, in order. */ Type getType(); /** - * Returns the number of columns in the underlying data. This includes any columns with {@code - * NULL} values. + * @return the number of columns in the underlying data. This includes any columns with {@code + * NULL} values. */ int getColumnCount(); /** - * Returns the index of the column named {@code columnName}. - * + * @param columnName name of the column + * @return the index of the column named {@code columnName}. * @throws IllegalArgumentException if there is not exactly one element of {@code * type().structFields()} with {@link Type.StructField#getName()} equal to {@code columnName} */ int getColumnIndex(String columnName); - /** Returns the type of a column. */ + /** + * @param columnIndex index of the column + * @return the type of a column. + */ Type getColumnType(int columnIndex); - /** Returns the type of a column. */ + /** + * @param columnName name of the column + * @return the type of a column. + */ Type getColumnType(String columnName); - /** Returns {@code true} if a column contains a {@code NULL} value. */ + /** + * @param columnIndex index of the column + * @return {@code true} if a column contains a {@code NULL} value. + */ boolean isNull(int columnIndex); - /** Returns {@code true} if a column contains a {@code NULL} value. */ + /** + * @param columnName name of the column + * @return {@code true} if a column contains a {@code NULL} value. + */ boolean isNull(String columnName); - /** Returns the value of a non-{@code NULL} column with type {@link Type#bool()}. */ + /** + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@link Type#bool()}. + */ boolean getBoolean(int columnIndex); - /** Returns the value of a non-{@code NULL} column with type {@link Type#bool()}. */ + /** + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@link Type#bool()}. + */ boolean getBoolean(String columnName); - /** Returns the value of a non-{@code NULL} column with type {@link Type#int64()}. */ + /** + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@link Type#int64()}. + */ long getLong(int columnIndex); - /** Returns the value of a non-{@code NULL} column with type {@link Type#int64()}. */ + /** + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@link Type#int64()}. + */ long getLong(String columnName); - /** Returns the value of a non-{@code NULL} column with type {@link Type#float64()}. */ + /** + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@link Type#float64()}. + */ double getDouble(int columnIndex); - /** Returns the value of a non-{@code NULL} column with type {@link Type#float64()}. */ + /** + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@link Type#float64()}. + */ double getDouble(String columnName); - /** Returns the value of a non-{@code NULL} column with type {@link Type#numeric()}. */ + /** + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@link Type#numeric()}. + */ BigDecimal getBigDecimal(int columnIndex); - /** Returns the value of a non-{@code NULL} column with type {@link Type#numeric()}. */ + /** + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@link Type#numeric()}. + */ BigDecimal getBigDecimal(String columnName); - /** Returns the value of a non-{@code NULL} column with type {@link Type#string()}. */ + /** + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@link Type#string()}. + */ String getString(int columnIndex); - /** Returns the value of a non-{@code NULL} column with type {@link Type#string()}. */ + /** + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@link Type#string()}. + */ String getString(String columnName); - /** Returns the value of a non-{@code NULL} column with type {@link Type#json()}. */ + /** + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@link Type#json()}. + */ default String getJson(int columnIndex) { throw new UnsupportedOperationException("method should be overwritten"); } - /** Returns the value of a non-{@code NULL} column with type {@link Type#json()}. */ + /** + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@link Type#json()}. + */ default String getJson(String columnName) { throw new UnsupportedOperationException("method should be overwritten"); } - /** Returns the value of a non-{@code NULL} column with type {@link Type#pgJsonb()}. */ + /** + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@link Type#pgJsonb()}. + */ default String getPgJsonb(int columnIndex) { throw new UnsupportedOperationException("method should be overwritten"); } - /** Returns the value of a non-{@code NULL} column with type {@link Type#pgJsonb()}. */ + /** + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@link Type#pgJsonb()}. + */ default String getPgJsonb(String columnName) { throw new UnsupportedOperationException("method should be overwritten"); } - /** Returns the value of a non-{@code NULL} column with type {@link Type#bytes()}. */ + /** + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@link Type#bytes()}. + */ ByteArray getBytes(int columnIndex); - /** Returns the value of a non-{@code NULL} column with type {@link Type#bytes()}. */ + /** + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@link Type#bytes()}. + */ ByteArray getBytes(String columnName); - /** Returns the value of a non-{@code NULL} column with type {@link Type#timestamp()}. */ + /** + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@link Type#timestamp()}. + */ Timestamp getTimestamp(int columnIndex); - /** Returns the value of a non-{@code NULL} column with type {@link Type#timestamp()}. */ + /** + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@link Type#timestamp()}. + */ Timestamp getTimestamp(String columnName); - /** Returns the value of a non-{@code NULL} column with type {@link Type#date()}. */ + /** + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@link Type#date()}. + */ Date getDate(int columnIndex); - /** Returns the value of a non-{@code NULL} column with type {@link Type#date()}. */ + /** + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@link Type#date()}. + */ Date getDate(String columnName); - /** Returns the value of a nullable column as a {@link Value}. */ + /** + * @param columnIndex index of the column + * @return the value of a nullable column as a {@link Value}. + */ default Value getValue(int columnIndex) { throw new UnsupportedOperationException("method should be overwritten"); } - /** Returns the value of a nullable column as a {@link Value}. */ + /** + * @param columnName name of the column + * @return the value of a nullable column as a {@link Value}. + */ default Value getValue(String columnName) { throw new UnsupportedOperationException("method should be overwritten"); } /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.bool())}. - * + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.bool())}. * @throws NullPointerException if any element of the array value is {@code NULL}. If the array * may contain {@code NULL} values, use {@link #getBooleanList(int)} instead. */ boolean[] getBooleanArray(int columnIndex); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.bool())}. - * + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.bool())}. * @throws NullPointerException if any element of the array value is {@code NULL}. If the array * may contain {@code NULL} values, use {@link #getBooleanList(String)} instead. */ boolean[] getBooleanArray(String columnName); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.bool())}. The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.bool())}. The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getBooleanList(int columnIndex); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.bool())}. The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.bool())}. The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getBooleanList(String columnName); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.int64())}. - * + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.int64())}. * @throws NullPointerException if any element of the array value is {@code NULL}. If the array * may contain {@code NULL} values, use {@link #getLongList(int)} instead. */ long[] getLongArray(int columnIndex); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.int64())}. - * + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.int64())}. * @throws NullPointerException if any element of the array value is {@code NULL}. If the array * may contain {@code NULL} values, use {@link #getLongList(String)} instead. */ long[] getLongArray(String columnName); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.int64())}. The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.int64())}. The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getLongList(int columnIndex); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.int64())}. The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnName + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.int64())}. The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getLongList(String columnName); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.float64())}. - * + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.float64())}. * @throws NullPointerException if any element of the array value is {@code NULL}. If the array * may contain {@code NULL} values, use {@link #getDoubleList(int)} instead. */ double[] getDoubleArray(int columnIndex); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.float64())}. - * + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.float64())}. * @throws NullPointerException if any element of the array value is {@code NULL}. If the array * may contain {@code NULL} values, use {@link #getDoubleList(String)} instead. */ double[] getDoubleArray(String columnName); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.float64())} The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.float64())} The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getDoubleList(int columnIndex); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.float64())} The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.float64())} The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getDoubleList(String columnName); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.numeric())} The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.numeric())} The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getBigDecimalList(int columnIndex); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.numeric())} The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.numeric())} The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getBigDecimalList(String columnName); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.string())}. The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.string())}. The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getStringList(int columnIndex); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.string())}. The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.string())}. The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getStringList(String columnName); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.json())}. The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.json())}. The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ default List getJsonList(int columnIndex) { throw new UnsupportedOperationException("method should be overwritten"); }; /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.json())}. The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.json())}. The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ default List getJsonList(String columnName) { throw new UnsupportedOperationException("method should be overwritten"); }; /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.pgJsonb())} The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.pgJsonb())} The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ default List getPgJsonbList(int columnIndex) { throw new UnsupportedOperationException("method should be overwritten"); }; /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.pgJsonb())} The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.pgJsonb())} The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ default List getPgJsonbList(String columnName) { throw new UnsupportedOperationException("method should be overwritten"); }; /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.bytes())}. The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.bytes())}. The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getBytesList(int columnIndex); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.bytes())}. The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.bytes())}. The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getBytesList(String columnName); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.timestamp())} - * The list returned by this method is lazily constructed. Create a copy of it if you intend to - * access each element in the list multiple times. + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.timestamp())} + * The list returned by this method is lazily constructed. Create a copy of it if you intend + * to access each element in the list multiple times. */ List getTimestampList(int columnIndex); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.timestamp())} - * The list returned by this method is lazily constructed. Create a copy of it if you intend to - * access each element in the list multiple times. + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.timestamp())} + * The list returned by this method is lazily constructed. Create a copy of it if you intend + * to access each element in the list multiple times. */ List getTimestampList(String columnName); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.date())}. The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.date())}. The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getDateList(int columnIndex); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.date())}. The - * list returned by this method is lazily constructed. Create a copy of it if you intend to access - * each element in the list multiple times. + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.date())}. The + * list returned by this method is lazily constructed. Create a copy of it if you intend to + * access each element in the list multiple times. */ List getDateList(String columnName); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.struct(...))} - * The list returned by this method is lazily constructed. Create a copy of it if you intend to - * access each element in the list multiple times. + * @param columnIndex index of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.struct(...))} + * The list returned by this method is lazily constructed. Create a copy of it if you intend + * to access each element in the list multiple times. */ List getStructList(int columnIndex); /** - * Returns the value of a non-{@code NULL} column with type {@code Type.array(Type.struct(...))} - * The list returned by this method is lazily constructed. Create a copy of it if you intend to - * access each element in the list multiple times. + * @param columnName name of the column + * @return the value of a non-{@code NULL} column with type {@code Type.array(Type.struct(...))} + * The list returned by this method is lazily constructed. Create a copy of it if you intend + * to access each element in the list multiple times. */ List getStructList(String columnName); } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TimestampBound.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TimestampBound.java index 5d14687b4c0..6502077cd65 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TimestampBound.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TimestampBound.java @@ -46,7 +46,7 @@ * *

      Each type of timestamp bound is discussed in detail below. * - *

      Strong reads

      + *

      Strong reads

      * *

      Strong reads are guaranteed to see the effects of all transactions that have committed before * the start of the read. Furthermore, all rows yielded by a single read are consistent with each @@ -59,7 +59,7 @@ * *

      Use {@link #strong()} to create a bound of this type. * - *

      Exact Staleness

      + *

      Exact Staleness

      * *

      These timestamp bounds execute reads at a user-specified timestamp. Reads at a timestamp are * guaranteed to see a consistent prefix of the global transaction history: they observe @@ -78,7 +78,7 @@ *

      Use {@link #ofReadTimestamp(Timestamp)} and {@link #ofExactStaleness(long, TimeUnit)} to * create a bound of this type. * - *

      Bounded Staleness

      + *

      Bounded Staleness

      * *

      Bounded staleness modes allow Cloud Spanner to pick the read timestamp, subject to a * user-provided staleness bound. Cloud Spanner chooses the newest timestamp within the staleness @@ -103,7 +103,7 @@ *

      Use {@link #ofMinReadTimestamp(Timestamp)} and {@link #ofMaxStaleness(long, TimeUnit)} to * create a bound of this type. * - *

      Old Read Timestamps and Garbage Collection

      + *

      Old Read Timestamps and Garbage Collection

      * *

      Cloud Spanner continuously garbage collects deleted and overwritten data in the background to * reclaim storage space. This process is known as "version GC". By default, version GC reclaims diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionContext.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionContext.java index b858616c131..4a21d9c2cca 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionContext.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionContext.java @@ -17,6 +17,7 @@ package com.google.cloud.spanner; import com.google.api.core.ApiFuture; +import com.google.cloud.spanner.Options.TransactionOption; import com.google.cloud.spanner.Options.UpdateOption; import com.google.spanner.v1.ResultSetStats; @@ -44,7 +45,7 @@ *

      Conceptually, a read-write transaction consists of zero or more reads or SQL queries followed * by a commit. * - *

      Semantics

      + *

      Semantics

      * *

      Cloud Spanner can commit the transaction if all read locks it acquired are still valid at * commit time, and it is able to acquire write locks for all writes. Cloud Spanner can abort the @@ -55,7 +56,7 @@ * transaction's locks were held for. It is an error to use Cloud Spanner locks for any sort of * mutual exclusion other than between Cloud Spanner transactions themselves. * - *

      Retrying Aborted Transactions

      + *

      Retrying Aborted Transactions

      * *

      When a transaction aborts, the application can choose to retry the whole transaction again. To * maximize the chances of successfully committing the retry, the client should execute the retry in @@ -71,7 +72,7 @@ *

      Application code does not need to retry explicitly; {@link TransactionRunner} will * automatically retry a transaction if an attempt results in an abort. * - *

      Idle Transactions

      + *

      Idle Transactions

      * *

      A transaction is considered idle if it has no outstanding reads or SQL queries and has not * started a read or SQL query within the last 10 seconds. Idle transactions can be aborted by Cloud @@ -81,7 +82,7 @@ *

      If this behavior is undesirable, periodically executing a simple SQL query in the transaction * (e.g., {@code SELECT 1}) prevents the transaction from becoming idle. * - * @see Session#readWriteTransaction() + * @see DatabaseClient#readWriteTransaction(TransactionOption...) * @see TransactionRunner */ public interface TransactionContext extends ReadContext { @@ -118,13 +119,13 @@ default ApiFuture bufferAsync(Iterable mutations) { long executeUpdate(Statement statement, UpdateOption... options); /** - * Same as {@link #executeUpdate(Statement)}, but is guaranteed to be non-blocking. If multiple - * asynchronous update statements are submitted to the same read/write transaction, the statements - * are guaranteed to be submitted to Cloud Spanner in the order that they were submitted in the - * client. This does however not guarantee that an asynchronous update statement will see the - * results of all previously submitted statements, as the execution of the statements can be - * parallel. If you rely on the results of a previous statement, you should block until the result - * of that statement is known and has been returned to the client. + * Same as {@link #executeUpdate(Statement,UpdateOption...)}, but is guaranteed to be + * non-blocking. If multiple asynchronous update statements are submitted to the same read/write + * transaction, the statements are guaranteed to be submitted to Cloud Spanner in the order that + * they were submitted in the client. This does however not guarantee that an asynchronous update + * statement will see the results of all previously submitted statements, as the execution of the + * statements can be parallel. If you rely on the results of a previous statement, you should + * block until the result of that statement is known and has been returned to the client. */ ApiFuture executeUpdateAsync(Statement statement, UpdateOption... options); @@ -179,13 +180,13 @@ default ResultSet analyzeUpdateStatement( long[] batchUpdate(Iterable statements, UpdateOption... options); /** - * Same as {@link #batchUpdate(Iterable)}, but is guaranteed to be non-blocking. If multiple - * asynchronous update statements are submitted to the same read/write transaction, the statements - * are guaranteed to be submitted to Cloud Spanner in the order that they were submitted in the - * client. This does however not guarantee that an asynchronous update statement will see the - * results of all previously submitted statements, as the execution of the statements can be - * parallel. If you rely on the results of a previous statement, you should block until the result - * of that statement is known and has been returned to the client. + * Same as {@link #batchUpdate(Iterable, UpdateOption...)}, but is guaranteed to be non-blocking. + * If multiple asynchronous update statements are submitted to the same read/write transaction, + * the statements are guaranteed to be submitted to Cloud Spanner in the order that they were + * submitted in the client. This does however not guarantee that an asynchronous update statement + * will see the results of all previously submitted statements, as the execution of the statements + * can be parallel. If you rely on the results of a previous statement, you should block until the + * result of that statement is known and has been returned to the client. */ ApiFuture batchUpdateAsync(Iterable statements, UpdateOption... options); } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManager.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManager.java index 0615e45b940..76656efea28 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManager.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManager.java @@ -17,6 +17,7 @@ package com.google.cloud.spanner; import com.google.cloud.Timestamp; +import com.google.cloud.spanner.Options.TransactionOption; /** * An interface for managing the life cycle of a read write transaction including all its retries. @@ -33,7 +34,7 @@ * can cause resources to be leaked and deadlocks. Easiest way to guarantee this is by calling * {@link #close()} in a finally block. * - * @see DatabaseClient#transactionManager() + * @see DatabaseClient#transactionManager(TransactionOption...) */ public interface TransactionManager extends AutoCloseable { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionRunner.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionRunner.java index e7167451f01..09bc11f152b 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionRunner.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionRunner.java @@ -17,13 +17,14 @@ package com.google.cloud.spanner; import com.google.cloud.Timestamp; +import com.google.cloud.spanner.Options.TransactionOption; import javax.annotation.Nullable; /** * An interface for executing a body of work in the context of a read-write transaction, with * retries for transaction aborts. See {@link TransactionContext} for a description of transaction * semantics. {@code TransactionRunner} instances are obtained by calling {@link - * Session#readWriteTransaction()}. + * DatabaseClient#readWriteTransaction(TransactionOption...)}. * *

      A {@code TransactionRunner} instance can only be used for a single invocation of {@link * #run(TransactionCallable)}. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/ValueBinder.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/ValueBinder.java index e16b858faa8..07066470da6 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/ValueBinder.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/ValueBinder.java @@ -31,6 +31,8 @@ * *

      {@code ValueBinder} subclasses typically carry state and are therefore not thread-safe, * although the core implementation itself is thread-safe. + * + * @param The context which is used to bind the {@link Value}. */ public abstract class ValueBinder { /** diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractStatementParser.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractStatementParser.java index b0ae8863e6f..0d9c431e171 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractStatementParser.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractStatementParser.java @@ -57,7 +57,12 @@ public abstract class AbstractStatementParser { Dialect.POSTGRESQL, PostgreSQLStatementParser.class); - /** Get an instance of {@link AbstractStatementParser} for the specified dialect. */ + /** + * Get an instance of {@link AbstractStatementParser} for the specified dialect. + * + * @param dialect + * @return + */ public static AbstractStatementParser getInstance(Dialect dialect) { synchronized (lock) { if (!INSTANCES.containsKey(dialect)) { @@ -227,21 +232,21 @@ public boolean equals(Object other) { && Objects.equals(this.sqlWithoutComments, o.sqlWithoutComments); } - /** Returns the type of statement that was recognized by the parser. */ + /** @return the type of statement that was recognized by the parser. */ @InternalApi public StatementType getType() { return type; } - /** Returns whether the statement has a returning clause or not. * */ + /** @return whether the statement has a returning clause or not. */ @InternalApi public boolean hasReturningClause() { return this.returningClause; } /** - * Returns true if the statement is a query that will return a {@link - * com.google.cloud.spanner.ResultSet}. + * @return true if the statement is a query that will return a {@link + * com.google.cloud.spanner.ResultSet}. */ @InternalApi public boolean isQuery() { @@ -259,8 +264,8 @@ public boolean isQuery() { } /** - * Returns true if the statement is a DML statement or a client side statement that will return - * an update count. + * @return true if the statement is a DML statement or a client side statement that will return + * an update count. */ @InternalApi public boolean isUpdate() { @@ -277,7 +282,7 @@ public boolean isUpdate() { return false; } - /** Returns true if the statement is a DDL statement. */ + /** @return true if the statement is a DDL statement. */ @InternalApi public boolean isDdl() { switch (type) { @@ -293,8 +298,8 @@ public boolean isDdl() { } /** - * Returns the {@link ClientSideStatementType} of this statement. This method may only be called - * on statements of type {@link StatementType#CLIENT_SIDE}. + * @return the {@link ClientSideStatementType} of this statement. This method may only be called + * on statements of type {@link StatementType#CLIENT_SIDE}. */ @InternalApi public ClientSideStatementType getClientSideStatementType() { @@ -326,7 +331,7 @@ Statement mergeQueryOptions(Statement statement, QueryOptions defaultQueryOption .build(); } - /** Returns the SQL statement with all comments removed from the SQL string. */ + /** @return the SQL statement with all comments removed from the SQL string. */ @InternalApi public String getSqlWithoutComments() { return sqlWithoutComments; @@ -494,6 +499,12 @@ private boolean statementStartsWith(String sql, Iterable checkStatements @InternalApi abstract String removeCommentsAndTrimInternal(String sql); + /** + * Removes comments from and trims the given sql statement using the dialect of this parser. + * + * @param sql The sql statement to remove comments from and to trim. + * @return the sql statement without the comments and leading and trailing spaces. + */ @InternalApi public String removeCommentsAndTrim(String sql) { return removeCommentsAndTrimInternal(sql); @@ -531,6 +542,19 @@ public static class ParametersInfo { abstract ParametersInfo convertPositionalParametersToNamedParametersInternal( char paramChar, String sql); + /** + * Converts all positional parameters (?) in the given sql string into named parameters. The + * parameters are named @p1, @p2, etc. This method is used when converting a JDBC statement that + * uses positional parameters to a Cloud Spanner {@link Statement} instance that requires named + * parameters. The input SQL string may not contain any comments. There is an exception case if + * the statement starts with a GSQL comment which forces it to be interpreted as a GoogleSql + * statement. + * + * @param sql The sql string without comments that should be converted + * @return A {@link ParametersInfo} object containing a string with named parameters instead of + * positional parameters and the number of parameters. + * @throws SpannerException If the input sql string contains an unclosed string/byte literal. + */ @InternalApi public ParametersInfo convertPositionalParametersToNamedParameters(char paramChar, String sql) { return convertPositionalParametersToNamedParametersInternal(paramChar, sql); @@ -557,6 +581,13 @@ static int countOccurrencesOf(char c, String string) { @InternalApi protected abstract boolean checkReturningClauseInternal(String sql); + /** + * Checks if the given SQL string contains a Returning clause. This method is used only in case of + * a DML statement. + * + * @param sql The sql string without comments that has to be evaluated. + * @return A boolean indicating whether the sql string has a Returning clause or not. + */ @InternalApi public boolean checkReturningClause(String sql) { return checkReturningClauseInternal(sql); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/GrpcResultSetTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/GrpcResultSetTest.java index 490eff3aca8..e35ecf9ad9a 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/GrpcResultSetTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/GrpcResultSetTest.java @@ -51,7 +51,7 @@ import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -/** Unit tests for {@link com.google.cloud.spanner.SpannerImpl.GrpcResultSet}. */ +/** Unit tests for {@link com.google.cloud.spanner.AbstractResultSet.GrpcResultSet}. */ @RunWith(JUnit4.class) public class GrpcResultSetTest { diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/InstanceAdminClientImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/InstanceAdminClientImplTest.java index d8134ef29d6..7084290b24a 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/InstanceAdminClientImplTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/InstanceAdminClientImplTest.java @@ -54,7 +54,7 @@ import org.junit.runners.JUnit4; import org.mockito.Mock; -/** Unit tests for {@link com.google.cloud.spanner.SpannerImpl.InstanceAdminClientImpl}. */ +/** Unit tests for {@link com.google.cloud.spanner.InstanceAdminClientImpl}. */ @RunWith(JUnit4.class) public class InstanceAdminClientImplTest { private static final String PROJECT_ID = "my-project"; diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionRunnerImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionRunnerImplTest.java index df8245e6acb..e13b7b75093 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionRunnerImplTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionRunnerImplTest.java @@ -73,7 +73,7 @@ import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -/** Unit test for {@link com.google.cloud.spanner.SpannerImpl.TransactionRunnerImpl} */ +/** Unit test for {@link com.google.cloud.spanner.TransactionRunnerImpl} */ @RunWith(JUnit4.class) public class TransactionRunnerImplTest { private static final class TestExecutorFactory diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractSqlScriptVerifier.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractSqlScriptVerifier.java index ec40c8c0d0b..15d6cf65808 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractSqlScriptVerifier.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractSqlScriptVerifier.java @@ -70,9 +70,9 @@ * equal. The value of a variable can be set using a @PUT statement. *

    * - * The parser can set a temporary variable value using a @PUT statement: - * @PUT 'variable_name'\nSQL statement The SQL statement must be a statement that returns a - * {@link ResultSet} containing exactly one row and one column. + * The parser can set a temporary variable value using a @PUT statement: {@code @PUT + * 'variable_name'\nSQL statement} The SQL statement must be a statement that returns a {@link + * ResultSet} containing exactly one row and one column. * *

    In addition the verifier can create new connections if the script contains NEW_CONNECTION; * statements and the verifier has been created with a {@link GenericConnectionProvider}. See {@link @@ -130,7 +130,7 @@ protected abstract static class GenericStatementResult { /** * Generic wrapper around a connection to a database. The underlying connection could be a Spanner - * {@link com.google.cloud.spanner.jdbc.Connection} or a JDBC {@link java.sql.Connection} + * {@link com.google.cloud.spanner.connection.Connection} or a JDBC {@link java.sql.Connection} */ public abstract static class GenericConnection implements AutoCloseable { protected abstract GenericStatementResult execute(String sql) throws Exception; @@ -208,8 +208,8 @@ public AbstractSqlScriptVerifier(GenericConnectionProvider provider) { * Statements without an @EXPECT statement will be executed and its result will be ignored, unless * the statement throws an exception, which will fail the test case. * - *

    The {@link com.google.cloud.spanner.jdbc.Connection}s that the statements are executed on - * must be created by a {@link GenericConnectionProvider} + *

    The {@link com.google.cloud.spanner.connection.Connection}s that the statements are executed + * on must be created by a {@link GenericConnectionProvider} * * @param filename The file name containing the statements. Statements must be separated by a * semicolon (;) @@ -229,8 +229,8 @@ public void verifyStatementsInFile(String filename, Class resourceClass, bool * Statements without an @EXPECT statement will be executed and its result will be ignored, unless * the statement throws an exception, which will fail the test case. * - *

    The {@link com.google.cloud.spanner.jdbc.Connection}s that the statements are executed on - * must be created by a {@link GenericConnectionProvider} + *

    The {@link com.google.cloud.spanner.connection.Connection}s that the statements are executed + * on must be created by a {@link GenericConnectionProvider} * * @param filename The file name containing the statements. Statements must be separated by a * semicolon (;) @@ -250,8 +250,8 @@ public void verifyStatementsInFile(String filename, Class resourceClass) thro * Statements without an @EXPECT statement will be executed and its result will be ignored, unless * the statement throws an exception, which will fail the test case. * - * @param providedConnection The {@link com.google.cloud.spanner.jdbc.Connection} to execute the - * statements against + * @param providedConnection The {@link com.google.cloud.spanner.connection.Connection} to execute + * the statements against * @param filename The file name containing the statements. Statements must be separated by a * semicolon (;) * @param resourceClass The class that defines the package where to find the input file @@ -271,8 +271,8 @@ public void verifyStatementsInFile( * Statements without an @EXPECT statement will be executed and its result will be ignored, unless * the statement throws an exception, which will fail the test case. * - * @param providedConnection The {@link com.google.cloud.spanner.jdbc.Connection} to execute the - * statements against + * @param providedConnection The {@link com.google.cloud.spanner.connection.Connection} to execute + * the statements against * @param filename The file name containing the statements. Statements must be separated by a * semicolon (;) * @param resourceClass The class that defines the package where to find the input file diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SqlScriptVerifier.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SqlScriptVerifier.java index 15b031705e3..8e88d4a1420 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SqlScriptVerifier.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SqlScriptVerifier.java @@ -28,7 +28,8 @@ import com.google.cloud.spanner.connection.StatementResult.ResultType; /** - * SQL script verifier implementation for Spanner {@link com.google.cloud.spanner.jdbc.Connection} + * SQL script verifier implementation for Spanner {@link + * com.google.cloud.spanner.connection.Connection} * * @see AbstractSqlScriptVerifier for more information */ From 8801b2bf639b7903958668a2274a6e5d457de00a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 26 Jul 2023 17:07:15 +0200 Subject: [PATCH 15/22] deps: update dependency org.junit.vintage:junit-vintage-engine to v5.10.0 (#2539) --- samples/native-image/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image/pom.xml b/samples/native-image/pom.xml index fa85123985f..1ad094fac39 100644 --- a/samples/native-image/pom.xml +++ b/samples/native-image/pom.xml @@ -103,7 +103,7 @@ org.junit.vintage junit-vintage-engine - 5.9.3 + 5.10.0 test From 7002c2aaccb9b477d701be111002df09e8c81a19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 15:32:12 +0000 Subject: [PATCH 16/22] build(deps): bump certifi from 2022.12.7 to 2023.7.22 in /.kokoro (#2545) Bumps [certifi](https://togithub.com/certifi/python-certifi) from 2022.12.7 to 2023.7.22.

    Commits

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=certifi&package-manager=pip&previous-version=2022.12.7&new-version=2023.7.22)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://togithub.com/googleapis/java-spanner/network/alerts).
    From 9396d8d8b5450dd545687af6c513b7f6c7a6c283 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 26 Jul 2023 20:23:50 +0200 Subject: [PATCH 17/22] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.1 (#2537) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cc8c0e80407..579d3092bf6 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-spanner-parent - 3.13.0 + 3.13.1 From 8f18fcd398e5d4baa90019f8659c36194d287329 Mon Sep 17 00:00:00 2001 From: Rajat Bhatta <93644539+rajatbhatta@users.noreply.github.com> Date: Thu, 27 Jul 2023 00:04:13 +0530 Subject: [PATCH 18/22] Revert "feat: Enable leader aware routing by default" (#2547) Reverts googleapis/java-spanner#2538 --- .../src/main/java/com/google/cloud/spanner/SpannerOptions.java | 2 +- .../test/java/com/google/cloud/spanner/SpannerOptionsTest.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java index 5df163ecd87..2f3bf10f9aa 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java @@ -700,7 +700,7 @@ public static class Builder private CloseableExecutorProvider asyncExecutorProvider; private String compressorName; private String emulatorHost = System.getenv("SPANNER_EMULATOR_HOST"); - private boolean leaderAwareRoutingEnabled = true; + private boolean leaderAwareRoutingEnabled = false; private Builder() { // Manually set retry and polling settings that work. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerOptionsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerOptionsTest.java index 7061e255758..03844a6b105 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerOptionsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerOptionsTest.java @@ -680,7 +680,8 @@ public void testCompressorName() { @Test public void testLeaderAwareRoutingEnablement() { - assertTrue(SpannerOptions.newBuilder().setProjectId("p").build().isLeaderAwareRoutingEnabled()); + assertFalse( + SpannerOptions.newBuilder().setProjectId("p").build().isLeaderAwareRoutingEnabled()); assertTrue( SpannerOptions.newBuilder() .setProjectId("p") From 47c6a430405ebf1c2fe392991e3f4554e9ac37aa Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 26 Jul 2023 20:52:12 +0200 Subject: [PATCH 19/22] deps: update dependency com.google.cloud:google-cloud-trace to v2.22.0 (#2543) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-trace](https://togithub.com/googleapis/google-cloud-java) | `2.21.0` -> `2.22.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-trace/2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-trace/2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-trace/2.21.0/2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-trace/2.21.0/2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-spanner). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 634c2c2acea..15f7f8fdff3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -22,7 +22,7 @@ 1.8 UTF-8 0.31.1 - 2.21.0 + 2.22.0 3.22.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 47925e2ecc7..37cb5199228 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -22,7 +22,7 @@ 1.8 UTF-8 0.31.1 - 2.21.0 + 2.22.0 3.22.0 From 67351dd2cb557d461421c4a0321ae6d2d0fd9dcb Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 26 Jul 2023 21:28:12 +0200 Subject: [PATCH 20/22] deps: update dependency com.google.cloud:google-cloud-monitoring to v3.23.0 (#2542) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-monitoring](https://togithub.com/googleapis/google-cloud-java) | `3.22.0` -> `3.23.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-monitoring/3.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-monitoring/3.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-monitoring/3.22.0/3.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-monitoring/3.22.0/3.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-spanner). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 15f7f8fdff3..227e9e154c2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -23,7 +23,7 @@ UTF-8 0.31.1 2.22.0 - 3.22.0 + 3.23.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 37cb5199228..cf4f2232488 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -23,7 +23,7 @@ UTF-8 0.31.1 2.22.0 - 3.22.0 + 3.23.0 From 6a3480de820cc13f8e00621635a4040fe5e945a6 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 27 Jul 2023 06:32:13 +0000 Subject: [PATCH 21/22] chore: update requirements.txt to address dependabot security alerts (#1829) (#2541) * chore: update dependencies in requirements.txt to address dependabot security alerts * update dependencies within gcp/templates --------- Co-authored-by: Anthonios Partheniou Source-Link: https://togithub.com/googleapis/synthtool/commit/af76aa51249c5f6d8efb66e8ac390ec651f9f2f6 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:46d2d262cd285c638656c8bde468011b723dc0c7ffd6a5ecc2650fe639c82e8f --- .github/.OwlBot.lock.yaml | 4 +- .kokoro/requirements.txt | 573 ++++++++++++++++++++++---------------- 2 files changed, 332 insertions(+), 245 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 258389d1aa6..d5500ef4424 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:31c8276a1bfb43766597d32645721c029cb94571f1b8d996cb2c290744fe52f9 -# created: 2023-06-27T18:51:58.922150125Z + digest: sha256:46d2d262cd285c638656c8bde468011b723dc0c7ffd6a5ecc2650fe639c82e8f +# created: 2023-07-24T14:21:17.707234503Z diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index c80f0a87cc5..32989051e7f 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -1,20 +1,20 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # -# pip-compile --allow-unsafe --generate-hashes requirements.in +# pip-compile requirements.in --generate-hashes --upgrade # -attrs==22.1.0 \ - --hash=sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6 \ - --hash=sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c +attrs==23.1.0 \ + --hash=sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04 \ + --hash=sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015 # via gcp-releasetool -cachetools==4.2.4 \ - --hash=sha256:89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693 \ - --hash=sha256:92971d3cb7d2a97efff7c7bb1657f21a8f5fb309a37530537c71b1774189f2d1 +cachetools==5.3.1 \ + --hash=sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590 \ + --hash=sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b # via google-auth -certifi==2022.12.7 \ - --hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \ - --hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18 +certifi==2023.5.7 \ + --hash=sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7 \ + --hash=sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716 # via requests cffi==1.15.1 \ --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ @@ -82,9 +82,82 @@ cffi==1.15.1 \ --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \ --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0 # via cryptography -charset-normalizer==2.0.12 \ - --hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \ - --hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df +charset-normalizer==3.2.0 \ + --hash=sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96 \ + --hash=sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c \ + --hash=sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710 \ + --hash=sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706 \ + --hash=sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020 \ + --hash=sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252 \ + --hash=sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad \ + --hash=sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329 \ + --hash=sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a \ + --hash=sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f \ + --hash=sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6 \ + --hash=sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4 \ + --hash=sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a \ + --hash=sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46 \ + --hash=sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2 \ + --hash=sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23 \ + --hash=sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace \ + --hash=sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd \ + --hash=sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982 \ + --hash=sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10 \ + --hash=sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2 \ + --hash=sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea \ + --hash=sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09 \ + --hash=sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5 \ + --hash=sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149 \ + --hash=sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489 \ + --hash=sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9 \ + --hash=sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80 \ + --hash=sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592 \ + --hash=sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3 \ + --hash=sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6 \ + --hash=sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed \ + --hash=sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c \ + --hash=sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200 \ + --hash=sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a \ + --hash=sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e \ + --hash=sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d \ + --hash=sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6 \ + --hash=sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623 \ + --hash=sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669 \ + --hash=sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3 \ + --hash=sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa \ + --hash=sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9 \ + --hash=sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2 \ + --hash=sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f \ + --hash=sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1 \ + --hash=sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4 \ + --hash=sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a \ + --hash=sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8 \ + --hash=sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3 \ + --hash=sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029 \ + --hash=sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f \ + --hash=sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959 \ + --hash=sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22 \ + --hash=sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7 \ + --hash=sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952 \ + --hash=sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346 \ + --hash=sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e \ + --hash=sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d \ + --hash=sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299 \ + --hash=sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd \ + --hash=sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a \ + --hash=sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3 \ + --hash=sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037 \ + --hash=sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94 \ + --hash=sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c \ + --hash=sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858 \ + --hash=sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a \ + --hash=sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449 \ + --hash=sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c \ + --hash=sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918 \ + --hash=sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1 \ + --hash=sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c \ + --hash=sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac \ + --hash=sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa # via requests click==8.0.4 \ --hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \ @@ -97,121 +170,152 @@ colorlog==6.7.0 \ --hash=sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662 \ --hash=sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5 # via gcp-docuploader -cryptography==39.0.1 \ - --hash=sha256:0f8da300b5c8af9f98111ffd512910bc792b4c77392a9523624680f7956a99d4 \ - --hash=sha256:35f7c7d015d474f4011e859e93e789c87d21f6f4880ebdc29896a60403328f1f \ - --hash=sha256:5aa67414fcdfa22cf052e640cb5ddc461924a045cacf325cd164e65312d99502 \ - --hash=sha256:5d2d8b87a490bfcd407ed9d49093793d0f75198a35e6eb1a923ce1ee86c62b41 \ - --hash=sha256:6687ef6d0a6497e2b58e7c5b852b53f62142cfa7cd1555795758934da363a965 \ - --hash=sha256:6f8ba7f0328b79f08bdacc3e4e66fb4d7aab0c3584e0bd41328dce5262e26b2e \ - --hash=sha256:706843b48f9a3f9b9911979761c91541e3d90db1ca905fd63fee540a217698bc \ - --hash=sha256:807ce09d4434881ca3a7594733669bd834f5b2c6d5c7e36f8c00f691887042ad \ - --hash=sha256:83e17b26de248c33f3acffb922748151d71827d6021d98c70e6c1a25ddd78505 \ - --hash=sha256:96f1157a7c08b5b189b16b47bc9db2332269d6680a196341bf30046330d15388 \ - --hash=sha256:aec5a6c9864be7df2240c382740fcf3b96928c46604eaa7f3091f58b878c0bb6 \ - --hash=sha256:b0afd054cd42f3d213bf82c629efb1ee5f22eba35bf0eec88ea9ea7304f511a2 \ - --hash=sha256:ced4e447ae29ca194449a3f1ce132ded8fcab06971ef5f618605aacaa612beac \ - --hash=sha256:d1f6198ee6d9148405e49887803907fe8962a23e6c6f83ea7d98f1c0de375695 \ - --hash=sha256:e124352fd3db36a9d4a21c1aa27fd5d051e621845cb87fb851c08f4f75ce8be6 \ - --hash=sha256:e422abdec8b5fa8462aa016786680720d78bdce7a30c652b7fadf83a4ba35336 \ - --hash=sha256:ef8b72fa70b348724ff1218267e7f7375b8de4e8194d1636ee60510aae104cd0 \ - --hash=sha256:f0c64d1bd842ca2633e74a1a28033d139368ad959872533b1bab8c80e8240a0c \ - --hash=sha256:f24077a3b5298a5a06a8e0536e3ea9ec60e4c7ac486755e5fb6e6ea9b3500106 \ - --hash=sha256:fdd188c8a6ef8769f148f88f859884507b954cc64db6b52f66ef199bb9ad660a \ - --hash=sha256:fe913f20024eb2cb2f323e42a64bdf2911bb9738a15dba7d3cce48151034e3a8 +cryptography==41.0.2 \ + --hash=sha256:01f1d9e537f9a15b037d5d9ee442b8c22e3ae11ce65ea1f3316a41c78756b711 \ + --hash=sha256:079347de771f9282fbfe0e0236c716686950c19dee1b76240ab09ce1624d76d7 \ + --hash=sha256:182be4171f9332b6741ee818ec27daff9fb00349f706629f5cbf417bd50e66fd \ + --hash=sha256:192255f539d7a89f2102d07d7375b1e0a81f7478925b3bc2e0549ebf739dae0e \ + --hash=sha256:2a034bf7d9ca894720f2ec1d8b7b5832d7e363571828037f9e0c4f18c1b58a58 \ + --hash=sha256:342f3767e25876751e14f8459ad85e77e660537ca0a066e10e75df9c9e9099f0 \ + --hash=sha256:439c3cc4c0d42fa999b83ded80a9a1fb54d53c58d6e59234cfe97f241e6c781d \ + --hash=sha256:49c3222bb8f8e800aead2e376cbef687bc9e3cb9b58b29a261210456a7783d83 \ + --hash=sha256:674b669d5daa64206c38e507808aae49904c988fa0a71c935e7006a3e1e83831 \ + --hash=sha256:7a9a3bced53b7f09da251685224d6a260c3cb291768f54954e28f03ef14e3766 \ + --hash=sha256:7af244b012711a26196450d34f483357e42aeddb04128885d95a69bd8b14b69b \ + --hash=sha256:7d230bf856164de164ecb615ccc14c7fc6de6906ddd5b491f3af90d3514c925c \ + --hash=sha256:84609ade00a6ec59a89729e87a503c6e36af98ddcd566d5f3be52e29ba993182 \ + --hash=sha256:9a6673c1828db6270b76b22cc696f40cde9043eb90373da5c2f8f2158957f42f \ + --hash=sha256:9b6d717393dbae53d4e52684ef4f022444fc1cce3c48c38cb74fca29e1f08eaa \ + --hash=sha256:9c3fe6534d59d071ee82081ca3d71eed3210f76ebd0361798c74abc2bcf347d4 \ + --hash=sha256:a719399b99377b218dac6cf547b6ec54e6ef20207b6165126a280b0ce97e0d2a \ + --hash=sha256:b332cba64d99a70c1e0836902720887fb4529ea49ea7f5462cf6640e095e11d2 \ + --hash=sha256:d124682c7a23c9764e54ca9ab5b308b14b18eba02722b8659fb238546de83a76 \ + --hash=sha256:d73f419a56d74fef257955f51b18d046f3506270a5fd2ac5febbfa259d6c0fa5 \ + --hash=sha256:f0dc40e6f7aa37af01aba07277d3d64d5a03dc66d682097541ec4da03cc140ee \ + --hash=sha256:f14ad275364c8b4e525d018f6716537ae7b6d369c094805cae45300847e0894f \ + --hash=sha256:f772610fe364372de33d76edcd313636a25684edb94cee53fd790195f5989d14 # via # gcp-releasetool # secretstorage -gcp-docuploader==0.6.4 \ - --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \ - --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf +gcp-docuploader==0.6.5 \ + --hash=sha256:30221d4ac3e5a2b9c69aa52fdbef68cc3f27d0e6d0d90e220fc024584b8d2318 \ + --hash=sha256:b7458ef93f605b9d46a4bf3a8dc1755dad1f31d030c8679edf304e343b347eea # via -r requirements.in -gcp-releasetool==1.10.5 \ - --hash=sha256:174b7b102d704b254f2a26a3eda2c684fd3543320ec239baf771542a2e58e109 \ - --hash=sha256:e29d29927fe2ca493105a82958c6873bb2b90d503acac56be2c229e74de0eec9 +gcp-releasetool==1.16.0 \ + --hash=sha256:27bf19d2e87aaa884096ff941aa3c592c482be3d6a2bfe6f06afafa6af2353e3 \ + --hash=sha256:a316b197a543fd036209d0caba7a8eb4d236d8e65381c80cbc6d7efaa7606d63 # via -r requirements.in -google-api-core==2.8.2 \ - --hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \ - --hash=sha256:93c6a91ccac79079ac6bbf8b74ee75db970cc899278b97d53bc012f35908cf50 +google-api-core==2.11.1 \ + --hash=sha256:25d29e05a0058ed5f19c61c0a78b1b53adea4d9364b464d014fbda941f6d1c9a \ + --hash=sha256:d92a5a92dc36dd4f4b9ee4e55528a90e432b059f93aee6ad857f9de8cc7ae94a # via # google-cloud-core # google-cloud-storage -google-auth==2.14.1 \ - --hash=sha256:ccaa901f31ad5cbb562615eb8b664b3dd0bf5404a67618e642307f00613eda4d \ - --hash=sha256:f5d8701633bebc12e0deea4df8abd8aff31c28b355360597f7f2ee60f2e4d016 +google-auth==2.22.0 \ + --hash=sha256:164cba9af4e6e4e40c3a4f90a1a6c12ee56f14c0b4868d1ca91b32826ab334ce \ + --hash=sha256:d61d1b40897407b574da67da1a833bdc10d5a11642566e506565d1b1a46ba873 # via # gcp-releasetool # google-api-core # google-cloud-core # google-cloud-storage -google-cloud-core==2.3.1 \ - --hash=sha256:113ba4f492467d5bd442c8d724c1a25ad7384045c3178369038840ecdd19346c \ - --hash=sha256:34334359cb04187bdc80ddcf613e462dfd7a3aabbc3fe4d118517ab4b9303d53 +google-cloud-core==2.3.3 \ + --hash=sha256:37b80273c8d7eee1ae816b3a20ae43585ea50506cb0e60f3cf5be5f87f1373cb \ + --hash=sha256:fbd11cad3e98a7e5b0343dc07cb1039a5ffd7a5bb96e1f1e27cee4bda4a90863 # via google-cloud-storage -google-cloud-storage==2.0.0 \ - --hash=sha256:a57a15aead0f9dfbd4381f1bfdbe8bf89818a4bd75bab846cafcefb2db846c47 \ - --hash=sha256:ec4be60bb223a3a960f0d01697d849b86d91cad815a84915a32ed3635e93a5e7 +google-cloud-storage==2.10.0 \ + --hash=sha256:934b31ead5f3994e5360f9ff5750982c5b6b11604dc072bc452c25965e076dc7 \ + --hash=sha256:9433cf28801671de1c80434238fb1e7e4a1ba3087470e90f70c928ea77c2b9d7 # via gcp-docuploader -google-crc32c==1.3.0 \ - --hash=sha256:04e7c220798a72fd0f08242bc8d7a05986b2a08a0573396187fd32c1dcdd58b3 \ - --hash=sha256:05340b60bf05b574159e9bd940152a47d38af3fb43803ffe71f11d704b7696a6 \ - --hash=sha256:12674a4c3b56b706153a358eaa1018c4137a5a04635b92b4652440d3d7386206 \ - --hash=sha256:127f9cc3ac41b6a859bd9dc4321097b1a4f6aa7fdf71b4f9227b9e3ebffb4422 \ - --hash=sha256:13af315c3a0eec8bb8b8d80b8b128cb3fcd17d7e4edafc39647846345a3f003a \ - --hash=sha256:1926fd8de0acb9d15ee757175ce7242e235482a783cd4ec711cc999fc103c24e \ - --hash=sha256:226f2f9b8e128a6ca6a9af9b9e8384f7b53a801907425c9a292553a3a7218ce0 \ - --hash=sha256:276de6273eb074a35bc598f8efbc00c7869c5cf2e29c90748fccc8c898c244df \ - --hash=sha256:318f73f5484b5671f0c7f5f63741ab020a599504ed81d209b5c7129ee4667407 \ - --hash=sha256:3bbce1be3687bbfebe29abdb7631b83e6b25da3f4e1856a1611eb21854b689ea \ - --hash=sha256:42ae4781333e331a1743445931b08ebdad73e188fd554259e772556fc4937c48 \ - --hash=sha256:58be56ae0529c664cc04a9c76e68bb92b091e0194d6e3c50bea7e0f266f73713 \ - --hash=sha256:5da2c81575cc3ccf05d9830f9e8d3c70954819ca9a63828210498c0774fda1a3 \ - --hash=sha256:6311853aa2bba4064d0c28ca54e7b50c4d48e3de04f6770f6c60ebda1e975267 \ - --hash=sha256:650e2917660e696041ab3dcd7abac160b4121cd9a484c08406f24c5964099829 \ - --hash=sha256:6a4db36f9721fdf391646685ecffa404eb986cbe007a3289499020daf72e88a2 \ - --hash=sha256:779cbf1ce375b96111db98fca913c1f5ec11b1d870e529b1dc7354b2681a8c3a \ - --hash=sha256:7f6fe42536d9dcd3e2ffb9d3053f5d05221ae3bbcefbe472bdf2c71c793e3183 \ - --hash=sha256:891f712ce54e0d631370e1f4997b3f182f3368179198efc30d477c75d1f44942 \ - --hash=sha256:95c68a4b9b7828ba0428f8f7e3109c5d476ca44996ed9a5f8aac6269296e2d59 \ - --hash=sha256:96a8918a78d5d64e07c8ea4ed2bc44354e3f93f46a4866a40e8db934e4c0d74b \ - --hash=sha256:9c3cf890c3c0ecfe1510a452a165431b5831e24160c5fcf2071f0f85ca5a47cd \ - --hash=sha256:9f58099ad7affc0754ae42e6d87443299f15d739b0ce03c76f515153a5cda06c \ - --hash=sha256:a0b9e622c3b2b8d0ce32f77eba617ab0d6768b82836391e4f8f9e2074582bf02 \ - --hash=sha256:a7f9cbea4245ee36190f85fe1814e2d7b1e5f2186381b082f5d59f99b7f11328 \ - --hash=sha256:bab4aebd525218bab4ee615786c4581952eadc16b1ff031813a2fd51f0cc7b08 \ - --hash=sha256:c124b8c8779bf2d35d9b721e52d4adb41c9bfbde45e6a3f25f0820caa9aba73f \ - --hash=sha256:c9da0a39b53d2fab3e5467329ed50e951eb91386e9d0d5b12daf593973c3b168 \ - --hash=sha256:ca60076c388728d3b6ac3846842474f4250c91efbfe5afa872d3ffd69dd4b318 \ - --hash=sha256:cb6994fff247987c66a8a4e550ef374671c2b82e3c0d2115e689d21e511a652d \ - --hash=sha256:d1c1d6236feab51200272d79b3d3e0f12cf2cbb12b208c835b175a21efdb0a73 \ - --hash=sha256:dd7760a88a8d3d705ff562aa93f8445ead54f58fd482e4f9e2bafb7e177375d4 \ - --hash=sha256:dda4d8a3bb0b50f540f6ff4b6033f3a74e8bf0bd5320b70fab2c03e512a62812 \ - --hash=sha256:e0f1ff55dde0ebcfbef027edc21f71c205845585fffe30d4ec4979416613e9b3 \ - --hash=sha256:e7a539b9be7b9c00f11ef16b55486141bc2cdb0c54762f84e3c6fc091917436d \ - --hash=sha256:eb0b14523758e37802f27b7f8cd973f5f3d33be7613952c0df904b68c4842f0e \ - --hash=sha256:ed447680ff21c14aaceb6a9f99a5f639f583ccfe4ce1a5e1d48eb41c3d6b3217 \ - --hash=sha256:f52a4ad2568314ee713715b1e2d79ab55fab11e8b304fd1462ff5cccf4264b3e \ - --hash=sha256:fbd60c6aaa07c31d7754edbc2334aef50601b7f1ada67a96eb1eb57c7c72378f \ - --hash=sha256:fc28e0db232c62ca0c3600884933178f0825c99be4474cdd645e378a10588125 \ - --hash=sha256:fe31de3002e7b08eb20823b3735b97c86c5926dd0581c7710a680b418a8709d4 \ - --hash=sha256:fec221a051150eeddfdfcff162e6db92c65ecf46cb0f7bb1bf812a1520ec026b \ - --hash=sha256:ff71073ebf0e42258a42a0b34f2c09ec384977e7f6808999102eedd5b49920e3 +google-crc32c==1.5.0 \ + --hash=sha256:024894d9d3cfbc5943f8f230e23950cd4906b2fe004c72e29b209420a1e6b05a \ + --hash=sha256:02c65b9817512edc6a4ae7c7e987fea799d2e0ee40c53ec573a692bee24de876 \ + --hash=sha256:02ebb8bf46c13e36998aeaad1de9b48f4caf545e91d14041270d9dca767b780c \ + --hash=sha256:07eb3c611ce363c51a933bf6bd7f8e3878a51d124acfc89452a75120bc436289 \ + --hash=sha256:1034d91442ead5a95b5aaef90dbfaca8633b0247d1e41621d1e9f9db88c36298 \ + --hash=sha256:116a7c3c616dd14a3de8c64a965828b197e5f2d121fedd2f8c5585c547e87b02 \ + --hash=sha256:19e0a019d2c4dcc5e598cd4a4bc7b008546b0358bd322537c74ad47a5386884f \ + --hash=sha256:1c7abdac90433b09bad6c43a43af253e688c9cfc1c86d332aed13f9a7c7f65e2 \ + --hash=sha256:1e986b206dae4476f41bcec1faa057851f3889503a70e1bdb2378d406223994a \ + --hash=sha256:272d3892a1e1a2dbc39cc5cde96834c236d5327e2122d3aaa19f6614531bb6eb \ + --hash=sha256:278d2ed7c16cfc075c91378c4f47924c0625f5fc84b2d50d921b18b7975bd210 \ + --hash=sha256:2ad40e31093a4af319dadf503b2467ccdc8f67c72e4bcba97f8c10cb078207b5 \ + --hash=sha256:2e920d506ec85eb4ba50cd4228c2bec05642894d4c73c59b3a2fe20346bd00ee \ + --hash=sha256:3359fc442a743e870f4588fcf5dcbc1bf929df1fad8fb9905cd94e5edb02e84c \ + --hash=sha256:37933ec6e693e51a5b07505bd05de57eee12f3e8c32b07da7e73669398e6630a \ + --hash=sha256:398af5e3ba9cf768787eef45c803ff9614cc3e22a5b2f7d7ae116df8b11e3314 \ + --hash=sha256:3b747a674c20a67343cb61d43fdd9207ce5da6a99f629c6e2541aa0e89215bcd \ + --hash=sha256:461665ff58895f508e2866824a47bdee72497b091c730071f2b7575d5762ab65 \ + --hash=sha256:4c6fdd4fccbec90cc8a01fc00773fcd5fa28db683c116ee3cb35cd5da9ef6c37 \ + --hash=sha256:5829b792bf5822fd0a6f6eb34c5f81dd074f01d570ed7f36aa101d6fc7a0a6e4 \ + --hash=sha256:596d1f98fc70232fcb6590c439f43b350cb762fb5d61ce7b0e9db4539654cc13 \ + --hash=sha256:5ae44e10a8e3407dbe138984f21e536583f2bba1be9491239f942c2464ac0894 \ + --hash=sha256:635f5d4dd18758a1fbd1049a8e8d2fee4ffed124462d837d1a02a0e009c3ab31 \ + --hash=sha256:64e52e2b3970bd891309c113b54cf0e4384762c934d5ae56e283f9a0afcd953e \ + --hash=sha256:66741ef4ee08ea0b2cc3c86916ab66b6aef03768525627fd6a1b34968b4e3709 \ + --hash=sha256:67b741654b851abafb7bc625b6d1cdd520a379074e64b6a128e3b688c3c04740 \ + --hash=sha256:6ac08d24c1f16bd2bf5eca8eaf8304812f44af5cfe5062006ec676e7e1d50afc \ + --hash=sha256:6f998db4e71b645350b9ac28a2167e6632c239963ca9da411523bb439c5c514d \ + --hash=sha256:72218785ce41b9cfd2fc1d6a017dc1ff7acfc4c17d01053265c41a2c0cc39b8c \ + --hash=sha256:74dea7751d98034887dbd821b7aae3e1d36eda111d6ca36c206c44478035709c \ + --hash=sha256:759ce4851a4bb15ecabae28f4d2e18983c244eddd767f560165563bf9aefbc8d \ + --hash=sha256:77e2fd3057c9d78e225fa0a2160f96b64a824de17840351b26825b0848022906 \ + --hash=sha256:7c074fece789b5034b9b1404a1f8208fc2d4c6ce9decdd16e8220c5a793e6f61 \ + --hash=sha256:7c42c70cd1d362284289c6273adda4c6af8039a8ae12dc451dcd61cdabb8ab57 \ + --hash=sha256:7f57f14606cd1dd0f0de396e1e53824c371e9544a822648cd76c034d209b559c \ + --hash=sha256:83c681c526a3439b5cf94f7420471705bbf96262f49a6fe546a6db5f687a3d4a \ + --hash=sha256:8485b340a6a9e76c62a7dce3c98e5f102c9219f4cfbf896a00cf48caf078d438 \ + --hash=sha256:84e6e8cd997930fc66d5bb4fde61e2b62ba19d62b7abd7a69920406f9ecca946 \ + --hash=sha256:89284716bc6a5a415d4eaa11b1726d2d60a0cd12aadf5439828353662ede9dd7 \ + --hash=sha256:8b87e1a59c38f275c0e3676fc2ab6d59eccecfd460be267ac360cc31f7bcde96 \ + --hash=sha256:8f24ed114432de109aa9fd317278518a5af2d31ac2ea6b952b2f7782b43da091 \ + --hash=sha256:98cb4d057f285bd80d8778ebc4fde6b4d509ac3f331758fb1528b733215443ae \ + --hash=sha256:998679bf62b7fb599d2878aa3ed06b9ce688b8974893e7223c60db155f26bd8d \ + --hash=sha256:9ba053c5f50430a3fcfd36f75aff9caeba0440b2d076afdb79a318d6ca245f88 \ + --hash=sha256:9c99616c853bb585301df6de07ca2cadad344fd1ada6d62bb30aec05219c45d2 \ + --hash=sha256:a1fd716e7a01f8e717490fbe2e431d2905ab8aa598b9b12f8d10abebb36b04dd \ + --hash=sha256:a2355cba1f4ad8b6988a4ca3feed5bff33f6af2d7f134852cf279c2aebfde541 \ + --hash=sha256:b1f8133c9a275df5613a451e73f36c2aea4fe13c5c8997e22cf355ebd7bd0728 \ + --hash=sha256:b8667b48e7a7ef66afba2c81e1094ef526388d35b873966d8a9a447974ed9178 \ + --hash=sha256:ba1eb1843304b1e5537e1fca632fa894d6f6deca8d6389636ee5b4797affb968 \ + --hash=sha256:be82c3c8cfb15b30f36768797a640e800513793d6ae1724aaaafe5bf86f8f346 \ + --hash=sha256:c02ec1c5856179f171e032a31d6f8bf84e5a75c45c33b2e20a3de353b266ebd8 \ + --hash=sha256:c672d99a345849301784604bfeaeba4db0c7aae50b95be04dd651fd2a7310b93 \ + --hash=sha256:c6c777a480337ac14f38564ac88ae82d4cd238bf293f0a22295b66eb89ffced7 \ + --hash=sha256:cae0274952c079886567f3f4f685bcaf5708f0a23a5f5216fdab71f81a6c0273 \ + --hash=sha256:cd67cf24a553339d5062eff51013780a00d6f97a39ca062781d06b3a73b15462 \ + --hash=sha256:d3515f198eaa2f0ed49f8819d5732d70698c3fa37384146079b3799b97667a94 \ + --hash=sha256:d5280312b9af0976231f9e317c20e4a61cd2f9629b7bfea6a693d1878a264ebd \ + --hash=sha256:de06adc872bcd8c2a4e0dc51250e9e65ef2ca91be023b9d13ebd67c2ba552e1e \ + --hash=sha256:e1674e4307fa3024fc897ca774e9c7562c957af85df55efe2988ed9056dc4e57 \ + --hash=sha256:e2096eddb4e7c7bdae4bd69ad364e55e07b8316653234a56552d9c988bd2d61b \ + --hash=sha256:e560628513ed34759456a416bf86b54b2476c59144a9138165c9a1575801d0d9 \ + --hash=sha256:edfedb64740750e1a3b16152620220f51d58ff1b4abceb339ca92e934775c27a \ + --hash=sha256:f13cae8cc389a440def0c8c52057f37359014ccbc9dc1f0827936bcd367c6100 \ + --hash=sha256:f314013e7dcd5cf45ab1945d92e713eec788166262ae8deb2cfacd53def27325 \ + --hash=sha256:f583edb943cf2e09c60441b910d6a20b4d9d626c75a36c8fcac01a6c96c01183 \ + --hash=sha256:fd8536e902db7e365f49e7d9029283403974ccf29b13fc7028b97e2295b33556 \ + --hash=sha256:fe70e325aa68fa4b5edf7d1a4b6f691eb04bbccac0ace68e34820d283b5f80d4 # via google-resumable-media -google-resumable-media==2.3.3 \ - --hash=sha256:27c52620bd364d1c8116eaac4ea2afcbfb81ae9139fb3199652fcac1724bfb6c \ - --hash=sha256:5b52774ea7a829a8cdaa8bd2d4c3d4bc660c91b30857ab2668d0eb830f4ea8c5 +google-resumable-media==2.5.0 \ + --hash=sha256:218931e8e2b2a73a58eb354a288e03a0fd5fb1c4583261ac6e4c078666468c93 \ + --hash=sha256:da1bd943e2e114a56d85d6848497ebf9be6a14d3db23e9fc57581e7c3e8170ec # via google-cloud-storage -googleapis-common-protos==1.56.3 \ - --hash=sha256:6f1369b58ed6cf3a4b7054a44ebe8d03b29c309257583a2bbdc064cd1e4a1442 \ - --hash=sha256:87955d7b3a73e6e803f2572a33179de23989ebba725e05ea42f24838b792e461 +googleapis-common-protos==1.59.1 \ + --hash=sha256:0cbedb6fb68f1c07e18eb4c48256320777707e7d0c55063ae56c15db3224a61e \ + --hash=sha256:b35d530fe825fb4227857bc47ad84c33c809ac96f312e13182bdeaa2abe1178a # via google-api-core idna==3.4 \ --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 # via requests -importlib-metadata==4.8.3 \ - --hash=sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e \ - --hash=sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668 +importlib-metadata==6.8.0 \ + --hash=sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb \ + --hash=sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743 + # via keyring +jaraco-classes==3.3.0 \ + --hash=sha256:10afa92b6743f25c0cf5f37c6bb6e18e2c5bb84a16527ccfc0040ea377e7aaeb \ + --hash=sha256:c063dd08e89217cee02c8d5e5ec560f2c8ce6cdc2fcdc2e68f7b2e5547ed3621 # via keyring jeepney==0.8.0 \ --hash=sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806 \ @@ -219,139 +323,119 @@ jeepney==0.8.0 \ # via # keyring # secretstorage -jinja2==3.0.3 \ - --hash=sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8 \ - --hash=sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7 +jinja2==3.1.2 \ + --hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \ + --hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61 # via gcp-releasetool -keyring==23.4.1 \ - --hash=sha256:17e49fb0d6883c2b4445359434dba95aad84aabb29bbff044ad0ed7100232eca \ - --hash=sha256:89cbd74d4683ed164c8082fb38619341097741323b3786905c6dac04d6915a55 +keyring==24.2.0 \ + --hash=sha256:4901caaf597bfd3bbd78c9a0c7c4c29fcd8310dab2cffefe749e916b6527acd6 \ + --hash=sha256:ca0746a19ec421219f4d713f848fa297a661a8a8c1504867e55bfb5e09091509 # via gcp-releasetool -markupsafe==2.0.1 \ - --hash=sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298 \ - --hash=sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64 \ - --hash=sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b \ - --hash=sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194 \ - --hash=sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567 \ - --hash=sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff \ - --hash=sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724 \ - --hash=sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74 \ - --hash=sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646 \ - --hash=sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35 \ - --hash=sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6 \ - --hash=sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a \ - --hash=sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6 \ - --hash=sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad \ - --hash=sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26 \ - --hash=sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38 \ - --hash=sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac \ - --hash=sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7 \ - --hash=sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6 \ - --hash=sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047 \ - --hash=sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75 \ - --hash=sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f \ - --hash=sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b \ - --hash=sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135 \ - --hash=sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8 \ - --hash=sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a \ - --hash=sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a \ - --hash=sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1 \ - --hash=sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9 \ - --hash=sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864 \ - --hash=sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914 \ - --hash=sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee \ - --hash=sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f \ - --hash=sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18 \ - --hash=sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8 \ - --hash=sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2 \ - --hash=sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d \ - --hash=sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b \ - --hash=sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b \ - --hash=sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86 \ - --hash=sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6 \ - --hash=sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f \ - --hash=sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb \ - --hash=sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833 \ - --hash=sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28 \ - --hash=sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e \ - --hash=sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415 \ - --hash=sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902 \ - --hash=sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f \ - --hash=sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d \ - --hash=sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9 \ - --hash=sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d \ - --hash=sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145 \ - --hash=sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066 \ - --hash=sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c \ - --hash=sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1 \ - --hash=sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a \ - --hash=sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207 \ - --hash=sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f \ - --hash=sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53 \ - --hash=sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd \ - --hash=sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134 \ - --hash=sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85 \ - --hash=sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9 \ - --hash=sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5 \ - --hash=sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94 \ - --hash=sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509 \ - --hash=sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51 \ - --hash=sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872 +markupsafe==2.1.3 \ + --hash=sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e \ + --hash=sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e \ + --hash=sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431 \ + --hash=sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686 \ + --hash=sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559 \ + --hash=sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc \ + --hash=sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c \ + --hash=sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0 \ + --hash=sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4 \ + --hash=sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9 \ + --hash=sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575 \ + --hash=sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba \ + --hash=sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d \ + --hash=sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3 \ + --hash=sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00 \ + --hash=sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155 \ + --hash=sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac \ + --hash=sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52 \ + --hash=sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f \ + --hash=sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8 \ + --hash=sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b \ + --hash=sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24 \ + --hash=sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea \ + --hash=sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198 \ + --hash=sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0 \ + --hash=sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee \ + --hash=sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be \ + --hash=sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2 \ + --hash=sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707 \ + --hash=sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6 \ + --hash=sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58 \ + --hash=sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779 \ + --hash=sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636 \ + --hash=sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c \ + --hash=sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad \ + --hash=sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee \ + --hash=sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc \ + --hash=sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2 \ + --hash=sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48 \ + --hash=sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7 \ + --hash=sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e \ + --hash=sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b \ + --hash=sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa \ + --hash=sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5 \ + --hash=sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e \ + --hash=sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb \ + --hash=sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9 \ + --hash=sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57 \ + --hash=sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc \ + --hash=sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2 # via jinja2 -packaging==21.3 \ - --hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \ - --hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522 +more-itertools==9.1.0 \ + --hash=sha256:cabaa341ad0389ea83c17a94566a53ae4c9d07349861ecb14dc6d0345cf9ac5d \ + --hash=sha256:d2bc7f02446e86a68911e58ded76d6561eea00cddfb2a91e7019bbb586c799f3 + # via jaraco-classes +packaging==23.1 \ + --hash=sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61 \ + --hash=sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f # via gcp-releasetool -protobuf==3.20.2 \ - --hash=sha256:03d76b7bd42ac4a6e109742a4edf81ffe26ffd87c5993126d894fe48a120396a \ - --hash=sha256:09e25909c4297d71d97612f04f41cea8fa8510096864f2835ad2f3b3df5a5559 \ - --hash=sha256:18e34a10ae10d458b027d7638a599c964b030c1739ebd035a1dfc0e22baa3bfe \ - --hash=sha256:291fb4307094bf5ccc29f424b42268640e00d5240bf0d9b86bf3079f7576474d \ - --hash=sha256:2c0b040d0b5d5d207936ca2d02f00f765906622c07d3fa19c23a16a8ca71873f \ - --hash=sha256:384164994727f274cc34b8abd41a9e7e0562801361ee77437099ff6dfedd024b \ - --hash=sha256:3cb608e5a0eb61b8e00fe641d9f0282cd0eedb603be372f91f163cbfbca0ded0 \ - --hash=sha256:5d9402bf27d11e37801d1743eada54372f986a372ec9679673bfcc5c60441151 \ - --hash=sha256:712dca319eee507a1e7df3591e639a2b112a2f4a62d40fe7832a16fd19151750 \ - --hash=sha256:7a5037af4e76c975b88c3becdf53922b5ffa3f2cddf657574a4920a3b33b80f3 \ - --hash=sha256:8228e56a865c27163d5d1d1771d94b98194aa6917bcfb6ce139cbfa8e3c27334 \ - --hash=sha256:84a1544252a933ef07bb0b5ef13afe7c36232a774affa673fc3636f7cee1db6c \ - --hash=sha256:84fe5953b18a383fd4495d375fe16e1e55e0a3afe7b4f7b4d01a3a0649fcda9d \ - --hash=sha256:9c673c8bfdf52f903081816b9e0e612186684f4eb4c17eeb729133022d6032e3 \ - --hash=sha256:a9e5ae5a8e8985c67e8944c23035a0dff2c26b0f5070b2f55b217a1c33bbe8b1 \ - --hash=sha256:b4fdb29c5a7406e3f7ef176b2a7079baa68b5b854f364c21abe327bbeec01cdb \ - --hash=sha256:c184485e0dfba4dfd451c3bd348c2e685d6523543a0f91b9fd4ae90eb09e8422 \ - --hash=sha256:c9cdf251c582c16fd6a9f5e95836c90828d51b0069ad22f463761d27c6c19019 \ - --hash=sha256:e39cf61bb8582bda88cdfebc0db163b774e7e03364bbf9ce1ead13863e81e359 \ - --hash=sha256:e8fbc522303e09036c752a0afcc5c0603e917222d8bedc02813fd73b4b4ed804 \ - --hash=sha256:f34464ab1207114e73bba0794d1257c150a2b89b7a9faf504e00af7c9fd58978 \ - --hash=sha256:f52dabc96ca99ebd2169dadbe018824ebda08a795c7684a0b7d203a290f3adb0 +protobuf==3.20.3 \ + --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ + --hash=sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c \ + --hash=sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2 \ + --hash=sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b \ + --hash=sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050 \ + --hash=sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9 \ + --hash=sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7 \ + --hash=sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454 \ + --hash=sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480 \ + --hash=sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469 \ + --hash=sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c \ + --hash=sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e \ + --hash=sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db \ + --hash=sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905 \ + --hash=sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b \ + --hash=sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86 \ + --hash=sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4 \ + --hash=sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402 \ + --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ + --hash=sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4 \ + --hash=sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99 \ + --hash=sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee # via # gcp-docuploader # gcp-releasetool # google-api-core - # google-cloud-storage -pyasn1==0.4.8 \ - --hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \ - --hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba +pyasn1==0.5.0 \ + --hash=sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57 \ + --hash=sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde # via # pyasn1-modules # rsa -pyasn1-modules==0.2.8 \ - --hash=sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e \ - --hash=sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74 +pyasn1-modules==0.3.0 \ + --hash=sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c \ + --hash=sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d # via google-auth pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 # via cffi -pyjwt==2.4.0 \ - --hash=sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf \ - --hash=sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba +pyjwt==2.7.0 \ + --hash=sha256:ba2b425b15ad5ef12f200dc67dd56af4e26de2331f965c5439994dad075876e1 \ + --hash=sha256:bd6ca4a3c4285c1a2d4349e5a035fdf8fb94e04ccd0fcbe6ba289dae9cc3e074 # via gcp-releasetool -pyparsing==3.0.9 \ - --hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \ - --hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc - # via packaging pyperclip==1.8.2 \ --hash=sha256:105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57 # via gcp-releasetool @@ -359,9 +443,9 @@ python-dateutil==2.8.2 \ --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 # via gcp-releasetool -requests==2.27.1 \ - --hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \ - --hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d +requests==2.31.0 \ + --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ + --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 # via # gcp-releasetool # google-api-core @@ -374,10 +458,6 @@ secretstorage==3.3.3 \ --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \ --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 # via keyring -setuptools==67.3.2 \ - --hash=sha256:95f00380ef2ffa41d9bba85d95b27689d923c93dfbafed4aecd7cf988a25e012 \ - --hash=sha256:bb6d8e508de562768f2027902929f8523932fcd1fb784e6d573d2cafac995a48 - # via -r requirements.in six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 @@ -385,19 +465,26 @@ six==1.16.0 \ # gcp-docuploader # google-auth # python-dateutil -typing-extensions==4.4.0 \ - --hash=sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa \ - --hash=sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e +typing-extensions==4.7.1 \ + --hash=sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36 \ + --hash=sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2 # via -r requirements.in -urllib3==1.26.12 \ - --hash=sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e \ - --hash=sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997 - # via requests -wheel==0.38.4 \ - --hash=sha256:965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac \ - --hash=sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8 +urllib3==1.26.16 \ + --hash=sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f \ + --hash=sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14 + # via + # google-auth + # requests +wheel==0.40.0 \ + --hash=sha256:cd1196f3faee2b31968d626e1731c94f99cbdb67cf5a46e4f5656cbee7738873 \ + --hash=sha256:d236b20e7cb522daf2390fa84c55eea81c5c30190f90f29ae2ca1ad8355bf247 # via -r requirements.in -zipp==3.6.0 \ - --hash=sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832 \ - --hash=sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc +zipp==3.16.1 \ + --hash=sha256:0b37c326d826d5ca35f2b9685cd750292740774ef16190008b00a0227c256fe0 \ + --hash=sha256:857b158da2cbf427b376da1c24fd11faecbac5a4ac7523c3607f8a01f94c2ec0 # via importlib-metadata + +# WARNING: The following packages were not pinned, but pip requires them to be +# pinned when the requirements file includes hashes and the requirement is not +# satisfied by a package already installed. Consider using the --allow-unsafe flag. +# setuptools From 1fa7f8e3a57323a77b6515203b93346f67a1fd28 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 27 Jul 2023 15:53:18 +0530 Subject: [PATCH 22/22] chore(main): release 6.44.0 (#2530) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 29 +++++++++++++++++++ google-cloud-spanner-bom/pom.xml | 20 ++++++------- google-cloud-spanner-executor/pom.xml | 4 +-- google-cloud-spanner/pom.xml | 4 +-- .../pom.xml | 4 +-- .../pom.xml | 4 +-- grpc-google-cloud-spanner-v1/pom.xml | 4 +-- pom.xml | 16 +++++----- .../pom.xml | 4 +-- .../pom.xml | 4 +-- proto-google-cloud-spanner-v1/pom.xml | 4 +-- samples/snapshot/pom.xml | 2 +- versions.txt | 16 +++++----- 13 files changed, 72 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae49696384b..d81dddc71a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,34 @@ # Changelog +## [6.44.0](https://github.com/googleapis/java-spanner/compare/v6.43.2...v6.44.0) (2023-07-27) + + +### Features + +* Enable leader aware routing by default. This update contains performance optimisations that will reduce the latency of read/write transactions that originate from a region other than the default leader region. ([55c93ac](https://github.com/googleapis/java-spanner/commit/55c93acfeb8c2a6e5cc2f99ca20d0b72fbe6f8a4)) +* Foreign key on delete cascade ([#2340](https://github.com/googleapis/java-spanner/issues/2340)) ([f659105](https://github.com/googleapis/java-spanner/commit/f6591053db1c38f0e13e35cba2087a68d3ab1b01)) + + +### Bug Fixes + +* Add imports used in sample files. ([#2532](https://github.com/googleapis/java-spanner/issues/2532)) ([9a6d3fc](https://github.com/googleapis/java-spanner/commit/9a6d3fcbaa8d44f2e08407252a69beca1e4525b1)) + + +### Documentation + +* Fixing errors ([#2536](https://github.com/googleapis/java-spanner/issues/2536)) ([8aa407f](https://github.com/googleapis/java-spanner/commit/8aa407f3e1b4c6cf66b679e698992a6a5e3034c0)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-monitoring to v3.22.0 ([#2525](https://github.com/googleapis/java-spanner/issues/2525)) ([be0db6f](https://github.com/googleapis/java-spanner/commit/be0db6f10509fe3e5f74aa6ca6569552e65cb87a)) +* Update dependency com.google.cloud:google-cloud-monitoring to v3.23.0 ([#2542](https://github.com/googleapis/java-spanner/issues/2542)) ([67351dd](https://github.com/googleapis/java-spanner/commit/67351dd2cb557d461421c4a0321ae6d2d0fd9dcb)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.1 ([#2537](https://github.com/googleapis/java-spanner/issues/2537)) ([9396d8d](https://github.com/googleapis/java-spanner/commit/9396d8d8b5450dd545687af6c513b7f6c7a6c283)) +* Update dependency com.google.cloud:google-cloud-trace to v2.21.0 ([#2526](https://github.com/googleapis/java-spanner/issues/2526)) ([2d95234](https://github.com/googleapis/java-spanner/commit/2d952347e0eb7db42387d8abb91d4b11d51cef9c)) +* Update dependency com.google.cloud:google-cloud-trace to v2.22.0 ([#2543](https://github.com/googleapis/java-spanner/issues/2543)) ([47c6a43](https://github.com/googleapis/java-spanner/commit/47c6a430405ebf1c2fe392991e3f4554e9ac37aa)) +* Update dependency org.graalvm.sdk:graal-sdk to v22.3.3 ([#2533](https://github.com/googleapis/java-spanner/issues/2533)) ([0806b11](https://github.com/googleapis/java-spanner/commit/0806b116cc6650b353cee26c83929e7bcdcb1c34)) +* Update dependency org.junit.vintage:junit-vintage-engine to v5.10.0 ([#2539](https://github.com/googleapis/java-spanner/issues/2539)) ([8801b2b](https://github.com/googleapis/java-spanner/commit/8801b2bf639b7903958668a2274a6e5d457de00a)) + ## [6.43.2](https://github.com/googleapis/java-spanner/compare/v6.43.1...v6.43.2) (2023-07-09) diff --git a/google-cloud-spanner-bom/pom.xml b/google-cloud-spanner-bom/pom.xml index 0787b5199f4..9d9536b3695 100644 --- a/google-cloud-spanner-bom/pom.xml +++ b/google-cloud-spanner-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-spanner-bom - 6.43.3-SNAPSHOT + 6.44.0 pom com.google.cloud @@ -53,48 +53,48 @@ com.google.cloud google-cloud-spanner - 6.43.3-SNAPSHOT + 6.44.0 com.google.cloud google-cloud-spanner-executor - 6.43.3-SNAPSHOT + 6.44.0 com.google.cloud google-cloud-spanner test-jar - 6.43.3-SNAPSHOT + 6.44.0 com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.43.3-SNAPSHOT + 6.44.0 com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.43.3-SNAPSHOT + 6.44.0 com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.43.3-SNAPSHOT + 6.44.0 com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.43.3-SNAPSHOT + 6.44.0 com.google.api.grpc proto-google-cloud-spanner-v1 - 6.43.3-SNAPSHOT + 6.44.0 com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.43.3-SNAPSHOT + 6.44.0 diff --git a/google-cloud-spanner-executor/pom.xml b/google-cloud-spanner-executor/pom.xml index 23f0817d3bc..c99b25ee462 100644 --- a/google-cloud-spanner-executor/pom.xml +++ b/google-cloud-spanner-executor/pom.xml @@ -5,14 +5,14 @@ 4.0.0 com.google.cloud google-cloud-spanner-executor - 6.43.3-SNAPSHOT + 6.44.0 jar Google Cloud Spanner Executor com.google.cloud google-cloud-spanner-parent - 6.43.3-SNAPSHOT + 6.44.0 diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml index e5af6949771..922ec56c90b 100644 --- a/google-cloud-spanner/pom.xml +++ b/google-cloud-spanner/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-spanner - 6.43.3-SNAPSHOT + 6.44.0 jar Google Cloud Spanner https://github.com/googleapis/java-spanner @@ -11,7 +11,7 @@ com.google.cloud google-cloud-spanner-parent - 6.43.3-SNAPSHOT + 6.44.0 google-cloud-spanner diff --git a/grpc-google-cloud-spanner-admin-database-v1/pom.xml b/grpc-google-cloud-spanner-admin-database-v1/pom.xml index f2401d9082c..0c6049d9f8c 100644 --- a/grpc-google-cloud-spanner-admin-database-v1/pom.xml +++ b/grpc-google-cloud-spanner-admin-database-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.43.3-SNAPSHOT + 6.44.0 grpc-google-cloud-spanner-admin-database-v1 GRPC library for grpc-google-cloud-spanner-admin-database-v1 com.google.cloud google-cloud-spanner-parent - 6.43.3-SNAPSHOT + 6.44.0 diff --git a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml index 02360ae595d..3c8d605201f 100644 --- a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml +++ b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.43.3-SNAPSHOT + 6.44.0 grpc-google-cloud-spanner-admin-instance-v1 GRPC library for grpc-google-cloud-spanner-admin-instance-v1 com.google.cloud google-cloud-spanner-parent - 6.43.3-SNAPSHOT + 6.44.0 diff --git a/grpc-google-cloud-spanner-v1/pom.xml b/grpc-google-cloud-spanner-v1/pom.xml index 16821ff1bd0..c323b5eca55 100644 --- a/grpc-google-cloud-spanner-v1/pom.xml +++ b/grpc-google-cloud-spanner-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.43.3-SNAPSHOT + 6.44.0 grpc-google-cloud-spanner-v1 GRPC library for grpc-google-cloud-spanner-v1 com.google.cloud google-cloud-spanner-parent - 6.43.3-SNAPSHOT + 6.44.0 diff --git a/pom.xml b/pom.xml index 579d3092bf6..a0131ce095e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-spanner-parent pom - 6.43.3-SNAPSHOT + 6.44.0 Google Cloud Spanner Parent https://github.com/googleapis/java-spanner @@ -62,37 +62,37 @@ com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.43.3-SNAPSHOT + 6.44.0 com.google.api.grpc proto-google-cloud-spanner-v1 - 6.43.3-SNAPSHOT + 6.44.0 com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.43.3-SNAPSHOT + 6.44.0 com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.43.3-SNAPSHOT + 6.44.0 com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.43.3-SNAPSHOT + 6.44.0 com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.43.3-SNAPSHOT + 6.44.0 com.google.cloud google-cloud-spanner - 6.43.3-SNAPSHOT + 6.44.0 diff --git a/proto-google-cloud-spanner-admin-database-v1/pom.xml b/proto-google-cloud-spanner-admin-database-v1/pom.xml index 62e47388bd5..4504b5861b3 100644 --- a/proto-google-cloud-spanner-admin-database-v1/pom.xml +++ b/proto-google-cloud-spanner-admin-database-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.43.3-SNAPSHOT + 6.44.0 proto-google-cloud-spanner-admin-database-v1 PROTO library for proto-google-cloud-spanner-admin-database-v1 com.google.cloud google-cloud-spanner-parent - 6.43.3-SNAPSHOT + 6.44.0 diff --git a/proto-google-cloud-spanner-admin-instance-v1/pom.xml b/proto-google-cloud-spanner-admin-instance-v1/pom.xml index 0299b4d3d4e..a5efcde5353 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/pom.xml +++ b/proto-google-cloud-spanner-admin-instance-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.43.3-SNAPSHOT + 6.44.0 proto-google-cloud-spanner-admin-instance-v1 PROTO library for proto-google-cloud-spanner-admin-instance-v1 com.google.cloud google-cloud-spanner-parent - 6.43.3-SNAPSHOT + 6.44.0 diff --git a/proto-google-cloud-spanner-v1/pom.xml b/proto-google-cloud-spanner-v1/pom.xml index 5d829bd511e..531815bfe6b 100644 --- a/proto-google-cloud-spanner-v1/pom.xml +++ b/proto-google-cloud-spanner-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-v1 - 6.43.3-SNAPSHOT + 6.44.0 proto-google-cloud-spanner-v1 PROTO library for proto-google-cloud-spanner-v1 com.google.cloud google-cloud-spanner-parent - 6.43.3-SNAPSHOT + 6.44.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index cf4f2232488..dae36cb9d3c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -31,7 +31,7 @@ com.google.cloud google-cloud-spanner - 6.43.3-SNAPSHOT + 6.44.0 diff --git a/versions.txt b/versions.txt index e5363aed015..0f5dd249fb5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,11 +1,11 @@ # Format: # module:released-version:current-version -proto-google-cloud-spanner-admin-instance-v1:6.43.2:6.43.3-SNAPSHOT -proto-google-cloud-spanner-v1:6.43.2:6.43.3-SNAPSHOT -proto-google-cloud-spanner-admin-database-v1:6.43.2:6.43.3-SNAPSHOT -grpc-google-cloud-spanner-v1:6.43.2:6.43.3-SNAPSHOT -grpc-google-cloud-spanner-admin-instance-v1:6.43.2:6.43.3-SNAPSHOT -grpc-google-cloud-spanner-admin-database-v1:6.43.2:6.43.3-SNAPSHOT -google-cloud-spanner:6.43.2:6.43.3-SNAPSHOT -google-cloud-spanner-executor:6.43.2:6.43.3-SNAPSHOT +proto-google-cloud-spanner-admin-instance-v1:6.44.0:6.44.0 +proto-google-cloud-spanner-v1:6.44.0:6.44.0 +proto-google-cloud-spanner-admin-database-v1:6.44.0:6.44.0 +grpc-google-cloud-spanner-v1:6.44.0:6.44.0 +grpc-google-cloud-spanner-admin-instance-v1:6.44.0:6.44.0 +grpc-google-cloud-spanner-admin-database-v1:6.44.0:6.44.0 +google-cloud-spanner:6.44.0:6.44.0 +google-cloud-spanner-executor:6.44.0:6.44.0