diff --git a/.OwlBot.yaml b/.OwlBot.yaml
new file mode 100644
index 000000000000..b80260f102a0
--- /dev/null
+++ b/.OwlBot.yaml
@@ -0,0 +1,19 @@
+# Copyright 2025 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.
+
+deep-copy-regex:
+ - source: /google/spanner/executor/google-spanner-executor-nodejs
+ dest: /owl-bot-staging/google-spanner-executor
+
+api-name: executor
\ No newline at end of file
diff --git a/.eslintignore b/.eslintignore
index 0ca61147f73c..cfc348ec4d11 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,7 +1,7 @@
**/node_modules
-**/coverage
-test/fixtures
+**/.coverage
build/
docs/
protos/
-packages/
+system-test/
+samples/generated/
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 000000000000..3e8d97ccb390
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,4 @@
+{
+ "extends": "./node_modules/gts",
+ "root": true
+}
diff --git a/.gitattributes b/.gitattributes
index 73a41418d68f..33739cb74e44 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,4 @@
-# Enforce LF line endings for all TS and JS files across the repo
*.ts text eol=lf
*.js text eol=lf
+protos/* linguist-generated
+**/api-extractor.json linguist-language=JSON-with-Comments
diff --git a/.gitignore b/.gitignore
index c33c727fdb1b..d4f03a0df2e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,13 +1,14 @@
**/*.log
**/node_modules
-.coverage
-.nyc_output
-docs/json
-packages/google-cloud/README.md
-packages/*/AUTHORS
-packages/*/CONTRIBUTORS
-packages/*/COPYING
+/.coverage
+/coverage
+/.nyc_output
+/docs/
+/out/
+/build/
+system-test/secrets.js
+system-test/*key.json
+*.lock
+.DS_Store
package-lock.json
__pycache__
-packages/*/pnpm-lock.yaml
-containers/*/pnpm-lock.yaml
\ No newline at end of file
diff --git a/.mocharc.js b/.mocharc.js
new file mode 100644
index 000000000000..5eb34e86c874
--- /dev/null
+++ b/.mocharc.js
@@ -0,0 +1,33 @@
+// Copyright 2026 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.
+//
+// ** This file is automatically generated by gapic-generator-typescript. **
+// ** https://github.com/googleapis/gapic-generator-typescript **
+// ** All changes to this file may be overwritten. **
+
+const config = {
+ "enable-source-maps": true,
+ "throw-deprecation": true,
+ "timeout": 10000
+}
+if (process.env.MOCHA_THROW_DEPRECATION === 'false') {
+ delete config['throw-deprecation'];
+}
+if (process.env.MOCHA_REPORTER) {
+ config.reporter = process.env.MOCHA_REPORTER;
+}
+if (process.env.MOCHA_REPORTER_OUTPUT) {
+ config['reporter-option'] = `output=${process.env.MOCHA_REPORTER_OUTPUT}`;
+}
+module.exports = config
diff --git a/.nycrc b/.nycrc
index 83a421a0628a..81a95fc94b00 100644
--- a/.nycrc
+++ b/.nycrc
@@ -6,12 +6,13 @@
"**/.coverage",
"**/apis",
"**/benchmark",
+ "**/conformance",
"**/docs",
"**/samples",
"**/scripts",
- "**/src/**/v*/**/*.js",
"**/protos",
"**/test",
+ "**/*.d.ts",
".jsdoc.js",
"**/.jsdoc.js",
"karma.conf.js",
@@ -20,4 +21,4 @@
],
"exclude-after-remap": false,
"all": true
-}
+}
\ No newline at end of file
diff --git a/.prettierignore b/.prettierignore
index bc125fc6d754..9340ad9b86d3 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,6 +1,6 @@
**/node_modules
**/coverage
-**/test/fixtures
-**/build/
-**/docs/
-**/protos/
+test/fixtures
+build/
+docs/
+protos/
diff --git a/.prettierrc.js b/.prettierrc.js
new file mode 100644
index 000000000000..7649ee3c254e
--- /dev/null
+++ b/.prettierrc.js
@@ -0,0 +1,22 @@
+// Copyright 2026 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.
+//
+// ** This file is automatically generated by gapic-generator-typescript. **
+// ** https://github.com/googleapis/gapic-generator-typescript **
+// ** All changes to this file may be overwritten. **
+
+
+module.exports = {
+ ...require('gts/.prettierrc.json')
+}
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index 46b2a08ea6d1..2add2547a812 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -1,43 +1,94 @@
-# Contributor Code of Conduct
+
+# Code of Conduct
-As contributors and maintainers of this project,
-and in the interest of fostering an open and welcoming community,
-we pledge to respect all people who contribute through reporting issues,
-posting feature requests, updating documentation,
-submitting pull requests or patches, and other activities.
+## Our Pledge
-We are committed to making participation in this project
-a harassment-free experience for everyone,
-regardless of level of experience, gender, gender identity and expression,
-sexual orientation, disability, personal appearance,
-body size, race, ethnicity, age, religion, or nationality.
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, gender identity and expression, level of
+experience, education, socio-economic status, nationality, personal appearance,
+race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
-* The use of sexualized language or imagery
-* Personal attacks
-* Trolling or insulting/derogatory comments
-* Public or private harassment
-* Publishing other's private information,
-such as physical or electronic
-addresses, without explicit permission
-* Other unethical or unprofessional conduct.
+* The use of sexualized language or imagery and unwelcome sexual attention or
+ advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic
+ address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject
-comments, commits, code, wiki edits, issues, and other contributions
-that are not aligned to this Code of Conduct.
-By adopting this Code of Conduct,
-project maintainers commit themselves to fairly and consistently
-applying these principles to every aspect of managing this project.
-Project maintainers who do not follow or enforce the Code of Conduct
-may be permanently removed from the project team.
-
-This code of conduct applies both within project spaces and in public spaces
-when an individual is representing the project or its community.
-
-Instances of abusive, harassing, or otherwise unacceptable behavior
-may be reported by opening an issue
-or contacting one or more of the project maintainers.
-
-This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0,
-available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, or to ban temporarily or permanently any
+contributor for other behaviors that they deem inappropriate, threatening,
+offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.
+
+This Code of Conduct also applies outside the project spaces when the Project
+Steward has a reasonable belief that an individual's behavior may have a
+negative impact on the project or its community.
+
+## Conflict Resolution
+
+We do not believe that all conflict is bad; healthy debate and disagreement
+often yield positive results. However, it is never okay to be disrespectful or
+to engage in behavior that violates the project’s code of conduct.
+
+If you see someone violating the code of conduct, you are encouraged to address
+the behavior directly with those involved. Many issues can be resolved quickly
+and easily, and this gives people more control over the outcome of their
+dispute. If you are unable to resolve the matter for any reason, or if the
+behavior is threatening or harassing, report it. We are dedicated to providing
+an environment where participants feel welcome and safe.
+
+Reports should be directed to *googleapis-stewards@google.com*, the
+Project Steward(s) for *Google Cloud Client Libraries*. It is the Project Steward’s duty to
+receive and address reported violations of the code of conduct. They will then
+work with a committee consisting of representatives from the Open Source
+Programs Office and the Google Open Source Strategy team. If for any reason you
+are uncomfortable reaching out to the Project Steward, please email
+opensource@google.com.
+
+We will investigate every complaint, but you may not receive a direct response.
+We will use our discretion in determining when and how to follow up on reported
+incidents, which may range from not taking action to permanent expulsion from
+the project and project-sponsored spaces. We will notify the accused of the
+report and provide them an opportunity to discuss it before any action is taken.
+The identity of the reporter will be omitted from the details of the report
+supplied to the accused. In potentially harmful situations, such as ongoing
+harassment or threats to anyone's safety, we may take action without notice.
+
+## Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
+available at
+https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index cc3e05964e01..830ae4e2c078 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,340 +1,50 @@
-# How to Contribute
+# How to become a contributor and submit your own code
-We'd love to accept your patches and contributions to this project. There are
-just a few small guidelines you need to follow.
+**Table of contents**
-## Contributor License Agreement
+* [Contributor License Agreements](#contributor-license-agreements)
+* [Contributing a patch](#contributing-a-patch)
+* [Running the tests](#running-the-tests)
+* [Releasing the library](#releasing-the-library)
-Contributions to this project must be accompanied by a Contributor License
-Agreement. You (or your employer) retain the copyright to your contribution;
-this simply gives us permission to use and redistribute your contributions as
-part of the project. Head over to to see
-your current agreements on file or to sign a new one.
+## Contributor License Agreements
-You generally only need to submit a CLA once, so if you've already submitted one
-(even if it was for a different project), you probably don't need to do it
-again.
+We'd love to accept your sample apps and patches! Before we can take them, we
+have to jump a couple of legal hurdles.
-## Code Reviews
+Please fill out either the individual or corporate Contributor License Agreement
+(CLA).
-All submissions, including submissions by project members, require review. We
-use GitHub pull requests for this purpose. Submissions by non-Googlers require
-two reviewers. Consult
-[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
-information on using pull requests.
+ * If you are an individual writing original source code and you're sure you
+ own the intellectual property, then you'll need to sign an [individual CLA](https://developers.google.com/open-source/cla/individual).
+ * If you work for a company that wants to allow you to contribute your work,
+ then you'll need to sign a [corporate CLA](https://developers.google.com/open-source/cla/corporate).
+Follow either of the two links above to access the appropriate CLA and
+instructions for how to sign and return it. Once we receive it, we'll be able to
+accept your pull requests.
-### Multi-Approvers Check
+## Contributing A Patch
-Each pull request must be approved by two Googlers. This is enforced by an
-automated multi-approvers check. This check may not automatically re-run
-after the second approval is added. If it remains in a failed state, you
-can manually re-trigger it by:
+1. Submit an issue describing your proposed change to the repo in question.
+1. The repo owner will respond to your issue promptly.
+1. If your proposed change is accepted, and you haven't already done so, sign a
+ Contributor License Agreement (see details above).
+1. Fork the desired repo, develop and test your code changes.
+1. Ensure that your code adheres to the existing style in the code to which
+ you are contributing.
+1. Ensure that your code has an appropriate set of tests which all pass.
+1. Title your pull request following [Conventional Commits](https://www.conventionalcommits.org/) styling.
+1. Submit a pull request.
-1. Clicking "View details" on the failed workflow to bring you to the "Actions" page.
-2. Clicking "Re-run failed jobs".
+### Before you begin
-For more information, see
-[Re-running failed jobs in a workflow](https://docs.github.com/en/actions/how-tos/managing-workflow-runs-and-deployments/managing-workflow-runs/re-running-workflows-and-jobs#re-running-failed-jobs-in-a-workflow).
+1. [Select or create a Cloud Platform project][projects].
+1. [Enable billing for your project][billing].
+1. [Enable the Executor API][enable_api].
+1. [Set up authentication with a service account][auth] so you can access the
+ API from your local workstation.
-## Community Guidelines
-
-This project follows
-[Google's Open Source Community Guidelines](https://opensource.google/conduct/).
-
----
-
-The section above follows the standard googleapis organization’s
-CONTRIBUTING.md template. The section below is specific to this
-project. It explains how we work, how we use GitHub, and what contributors can
-expect when engaging with this repository.
-
----
-
-## Before contributing code
-
-Before doing any significant work, open an issue to propose your idea and
-ensure alignment. You can either file a new issue, or comment on an existing one.
-
-A pull request (PR) that does not go through this coordination process may be
-closed to avoid wasted effort.
-
-## Checking the issue tracker
-
-We use GitHub issues to track tasks, bugs, and discussions.
-
-> _If it didn’t happen in a GitHub issue, it never happened._
-
-Use the issue tracker as your source of truth.
-
-## Filing a new issue
-
-All changes, except trivial ones, should start with a GitHub issue.
-
-This process gives everyone a chance to validate the design, helps prevent
-duplication of effort, and ensures that the idea fits inside the goals for the
-language and tools. It also checks that the design is sound before code is
-written; the code review tool is not the place for high-level discussions.
-
-Always include a clear description in the body of the issue. The description
-should provide enough context for any team member to understand the problem or
-request without needing to contact you directly for clarification.
-
-## Leaving a TODO
-
-When adding a TODO to the codebase, always include a link to an issue, no
-matter how small the task.
-
-Use the format:
-
-```
-// TODO(https://github.com/googleapis/google-cloud-node/issues/): explain what needs to be done
-```
-
-This helps provide context for future readers and keeps the TODO relevant and
-actionable as the project evolves.
-
-## Sending a pull request
-
-All code changes must go through a pull request. First-time contributors should
-review
-[GitHub flow](https://docs.github.com/en/get-started/using-github/github-flow).
-
-Before sending a pull request, it should include tests if there are logic
-changes, copyright headers in every file, and a commit message following the
-conventions in "Commit messages" section below.
-
-A pull request can be opened from a branch within the repository or from a
-fork. External contributors are only able to open pull requests from forks,
-but team members with write access can choose to open a pull request from a
-repository branch.
-
-### Pull request from a fork
-
-If you open a pull request from a personal fork, you should allow repository
-maintainers to make edits to your fork by turning on
-"Allow edits from maintainers".
-
-Please see [creating a pull request from a fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)
-in the official GitHub documentation for details.
-
-### Pull request from a branch
-
-If you are a team member with write access, you can create a branch within the
-repository with your changes and open a pull request from it. After the pull
-request is merged, the branch will be automatically deleted.
-
-You should not have any long-lived branches within the repository without an
-open pull request. Such non-protected branches that don't have an associated
-open pull request, will be periodically cleaned up.
-
-### Pull requests with multiple commits
-
-When opening a pull request, it can be helpful to structure the commits for review. If
-your pull request has multiple commits, note in the description whether reviewers should
-review them individually or just focus on the final result. (For example, if
-earlier commits are exploratory and only the end state matters, make that clear
-to avoid wasting reviewer time.)
-
-### Keeping pull requests up to date with base branch
-
-The repository is configured to not require branches to be up to date before merging.
-This means that you do not have to have the latest changes from the base branch
-integrated, unless GitHub detects merge conflicts.
-
-To minimize the risk of the pull request getting out of date with the base branch, enable
-[auto-merge](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request)
-so that the pull request submits as soon as it is approved and the checks pass.
-
-## Commit messages
-
-Commit messages follow the conventions below.
-
-Here is an example:
-
-```
-feat(storage): add new storage bucket feature
-
-A new feature is added to storage.
-
-Fixes #238
-```
-
-### First line
-
-The first line of the change description is a short one-line summary of the
-change, following the structure `(): `:
-
-#### type
-
-A structural element defined by the conventions at
-https://www.conventionalcommits.org/en/v1.0.0/#summary.
-
-Conventional commits are parsed by release tooling to
-generate release notes.
-
-#### package
-
-The name of the package affected by the change, and should be provided in
-parentheses before the colon. (For example, `storage` or `pubsub`).
-
-#### description
-
-A short one-line summary of the change, that it should be written so to complete
-the sentence "This change modifies the codebase to ..." That means it does not
-start with a capital letter, is not a complete sentence, and actually
-summarizes the result of the change. Note that the verb after the colon is
-lowercase, and there is no trailing period.
-
-The first line should be kept as short as possible (many git viewing tools
-prefer under ~76 characters).
-
-Follow the first line by a blank line.
-
-### Main content
-
-The rest of the commit message should provide context for the change and
-explain what it does. Write in complete sentences with correct punctuation.
-Don't use HTML, Markdown, or any other markup language.
-
-### Referencing issues
-
-The special notation "Fixes #12345" associates the change with issue 12345 in
-the issue tracker. When this change is eventually applied, the issue
-tracker will automatically mark the issue as fixed.
-
-If the change is a partial step towards the resolution of the issue, write
-"For #12345" instead. This will leave a comment in the issue linking back
-to the pull request, but it will not close the issue when the change is
-applied.
-
-Please don’t use alternate GitHub-supported aliases like Close or Resolves
-instead of Fixes.
-
-## The review process
-
-This section explains the review process in detail and how to approach reviews
-after a pull request has been sent for review.
-
-### Getting a code review
-
-Before creating a pull request, make sure that your commit message follows the
-suggested format. Otherwise, it can be common for the pull request to be sent
-back with that request without review.
-
-After creating a pull request, request a specific reviewer if relevant, or leave it for
-the default group.
-
-### Merging a pull request
-
-Pull request titles and descriptions must follow the [commit messages](#commit-messages)
-conventions. This enables approvers to review the final commit message. Once the pull
-request has been approved and all checks have passed, click the
-[Squash and Merge](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-commits)
-button. The resulting commit message will be based on the pull request's title and
-description.
-
-### Reverting a pull request
-
-If a merged pull request needs to be undone, for reasons such as breaking the build, the
-standard process is to [revert it through the GitHub interface](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/reverting-a-pull-request).
-
-To revert a pull request:
-1. Navigate to the merged pull request on GitHub.
-2. Click the **Revert** button. This action automatically creates a new branch and a pull request containing the revert commit.
-3. Edit the pull request title and description to comply with the [commit message guidelines](#commit-messages).
-4. The newly created revert pull request should be reviewed and merged following the same process as any other pull request.
-
-Using the GitHub "Revert" button is the preferred method over manually creating a revert commit using `git revert`.
-
-### Keeping the pull request dashboard clean
-
-We aim to keep the pull requests page clean so that we
-can quickly notice and review incoming changes that require attention.
-
-Given that goal, please do not open a pull request unless you are ready for a
-code review. Draft pull requests and ones without author activity for more than
-one business day may be closed (they can always be reopened later).
-
-If you're still working on something, continue iterating on your branch without
-creating a pull request until it’s ready for review.
-
-### Addressing code review comments
-
-Creating additional commits to address reviewer feedback is generally preferred
-over amending and force-pushing. This makes it easier for reviewers to see what
-has changed since their last review.
-
-Pull requests are always squashed and merged. Before merging, please review and
-edit the resulting commit message to ensure it clearly describes the change.
-
-After pushing,
-[click the button](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review#requesting-reviews-from-collaborators-and-organization-members)
-to ask a reviewer to re-request your review.
-
-## Expectations for the team
-
-A lot of our communication will happen on GitHub issues. Team members are
-expected to configure their inboxes to receive GitHub notifications alerts for
-all issues and pull requests to ensure effective communication.
-
-If a pull request becomes inactive or misaligned with current priorities, we
-may close it to respect contributor and reviewer time. If you’d like to revisit
-it, just comment and reopen the conversation.
-
-If your pull request or issue is stuck, feel free to follow up over chat. We
-encourage it!
-
-### Reviewing a pull request
-
-When reviewing a pull request:
-
-- Start by reading the PR description to understand the purpose and context. If
- the commit message doesn’t follow the
- [commit message guidelines](#commit-messages),
- request changes.
-- Use `Approve` or `Request changes` explicitly. Avoid leaving ambiguous
- feedback.
-- Focus on what is in scope. If unrelated issues arise, suggest filing a
- separate PR or issue.
-- If you’ve requested changes, approve the PR once the updates are
- satisfactory, even if the author forgot to click the re-request review.
-- If a review has stalled or the context has shifted, leave a comment to
- clarify expectations, or close the PR. Keeping the dashboard clean is encouraged.
-
-### Addressing Urgent Issues
-
-We categorize issues into two primary levels of urgency:
-
-- **critical 🚨**: requires immediate fix, even outside business hours
-- **needs fix soon ❗**: high priority issue, can be fixed during business hours
-
-When an issue is labeled `critical 🚨`, the priority is to stabilize the system
-enough to downgrade the severity to `needs fix soon ❗`.
-
-### Maintaining a Healthy Main Branch
-
-All pull requests require passing CI checks to be merged.
-
-The main branch must always be stable, and tests should never fail at HEAD. A
-red build on the main branch is a critical issue that must be fixed immediately.
-
-If tests become flaky or the main branch is not consistently green, the team's top priority
-should shift to restoring stability. All feature development should be
-deprioritized until green builds can be guaranteed.
-
-When you see a red x next to a commit on main, file an issue on your GitHub
-issue tracker, and label it `critical 🚨`.
-
-Create a PR to temporarily skip the test, and verify that you have a green
-checkmark next to the commit on your main branch. The issue can now be
-downgraded to `needs fix soon ❗`.
-
-### Handling Dependency Updates
-
-We only update dependencies for security vulnerabilities, bug fixes, or to add
-feature support. Security vulnerabilities are identified using Dependabot or `npm audit`. Dependency updates for bug fixes or new features must be associated
-with an issue in this repository.
## Running the tests
@@ -346,10 +56,21 @@ with an issue in this repository.
1. Run the tests:
+ # Run unit tests.
npm test
+ # Run sample integration tests.
+ npm run samples-test
+
+ # Run all system tests.
+ npm run system-test
+
1. Lint (and maybe fix) any changes:
npm run fix
-[setup]: https://cloud.google.com/nodejs/docs/setup
\ No newline at end of file
+[setup]: https://cloud.google.com/nodejs/docs/setup
+[projects]: https://console.cloud.google.com/project
+[billing]: https://support.google.com/cloud/answer/6293499#enable-billing
+[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=spanner-cloud-executor.googleapis.com
+[auth]: https://cloud.google.com/docs/authentication/getting-started
\ No newline at end of file
diff --git a/handwritten/spanner/.OwlBot.yaml b/handwritten/spanner/.OwlBot.yaml
index 0e4f41709ed1..23551270f279 100644
--- a/handwritten/spanner/.OwlBot.yaml
+++ b/handwritten/spanner/.OwlBot.yaml
@@ -1,10 +1,10 @@
-# Copyright 2021 Google LLC
+# Copyright 2025 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
+# 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,
@@ -12,19 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-
-deep-remove-regex:
- - /owl-bot-staging
-
deep-copy-regex:
- - source: /google/spanner/(v.*)/.*-nodejs
- dest: /owl-bot-staging/spanner/$1
- - source: /google/spanner/(admin/database/v.*)/.*-nodejs
- dest: /owl-bot-staging/spanner/$1
- - source: /google/spanner/(admin/instance/v.*)/.*-nodejs
- dest: /owl-bot-staging/spanner/$1
- - source: /google/spanner/(executor/v.*)/.*-nodejs
- dest: /owl-bot-staging/spanner/$1
-
-begin-after-commit-hash: 46f25fb1121747b994ff5818963fda84b5e6bfd3
+ - source: /google/spanner/google-spanner-nodejs
+ dest: /owl-bot-staging/google-spanner
+api-name: spanner
\ No newline at end of file
diff --git a/handwritten/spanner/protos/google/spanner/v1/commit_response.proto b/handwritten/spanner/protos/google/spanner/v1/commit_response.proto
index 6e4459122024..d6593d0c78fb 100644
--- a/handwritten/spanner/protos/google/spanner/v1/commit_response.proto
+++ b/handwritten/spanner/protos/google/spanner/v1/commit_response.proto
@@ -16,7 +16,9 @@ syntax = "proto3";
package google.spanner.v1;
+import "google/api/field_behavior.proto";
import "google/protobuf/timestamp.proto";
+import "google/spanner/v1/location.proto";
import "google/spanner/v1/transaction.proto";
option csharp_namespace = "Google.Cloud.Spanner.V1";
@@ -61,4 +63,18 @@ message CommitResponse {
// timestamp at which all reads in the transaction ran. This timestamp is
// never returned.
google.protobuf.Timestamp snapshot_timestamp = 5;
+
+ // Optional. A cache update expresses a set of changes the client should
+ // incorporate into its location cache. The client should discard the changes
+ // if they are older than the data it already has. This data can be obtained
+ // in response to requests that included a `RoutingHint` field, but may also
+ // be obtained by explicit location-fetching RPCs which may be added in the
+ // future.
+ CacheUpdate cache_update = 6 [(google.api.field_behavior) = OPTIONAL];
+
+ // The isolation level used for the read-write transaction.
+ TransactionOptions.IsolationLevel isolation_level = 7;
+
+ // The read lock mode used for the read-write transaction.
+ TransactionOptions.ReadWrite.ReadLockMode read_lock_mode = 8;
}
diff --git a/handwritten/spanner/protos/google/spanner/v1/spanner.proto b/handwritten/spanner/protos/google/spanner/v1/spanner.proto
index 525cc2ba47ad..a6796c9f1878 100644
--- a/handwritten/spanner/protos/google/spanner/v1/spanner.proto
+++ b/handwritten/spanner/protos/google/spanner/v1/spanner.proto
@@ -827,7 +827,7 @@ message ExecuteSqlRequest {
// be assumed until a subsequent `Commit` call completes successfully.
bool last_statement = 17 [(google.api.field_behavior) = OPTIONAL];
- // Optional. If present, it makes the Spanner requests location-aware.
+ // Optional. Makes the Spanner requests location-aware if present.
//
// It gives the server hints that can be used to route the request
// to an appropriate server, potentially significantly decreasing latency and
@@ -1268,7 +1268,7 @@ message ReadRequest {
// transactions.
LockHint lock_hint = 17 [(google.api.field_behavior) = OPTIONAL];
- // Optional. If present, it makes the Spanner requests location-aware.
+ // Optional. Makes the Spanner requests location-aware if present.
//
// It gives the server hints that can be used to route the request
// to an appropriate server, potentially significantly decreasing latency and
@@ -1301,6 +1301,14 @@ message BeginTransactionRequest {
// randomly select one of the mutations from the mutation set and send it as a
// part of this request.
Mutation mutation_key = 4 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Makes the Spanner requests location-aware if present.
+ //
+ // It gives the server hints that can be used to route the request
+ // to an appropriate server, potentially significantly decreasing latency and
+ // improving throughput. To achieve improved performance, most fields must be
+ // filled in with accurate values.
+ RoutingHint routing_hint = 5 [(google.api.field_behavior) = OPTIONAL];
}
// The request for [Commit][google.spanner.v1.Spanner.Commit].
@@ -1355,6 +1363,14 @@ message CommitRequest {
// results in a `FailedPrecondition` error.
MultiplexedSessionPrecommitToken precommit_token = 9
[(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Makes the Spanner requests location-aware if present.
+ //
+ // It gives the server hints that can be used to route the request
+ // to an appropriate server, potentially significantly decreasing latency and
+ // improving throughput. To achieve improved performance, most fields must be
+ // filled in with accurate values.
+ RoutingHint routing_hint = 10 [(google.api.field_behavior) = OPTIONAL];
}
// The request for [Rollback][google.spanner.v1.Spanner.Rollback].
diff --git a/handwritten/spanner/protos/google/spanner/v1/transaction.proto b/handwritten/spanner/protos/google/spanner/v1/transaction.proto
index dfdf3b11a1bb..f7cbccae8b7f 100644
--- a/handwritten/spanner/protos/google/spanner/v1/transaction.proto
+++ b/handwritten/spanner/protos/google/spanner/v1/transaction.proto
@@ -19,6 +19,7 @@ package google.spanner.v1;
import "google/api/field_behavior.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
+import "google/spanner/v1/location.proto";
option csharp_namespace = "Google.Cloud.Spanner.V1";
option go_package = "cloud.google.com/go/spanner/apiv1/spannerpb;spannerpb";
@@ -39,35 +40,46 @@ message TransactionOptions {
// Default value.
//
// * If isolation level is
+ // [SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE],
+ // locking semantics default to `PESSIMISTIC`.
+ // * If isolation level is
// [REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ],
- // then it is an error to specify `read_lock_mode`. Locking semantics
- // default to `OPTIMISTIC`. No validation checks are done for reads,
- // except to validate that the data that was served at the snapshot time
- // is unchanged at commit time in the following cases:
- // 1. reads done as part of queries that use `SELECT FOR UPDATE`
- // 2. reads done as part of statements with a `LOCK_SCANNED_RANGES`
- // hint
- // 3. reads done as part of DML statements
- // * At all other isolation levels, if `read_lock_mode` is the default
- // value, then pessimistic read locks are used.
+ // locking semantics default to `OPTIMISTIC`.
+ // * See
+ // [Concurrency
+ // control](https://cloud.google.com/spanner/docs/concurrency-control)
+ // for more details.
READ_LOCK_MODE_UNSPECIFIED = 0;
// Pessimistic lock mode.
//
- // Read locks are acquired immediately on read.
- // Semantics described only applies to
+ // Lock acquisition behavior depends on the isolation level in use. In
// [SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]
- // isolation.
+ // isolation, reads and writes acquire necessary locks during transaction
+ // statement execution. In
+ // [REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ]
+ // isolation, reads that explicitly request to be locked and writes
+ // acquire locks.
+ // See
+ // [Concurrency
+ // control](https://cloud.google.com/spanner/docs/concurrency-control) for
+ // details on the types of locks acquired at each transaction step.
PESSIMISTIC = 1;
// Optimistic lock mode.
//
- // Locks for reads within the transaction are not acquired on read.
- // Instead the locks are acquired on a commit to validate that
- // read/queried data has not changed since the transaction started.
- // Semantics described only applies to
+ // Lock acquisition behavior depends on the isolation level in use. In
+ // both
// [SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]
- // isolation.
+ // and
+ // [REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ]
+ // isolation, reads and writes do not acquire locks during transaction
+ // statement execution.
+ // See
+ // [Concurrency
+ // control](https://cloud.google.com/spanner/docs/concurrency-control) for
+ // details on how the guarantees of each isolation level are provided at
+ // commit time.
OPTIMISTIC = 2;
}
@@ -264,6 +276,14 @@ message Transaction {
// attempt should be passed to the [Commit][google.spanner.v1.Spanner.Commit]
// request for this transaction.
MultiplexedSessionPrecommitToken precommit_token = 3;
+
+ // Optional. A cache update expresses a set of changes the client should
+ // incorporate into its location cache. The client should discard the changes
+ // if they are older than the data it already has. This data can be obtained
+ // in response to requests that included a `RoutingHint` field, but may also
+ // be obtained by explicit location-fetching RPCs which may be added in the
+ // future.
+ CacheUpdate cache_update = 5 [(google.api.field_behavior) = OPTIONAL];
}
// This message is used to select the transaction in which a
diff --git a/handwritten/spanner/protos/protos.d.ts b/handwritten/spanner/protos/protos.d.ts
index 2beea4b0984b..1529bb531e60 100644
--- a/handwritten/spanner/protos/protos.d.ts
+++ b/handwritten/spanner/protos/protos.d.ts
@@ -32572,6 +32572,9 @@ export namespace google {
/** BeginTransactionRequest mutationKey */
mutationKey?: (google.spanner.v1.IMutation|null);
+
+ /** BeginTransactionRequest routingHint */
+ routingHint?: (google.spanner.v1.IRoutingHint|null);
}
/** Represents a BeginTransactionRequest. */
@@ -32595,6 +32598,9 @@ export namespace google {
/** BeginTransactionRequest mutationKey. */
public mutationKey?: (google.spanner.v1.IMutation|null);
+ /** BeginTransactionRequest routingHint. */
+ public routingHint?: (google.spanner.v1.IRoutingHint|null);
+
/**
* Creates a new BeginTransactionRequest instance using the specified properties.
* @param [properties] Properties to set
@@ -32699,6 +32705,9 @@ export namespace google {
/** CommitRequest precommitToken */
precommitToken?: (google.spanner.v1.IMultiplexedSessionPrecommitToken|null);
+
+ /** CommitRequest routingHint */
+ routingHint?: (google.spanner.v1.IRoutingHint|null);
}
/** Represents a CommitRequest. */
@@ -32734,6 +32743,9 @@ export namespace google {
/** CommitRequest precommitToken. */
public precommitToken?: (google.spanner.v1.IMultiplexedSessionPrecommitToken|null);
+ /** CommitRequest routingHint. */
+ public routingHint?: (google.spanner.v1.IRoutingHint|null);
+
/** CommitRequest transaction. */
public transaction?: ("transactionId"|"singleUseTransaction");
@@ -33256,6 +33268,15 @@ export namespace google {
/** CommitResponse snapshotTimestamp */
snapshotTimestamp?: (google.protobuf.ITimestamp|null);
+
+ /** CommitResponse cacheUpdate */
+ cacheUpdate?: (google.spanner.v1.ICacheUpdate|null);
+
+ /** CommitResponse isolationLevel */
+ isolationLevel?: (google.spanner.v1.TransactionOptions.IsolationLevel|keyof typeof google.spanner.v1.TransactionOptions.IsolationLevel|null);
+
+ /** CommitResponse readLockMode */
+ readLockMode?: (google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode|keyof typeof google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode|null);
}
/** Represents a CommitResponse. */
@@ -33279,6 +33300,15 @@ export namespace google {
/** CommitResponse snapshotTimestamp. */
public snapshotTimestamp?: (google.protobuf.ITimestamp|null);
+ /** CommitResponse cacheUpdate. */
+ public cacheUpdate?: (google.spanner.v1.ICacheUpdate|null);
+
+ /** CommitResponse isolationLevel. */
+ public isolationLevel: (google.spanner.v1.TransactionOptions.IsolationLevel|keyof typeof google.spanner.v1.TransactionOptions.IsolationLevel);
+
+ /** CommitResponse readLockMode. */
+ public readLockMode: (google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode|keyof typeof google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode);
+
/** CommitResponse MultiplexedSessionRetry. */
public MultiplexedSessionRetry?: "precommitToken";
@@ -33460,2516 +33490,2522 @@ export namespace google {
}
}
- /** Properties of a TransactionOptions. */
- interface ITransactionOptions {
+ /** Properties of a Range. */
+ interface IRange {
- /** TransactionOptions readWrite */
- readWrite?: (google.spanner.v1.TransactionOptions.IReadWrite|null);
+ /** Range startKey */
+ startKey?: (Uint8Array|Buffer|string|null);
- /** TransactionOptions partitionedDml */
- partitionedDml?: (google.spanner.v1.TransactionOptions.IPartitionedDml|null);
+ /** Range limitKey */
+ limitKey?: (Uint8Array|Buffer|string|null);
- /** TransactionOptions readOnly */
- readOnly?: (google.spanner.v1.TransactionOptions.IReadOnly|null);
+ /** Range groupUid */
+ groupUid?: (number|Long|string|null);
- /** TransactionOptions excludeTxnFromChangeStreams */
- excludeTxnFromChangeStreams?: (boolean|null);
+ /** Range splitId */
+ splitId?: (number|Long|string|null);
- /** TransactionOptions isolationLevel */
- isolationLevel?: (google.spanner.v1.TransactionOptions.IsolationLevel|keyof typeof google.spanner.v1.TransactionOptions.IsolationLevel|null);
+ /** Range generation */
+ generation?: (Uint8Array|Buffer|string|null);
}
- /** Represents a TransactionOptions. */
- class TransactionOptions implements ITransactionOptions {
+ /** Represents a Range. */
+ class Range implements IRange {
/**
- * Constructs a new TransactionOptions.
+ * Constructs a new Range.
* @param [properties] Properties to set
*/
- constructor(properties?: google.spanner.v1.ITransactionOptions);
-
- /** TransactionOptions readWrite. */
- public readWrite?: (google.spanner.v1.TransactionOptions.IReadWrite|null);
+ constructor(properties?: google.spanner.v1.IRange);
- /** TransactionOptions partitionedDml. */
- public partitionedDml?: (google.spanner.v1.TransactionOptions.IPartitionedDml|null);
+ /** Range startKey. */
+ public startKey: (Uint8Array|Buffer|string);
- /** TransactionOptions readOnly. */
- public readOnly?: (google.spanner.v1.TransactionOptions.IReadOnly|null);
+ /** Range limitKey. */
+ public limitKey: (Uint8Array|Buffer|string);
- /** TransactionOptions excludeTxnFromChangeStreams. */
- public excludeTxnFromChangeStreams: boolean;
+ /** Range groupUid. */
+ public groupUid: (number|Long|string);
- /** TransactionOptions isolationLevel. */
- public isolationLevel: (google.spanner.v1.TransactionOptions.IsolationLevel|keyof typeof google.spanner.v1.TransactionOptions.IsolationLevel);
+ /** Range splitId. */
+ public splitId: (number|Long|string);
- /** TransactionOptions mode. */
- public mode?: ("readWrite"|"partitionedDml"|"readOnly");
+ /** Range generation. */
+ public generation: (Uint8Array|Buffer|string);
/**
- * Creates a new TransactionOptions instance using the specified properties.
+ * Creates a new Range instance using the specified properties.
* @param [properties] Properties to set
- * @returns TransactionOptions instance
+ * @returns Range instance
*/
- public static create(properties?: google.spanner.v1.ITransactionOptions): google.spanner.v1.TransactionOptions;
+ public static create(properties?: google.spanner.v1.IRange): google.spanner.v1.Range;
/**
- * Encodes the specified TransactionOptions message. Does not implicitly {@link google.spanner.v1.TransactionOptions.verify|verify} messages.
- * @param message TransactionOptions message or plain object to encode
+ * Encodes the specified Range message. Does not implicitly {@link google.spanner.v1.Range.verify|verify} messages.
+ * @param message Range message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.ITransactionOptions, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.IRange, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified TransactionOptions message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.verify|verify} messages.
- * @param message TransactionOptions message or plain object to encode
+ * Encodes the specified Range message, length delimited. Does not implicitly {@link google.spanner.v1.Range.verify|verify} messages.
+ * @param message Range message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.ITransactionOptions, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.IRange, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a TransactionOptions message from the specified reader or buffer.
+ * Decodes a Range message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns TransactionOptions
+ * @returns Range
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.TransactionOptions;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.Range;
/**
- * Decodes a TransactionOptions message from the specified reader or buffer, length delimited.
+ * Decodes a Range message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns TransactionOptions
+ * @returns Range
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.TransactionOptions;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.Range;
/**
- * Verifies a TransactionOptions message.
+ * Verifies a Range message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a TransactionOptions message from a plain object. Also converts values to their respective internal types.
+ * Creates a Range message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns TransactionOptions
+ * @returns Range
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.TransactionOptions;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.Range;
/**
- * Creates a plain object from a TransactionOptions message. Also converts values to other types if specified.
- * @param message TransactionOptions
+ * Creates a plain object from a Range message. Also converts values to other types if specified.
+ * @param message Range
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.TransactionOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.Range, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this TransactionOptions to JSON.
+ * Converts this Range to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for TransactionOptions
+ * Gets the default type url for Range
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- namespace TransactionOptions {
-
- /** Properties of a ReadWrite. */
- interface IReadWrite {
+ /** Properties of a Tablet. */
+ interface ITablet {
- /** ReadWrite readLockMode */
- readLockMode?: (google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode|keyof typeof google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode|null);
+ /** Tablet tabletUid */
+ tabletUid?: (number|Long|string|null);
- /** ReadWrite multiplexedSessionPreviousTransactionId */
- multiplexedSessionPreviousTransactionId?: (Uint8Array|Buffer|string|null);
- }
+ /** Tablet serverAddress */
+ serverAddress?: (string|null);
- /** Represents a ReadWrite. */
- class ReadWrite implements IReadWrite {
+ /** Tablet location */
+ location?: (string|null);
- /**
- * Constructs a new ReadWrite.
- * @param [properties] Properties to set
- */
- constructor(properties?: google.spanner.v1.TransactionOptions.IReadWrite);
+ /** Tablet role */
+ role?: (google.spanner.v1.Tablet.Role|keyof typeof google.spanner.v1.Tablet.Role|null);
- /** ReadWrite readLockMode. */
- public readLockMode: (google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode|keyof typeof google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode);
+ /** Tablet incarnation */
+ incarnation?: (Uint8Array|Buffer|string|null);
- /** ReadWrite multiplexedSessionPreviousTransactionId. */
- public multiplexedSessionPreviousTransactionId: (Uint8Array|Buffer|string);
+ /** Tablet distance */
+ distance?: (number|null);
- /**
- * Creates a new ReadWrite instance using the specified properties.
- * @param [properties] Properties to set
- * @returns ReadWrite instance
- */
- public static create(properties?: google.spanner.v1.TransactionOptions.IReadWrite): google.spanner.v1.TransactionOptions.ReadWrite;
+ /** Tablet skip */
+ skip?: (boolean|null);
+ }
- /**
- * Encodes the specified ReadWrite message. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadWrite.verify|verify} messages.
- * @param message ReadWrite message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encode(message: google.spanner.v1.TransactionOptions.IReadWrite, writer?: $protobuf.Writer): $protobuf.Writer;
+ /** Represents a Tablet. */
+ class Tablet implements ITablet {
- /**
- * Encodes the specified ReadWrite message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadWrite.verify|verify} messages.
- * @param message ReadWrite message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encodeDelimited(message: google.spanner.v1.TransactionOptions.IReadWrite, writer?: $protobuf.Writer): $protobuf.Writer;
+ /**
+ * Constructs a new Tablet.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.spanner.v1.ITablet);
- /**
- * Decodes a ReadWrite message from the specified reader or buffer.
- * @param reader Reader or buffer to decode from
- * @param [length] Message length if known beforehand
- * @returns ReadWrite
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.TransactionOptions.ReadWrite;
+ /** Tablet tabletUid. */
+ public tabletUid: (number|Long|string);
- /**
- * Decodes a ReadWrite message from the specified reader or buffer, length delimited.
- * @param reader Reader or buffer to decode from
- * @returns ReadWrite
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.TransactionOptions.ReadWrite;
+ /** Tablet serverAddress. */
+ public serverAddress: string;
- /**
- * Verifies a ReadWrite message.
- * @param message Plain object to verify
- * @returns `null` if valid, otherwise the reason why it is not
- */
- public static verify(message: { [k: string]: any }): (string|null);
+ /** Tablet location. */
+ public location: string;
- /**
- * Creates a ReadWrite message from a plain object. Also converts values to their respective internal types.
- * @param object Plain object
- * @returns ReadWrite
- */
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.TransactionOptions.ReadWrite;
+ /** Tablet role. */
+ public role: (google.spanner.v1.Tablet.Role|keyof typeof google.spanner.v1.Tablet.Role);
- /**
- * Creates a plain object from a ReadWrite message. Also converts values to other types if specified.
- * @param message ReadWrite
- * @param [options] Conversion options
- * @returns Plain object
- */
- public static toObject(message: google.spanner.v1.TransactionOptions.ReadWrite, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ /** Tablet incarnation. */
+ public incarnation: (Uint8Array|Buffer|string);
- /**
- * Converts this ReadWrite to JSON.
- * @returns JSON object
- */
- public toJSON(): { [k: string]: any };
+ /** Tablet distance. */
+ public distance: number;
- /**
- * Gets the default type url for ReadWrite
- * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns The default type url
- */
- public static getTypeUrl(typeUrlPrefix?: string): string;
- }
+ /** Tablet skip. */
+ public skip: boolean;
- namespace ReadWrite {
+ /**
+ * Creates a new Tablet instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Tablet instance
+ */
+ public static create(properties?: google.spanner.v1.ITablet): google.spanner.v1.Tablet;
- /** ReadLockMode enum. */
- enum ReadLockMode {
- READ_LOCK_MODE_UNSPECIFIED = 0,
- PESSIMISTIC = 1,
- OPTIMISTIC = 2
- }
- }
-
- /** Properties of a PartitionedDml. */
- interface IPartitionedDml {
- }
-
- /** Represents a PartitionedDml. */
- class PartitionedDml implements IPartitionedDml {
-
- /**
- * Constructs a new PartitionedDml.
- * @param [properties] Properties to set
- */
- constructor(properties?: google.spanner.v1.TransactionOptions.IPartitionedDml);
+ /**
+ * Encodes the specified Tablet message. Does not implicitly {@link google.spanner.v1.Tablet.verify|verify} messages.
+ * @param message Tablet message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.spanner.v1.ITablet, writer?: $protobuf.Writer): $protobuf.Writer;
- /**
- * Creates a new PartitionedDml instance using the specified properties.
- * @param [properties] Properties to set
- * @returns PartitionedDml instance
- */
- public static create(properties?: google.spanner.v1.TransactionOptions.IPartitionedDml): google.spanner.v1.TransactionOptions.PartitionedDml;
+ /**
+ * Encodes the specified Tablet message, length delimited. Does not implicitly {@link google.spanner.v1.Tablet.verify|verify} messages.
+ * @param message Tablet message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.spanner.v1.ITablet, writer?: $protobuf.Writer): $protobuf.Writer;
- /**
- * Encodes the specified PartitionedDml message. Does not implicitly {@link google.spanner.v1.TransactionOptions.PartitionedDml.verify|verify} messages.
- * @param message PartitionedDml message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encode(message: google.spanner.v1.TransactionOptions.IPartitionedDml, writer?: $protobuf.Writer): $protobuf.Writer;
+ /**
+ * Decodes a Tablet message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Tablet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.Tablet;
- /**
- * Encodes the specified PartitionedDml message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.PartitionedDml.verify|verify} messages.
- * @param message PartitionedDml message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encodeDelimited(message: google.spanner.v1.TransactionOptions.IPartitionedDml, writer?: $protobuf.Writer): $protobuf.Writer;
+ /**
+ * Decodes a Tablet message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Tablet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.Tablet;
- /**
- * Decodes a PartitionedDml message from the specified reader or buffer.
- * @param reader Reader or buffer to decode from
- * @param [length] Message length if known beforehand
- * @returns PartitionedDml
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.TransactionOptions.PartitionedDml;
+ /**
+ * Verifies a Tablet message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
- /**
- * Decodes a PartitionedDml message from the specified reader or buffer, length delimited.
- * @param reader Reader or buffer to decode from
- * @returns PartitionedDml
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.TransactionOptions.PartitionedDml;
+ /**
+ * Creates a Tablet message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Tablet
+ */
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.Tablet;
- /**
- * Verifies a PartitionedDml message.
- * @param message Plain object to verify
- * @returns `null` if valid, otherwise the reason why it is not
- */
- public static verify(message: { [k: string]: any }): (string|null);
+ /**
+ * Creates a plain object from a Tablet message. Also converts values to other types if specified.
+ * @param message Tablet
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.spanner.v1.Tablet, options?: $protobuf.IConversionOptions): { [k: string]: any };
- /**
- * Creates a PartitionedDml message from a plain object. Also converts values to their respective internal types.
- * @param object Plain object
- * @returns PartitionedDml
- */
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.TransactionOptions.PartitionedDml;
+ /**
+ * Converts this Tablet to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
- /**
- * Creates a plain object from a PartitionedDml message. Also converts values to other types if specified.
- * @param message PartitionedDml
- * @param [options] Conversion options
- * @returns Plain object
- */
- public static toObject(message: google.spanner.v1.TransactionOptions.PartitionedDml, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ /**
+ * Gets the default type url for Tablet
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
- /**
- * Converts this PartitionedDml to JSON.
- * @returns JSON object
- */
- public toJSON(): { [k: string]: any };
+ namespace Tablet {
- /**
- * Gets the default type url for PartitionedDml
- * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns The default type url
- */
- public static getTypeUrl(typeUrlPrefix?: string): string;
+ /** Role enum. */
+ enum Role {
+ ROLE_UNSPECIFIED = 0,
+ READ_WRITE = 1,
+ READ_ONLY = 2
}
+ }
- /** Properties of a ReadOnly. */
- interface IReadOnly {
-
- /** ReadOnly strong */
- strong?: (boolean|null);
-
- /** ReadOnly minReadTimestamp */
- minReadTimestamp?: (google.protobuf.ITimestamp|null);
-
- /** ReadOnly maxStaleness */
- maxStaleness?: (google.protobuf.IDuration|null);
-
- /** ReadOnly readTimestamp */
- readTimestamp?: (google.protobuf.ITimestamp|null);
-
- /** ReadOnly exactStaleness */
- exactStaleness?: (google.protobuf.IDuration|null);
-
- /** ReadOnly returnReadTimestamp */
- returnReadTimestamp?: (boolean|null);
- }
+ /** Properties of a Group. */
+ interface IGroup {
- /** Represents a ReadOnly. */
- class ReadOnly implements IReadOnly {
+ /** Group groupUid */
+ groupUid?: (number|Long|string|null);
- /**
- * Constructs a new ReadOnly.
- * @param [properties] Properties to set
- */
- constructor(properties?: google.spanner.v1.TransactionOptions.IReadOnly);
+ /** Group tablets */
+ tablets?: (google.spanner.v1.ITablet[]|null);
- /** ReadOnly strong. */
- public strong?: (boolean|null);
+ /** Group leaderIndex */
+ leaderIndex?: (number|null);
- /** ReadOnly minReadTimestamp. */
- public minReadTimestamp?: (google.protobuf.ITimestamp|null);
+ /** Group generation */
+ generation?: (Uint8Array|Buffer|string|null);
+ }
- /** ReadOnly maxStaleness. */
- public maxStaleness?: (google.protobuf.IDuration|null);
+ /** Represents a Group. */
+ class Group implements IGroup {
- /** ReadOnly readTimestamp. */
- public readTimestamp?: (google.protobuf.ITimestamp|null);
+ /**
+ * Constructs a new Group.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.spanner.v1.IGroup);
- /** ReadOnly exactStaleness. */
- public exactStaleness?: (google.protobuf.IDuration|null);
+ /** Group groupUid. */
+ public groupUid: (number|Long|string);
- /** ReadOnly returnReadTimestamp. */
- public returnReadTimestamp: boolean;
+ /** Group tablets. */
+ public tablets: google.spanner.v1.ITablet[];
- /** ReadOnly timestampBound. */
- public timestampBound?: ("strong"|"minReadTimestamp"|"maxStaleness"|"readTimestamp"|"exactStaleness");
+ /** Group leaderIndex. */
+ public leaderIndex: number;
- /**
- * Creates a new ReadOnly instance using the specified properties.
- * @param [properties] Properties to set
- * @returns ReadOnly instance
- */
- public static create(properties?: google.spanner.v1.TransactionOptions.IReadOnly): google.spanner.v1.TransactionOptions.ReadOnly;
+ /** Group generation. */
+ public generation: (Uint8Array|Buffer|string);
- /**
- * Encodes the specified ReadOnly message. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadOnly.verify|verify} messages.
- * @param message ReadOnly message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encode(message: google.spanner.v1.TransactionOptions.IReadOnly, writer?: $protobuf.Writer): $protobuf.Writer;
+ /**
+ * Creates a new Group instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Group instance
+ */
+ public static create(properties?: google.spanner.v1.IGroup): google.spanner.v1.Group;
- /**
- * Encodes the specified ReadOnly message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadOnly.verify|verify} messages.
- * @param message ReadOnly message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encodeDelimited(message: google.spanner.v1.TransactionOptions.IReadOnly, writer?: $protobuf.Writer): $protobuf.Writer;
+ /**
+ * Encodes the specified Group message. Does not implicitly {@link google.spanner.v1.Group.verify|verify} messages.
+ * @param message Group message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.spanner.v1.IGroup, writer?: $protobuf.Writer): $protobuf.Writer;
- /**
- * Decodes a ReadOnly message from the specified reader or buffer.
- * @param reader Reader or buffer to decode from
- * @param [length] Message length if known beforehand
- * @returns ReadOnly
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.TransactionOptions.ReadOnly;
+ /**
+ * Encodes the specified Group message, length delimited. Does not implicitly {@link google.spanner.v1.Group.verify|verify} messages.
+ * @param message Group message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.spanner.v1.IGroup, writer?: $protobuf.Writer): $protobuf.Writer;
- /**
- * Decodes a ReadOnly message from the specified reader or buffer, length delimited.
- * @param reader Reader or buffer to decode from
- * @returns ReadOnly
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.TransactionOptions.ReadOnly;
+ /**
+ * Decodes a Group message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Group
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.Group;
- /**
- * Verifies a ReadOnly message.
- * @param message Plain object to verify
- * @returns `null` if valid, otherwise the reason why it is not
- */
- public static verify(message: { [k: string]: any }): (string|null);
+ /**
+ * Decodes a Group message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Group
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.Group;
- /**
- * Creates a ReadOnly message from a plain object. Also converts values to their respective internal types.
- * @param object Plain object
- * @returns ReadOnly
- */
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.TransactionOptions.ReadOnly;
+ /**
+ * Verifies a Group message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
- /**
- * Creates a plain object from a ReadOnly message. Also converts values to other types if specified.
- * @param message ReadOnly
- * @param [options] Conversion options
- * @returns Plain object
- */
- public static toObject(message: google.spanner.v1.TransactionOptions.ReadOnly, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ /**
+ * Creates a Group message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Group
+ */
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.Group;
- /**
- * Converts this ReadOnly to JSON.
- * @returns JSON object
- */
- public toJSON(): { [k: string]: any };
+ /**
+ * Creates a plain object from a Group message. Also converts values to other types if specified.
+ * @param message Group
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.spanner.v1.Group, options?: $protobuf.IConversionOptions): { [k: string]: any };
- /**
- * Gets the default type url for ReadOnly
- * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns The default type url
- */
- public static getTypeUrl(typeUrlPrefix?: string): string;
- }
+ /**
+ * Converts this Group to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
- /** IsolationLevel enum. */
- enum IsolationLevel {
- ISOLATION_LEVEL_UNSPECIFIED = 0,
- SERIALIZABLE = 1,
- REPEATABLE_READ = 2
- }
+ /**
+ * Gets the default type url for Group
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
}
- /** Properties of a Transaction. */
- interface ITransaction {
+ /** Properties of a KeyRecipe. */
+ interface IKeyRecipe {
- /** Transaction id */
- id?: (Uint8Array|Buffer|string|null);
+ /** KeyRecipe tableName */
+ tableName?: (string|null);
- /** Transaction readTimestamp */
- readTimestamp?: (google.protobuf.ITimestamp|null);
+ /** KeyRecipe indexName */
+ indexName?: (string|null);
- /** Transaction precommitToken */
- precommitToken?: (google.spanner.v1.IMultiplexedSessionPrecommitToken|null);
+ /** KeyRecipe operationUid */
+ operationUid?: (number|Long|string|null);
+
+ /** KeyRecipe part */
+ part?: (google.spanner.v1.KeyRecipe.IPart[]|null);
}
- /** Represents a Transaction. */
- class Transaction implements ITransaction {
+ /** Represents a KeyRecipe. */
+ class KeyRecipe implements IKeyRecipe {
/**
- * Constructs a new Transaction.
+ * Constructs a new KeyRecipe.
* @param [properties] Properties to set
*/
- constructor(properties?: google.spanner.v1.ITransaction);
+ constructor(properties?: google.spanner.v1.IKeyRecipe);
- /** Transaction id. */
- public id: (Uint8Array|Buffer|string);
+ /** KeyRecipe tableName. */
+ public tableName?: (string|null);
- /** Transaction readTimestamp. */
- public readTimestamp?: (google.protobuf.ITimestamp|null);
+ /** KeyRecipe indexName. */
+ public indexName?: (string|null);
- /** Transaction precommitToken. */
- public precommitToken?: (google.spanner.v1.IMultiplexedSessionPrecommitToken|null);
+ /** KeyRecipe operationUid. */
+ public operationUid?: (number|Long|string|null);
+
+ /** KeyRecipe part. */
+ public part: google.spanner.v1.KeyRecipe.IPart[];
+
+ /** KeyRecipe target. */
+ public target?: ("tableName"|"indexName"|"operationUid");
/**
- * Creates a new Transaction instance using the specified properties.
+ * Creates a new KeyRecipe instance using the specified properties.
* @param [properties] Properties to set
- * @returns Transaction instance
+ * @returns KeyRecipe instance
*/
- public static create(properties?: google.spanner.v1.ITransaction): google.spanner.v1.Transaction;
+ public static create(properties?: google.spanner.v1.IKeyRecipe): google.spanner.v1.KeyRecipe;
/**
- * Encodes the specified Transaction message. Does not implicitly {@link google.spanner.v1.Transaction.verify|verify} messages.
- * @param message Transaction message or plain object to encode
+ * Encodes the specified KeyRecipe message. Does not implicitly {@link google.spanner.v1.KeyRecipe.verify|verify} messages.
+ * @param message KeyRecipe message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.ITransaction, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.IKeyRecipe, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified Transaction message, length delimited. Does not implicitly {@link google.spanner.v1.Transaction.verify|verify} messages.
- * @param message Transaction message or plain object to encode
+ * Encodes the specified KeyRecipe message, length delimited. Does not implicitly {@link google.spanner.v1.KeyRecipe.verify|verify} messages.
+ * @param message KeyRecipe message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.ITransaction, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.IKeyRecipe, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a Transaction message from the specified reader or buffer.
+ * Decodes a KeyRecipe message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns Transaction
+ * @returns KeyRecipe
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.Transaction;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.KeyRecipe;
/**
- * Decodes a Transaction message from the specified reader or buffer, length delimited.
+ * Decodes a KeyRecipe message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns Transaction
+ * @returns KeyRecipe
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.Transaction;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.KeyRecipe;
/**
- * Verifies a Transaction message.
+ * Verifies a KeyRecipe message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a Transaction message from a plain object. Also converts values to their respective internal types.
+ * Creates a KeyRecipe message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns Transaction
+ * @returns KeyRecipe
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.Transaction;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.KeyRecipe;
/**
- * Creates a plain object from a Transaction message. Also converts values to other types if specified.
- * @param message Transaction
+ * Creates a plain object from a KeyRecipe message. Also converts values to other types if specified.
+ * @param message KeyRecipe
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.Transaction, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.KeyRecipe, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this Transaction to JSON.
+ * Converts this KeyRecipe to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for Transaction
+ * Gets the default type url for KeyRecipe
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- /** Properties of a TransactionSelector. */
- interface ITransactionSelector {
+ namespace KeyRecipe {
- /** TransactionSelector singleUse */
- singleUse?: (google.spanner.v1.ITransactionOptions|null);
+ /** Properties of a Part. */
+ interface IPart {
- /** TransactionSelector id */
- id?: (Uint8Array|Buffer|string|null);
+ /** Part tag */
+ tag?: (number|null);
- /** TransactionSelector begin */
- begin?: (google.spanner.v1.ITransactionOptions|null);
- }
+ /** Part order */
+ order?: (google.spanner.v1.KeyRecipe.Part.Order|keyof typeof google.spanner.v1.KeyRecipe.Part.Order|null);
- /** Represents a TransactionSelector. */
- class TransactionSelector implements ITransactionSelector {
+ /** Part nullOrder */
+ nullOrder?: (google.spanner.v1.KeyRecipe.Part.NullOrder|keyof typeof google.spanner.v1.KeyRecipe.Part.NullOrder|null);
- /**
- * Constructs a new TransactionSelector.
- * @param [properties] Properties to set
- */
- constructor(properties?: google.spanner.v1.ITransactionSelector);
+ /** Part type */
+ type?: (google.spanner.v1.IType|null);
- /** TransactionSelector singleUse. */
- public singleUse?: (google.spanner.v1.ITransactionOptions|null);
+ /** Part identifier */
+ identifier?: (string|null);
- /** TransactionSelector id. */
- public id?: (Uint8Array|Buffer|string|null);
+ /** Part value */
+ value?: (google.protobuf.IValue|null);
- /** TransactionSelector begin. */
- public begin?: (google.spanner.v1.ITransactionOptions|null);
+ /** Part random */
+ random?: (boolean|null);
- /** TransactionSelector selector. */
- public selector?: ("singleUse"|"id"|"begin");
+ /** Part structIdentifiers */
+ structIdentifiers?: (number[]|null);
+ }
- /**
- * Creates a new TransactionSelector instance using the specified properties.
- * @param [properties] Properties to set
- * @returns TransactionSelector instance
- */
- public static create(properties?: google.spanner.v1.ITransactionSelector): google.spanner.v1.TransactionSelector;
+ /** Represents a Part. */
+ class Part implements IPart {
- /**
- * Encodes the specified TransactionSelector message. Does not implicitly {@link google.spanner.v1.TransactionSelector.verify|verify} messages.
- * @param message TransactionSelector message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encode(message: google.spanner.v1.ITransactionSelector, writer?: $protobuf.Writer): $protobuf.Writer;
+ /**
+ * Constructs a new Part.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.spanner.v1.KeyRecipe.IPart);
- /**
- * Encodes the specified TransactionSelector message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionSelector.verify|verify} messages.
- * @param message TransactionSelector message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encodeDelimited(message: google.spanner.v1.ITransactionSelector, writer?: $protobuf.Writer): $protobuf.Writer;
+ /** Part tag. */
+ public tag: number;
- /**
- * Decodes a TransactionSelector message from the specified reader or buffer.
- * @param reader Reader or buffer to decode from
- * @param [length] Message length if known beforehand
- * @returns TransactionSelector
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.TransactionSelector;
+ /** Part order. */
+ public order: (google.spanner.v1.KeyRecipe.Part.Order|keyof typeof google.spanner.v1.KeyRecipe.Part.Order);
- /**
- * Decodes a TransactionSelector message from the specified reader or buffer, length delimited.
- * @param reader Reader or buffer to decode from
- * @returns TransactionSelector
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.TransactionSelector;
+ /** Part nullOrder. */
+ public nullOrder: (google.spanner.v1.KeyRecipe.Part.NullOrder|keyof typeof google.spanner.v1.KeyRecipe.Part.NullOrder);
- /**
- * Verifies a TransactionSelector message.
- * @param message Plain object to verify
- * @returns `null` if valid, otherwise the reason why it is not
- */
- public static verify(message: { [k: string]: any }): (string|null);
+ /** Part type. */
+ public type?: (google.spanner.v1.IType|null);
- /**
- * Creates a TransactionSelector message from a plain object. Also converts values to their respective internal types.
- * @param object Plain object
- * @returns TransactionSelector
- */
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.TransactionSelector;
+ /** Part identifier. */
+ public identifier?: (string|null);
- /**
- * Creates a plain object from a TransactionSelector message. Also converts values to other types if specified.
- * @param message TransactionSelector
- * @param [options] Conversion options
- * @returns Plain object
- */
- public static toObject(message: google.spanner.v1.TransactionSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ /** Part value. */
+ public value?: (google.protobuf.IValue|null);
+
+ /** Part random. */
+ public random?: (boolean|null);
+
+ /** Part structIdentifiers. */
+ public structIdentifiers: number[];
+
+ /** Part valueType. */
+ public valueType?: ("identifier"|"value"|"random");
+
+ /**
+ * Creates a new Part instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Part instance
+ */
+ public static create(properties?: google.spanner.v1.KeyRecipe.IPart): google.spanner.v1.KeyRecipe.Part;
+
+ /**
+ * Encodes the specified Part message. Does not implicitly {@link google.spanner.v1.KeyRecipe.Part.verify|verify} messages.
+ * @param message Part message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.spanner.v1.KeyRecipe.IPart, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Part message, length delimited. Does not implicitly {@link google.spanner.v1.KeyRecipe.Part.verify|verify} messages.
+ * @param message Part message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.spanner.v1.KeyRecipe.IPart, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Part message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Part
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.KeyRecipe.Part;
+
+ /**
+ * Decodes a Part message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Part
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.KeyRecipe.Part;
+
+ /**
+ * Verifies a Part message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a Part message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Part
+ */
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.KeyRecipe.Part;
+
+ /**
+ * Creates a plain object from a Part message. Also converts values to other types if specified.
+ * @param message Part
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.spanner.v1.KeyRecipe.Part, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Part to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Part
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace Part {
- /**
- * Converts this TransactionSelector to JSON.
- * @returns JSON object
- */
- public toJSON(): { [k: string]: any };
+ /** Order enum. */
+ enum Order {
+ ORDER_UNSPECIFIED = 0,
+ ASCENDING = 1,
+ DESCENDING = 2
+ }
- /**
- * Gets the default type url for TransactionSelector
- * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns The default type url
- */
- public static getTypeUrl(typeUrlPrefix?: string): string;
+ /** NullOrder enum. */
+ enum NullOrder {
+ NULL_ORDER_UNSPECIFIED = 0,
+ NULLS_FIRST = 1,
+ NULLS_LAST = 2,
+ NOT_NULL = 3
+ }
+ }
}
- /** Properties of a MultiplexedSessionPrecommitToken. */
- interface IMultiplexedSessionPrecommitToken {
+ /** Properties of a RecipeList. */
+ interface IRecipeList {
- /** MultiplexedSessionPrecommitToken precommitToken */
- precommitToken?: (Uint8Array|Buffer|string|null);
+ /** RecipeList schemaGeneration */
+ schemaGeneration?: (Uint8Array|Buffer|string|null);
- /** MultiplexedSessionPrecommitToken seqNum */
- seqNum?: (number|null);
+ /** RecipeList recipe */
+ recipe?: (google.spanner.v1.IKeyRecipe[]|null);
}
- /** Represents a MultiplexedSessionPrecommitToken. */
- class MultiplexedSessionPrecommitToken implements IMultiplexedSessionPrecommitToken {
+ /** Represents a RecipeList. */
+ class RecipeList implements IRecipeList {
/**
- * Constructs a new MultiplexedSessionPrecommitToken.
+ * Constructs a new RecipeList.
* @param [properties] Properties to set
*/
- constructor(properties?: google.spanner.v1.IMultiplexedSessionPrecommitToken);
+ constructor(properties?: google.spanner.v1.IRecipeList);
- /** MultiplexedSessionPrecommitToken precommitToken. */
- public precommitToken: (Uint8Array|Buffer|string);
+ /** RecipeList schemaGeneration. */
+ public schemaGeneration: (Uint8Array|Buffer|string);
- /** MultiplexedSessionPrecommitToken seqNum. */
- public seqNum: number;
+ /** RecipeList recipe. */
+ public recipe: google.spanner.v1.IKeyRecipe[];
/**
- * Creates a new MultiplexedSessionPrecommitToken instance using the specified properties.
+ * Creates a new RecipeList instance using the specified properties.
* @param [properties] Properties to set
- * @returns MultiplexedSessionPrecommitToken instance
+ * @returns RecipeList instance
*/
- public static create(properties?: google.spanner.v1.IMultiplexedSessionPrecommitToken): google.spanner.v1.MultiplexedSessionPrecommitToken;
+ public static create(properties?: google.spanner.v1.IRecipeList): google.spanner.v1.RecipeList;
/**
- * Encodes the specified MultiplexedSessionPrecommitToken message. Does not implicitly {@link google.spanner.v1.MultiplexedSessionPrecommitToken.verify|verify} messages.
- * @param message MultiplexedSessionPrecommitToken message or plain object to encode
+ * Encodes the specified RecipeList message. Does not implicitly {@link google.spanner.v1.RecipeList.verify|verify} messages.
+ * @param message RecipeList message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.IMultiplexedSessionPrecommitToken, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.IRecipeList, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified MultiplexedSessionPrecommitToken message, length delimited. Does not implicitly {@link google.spanner.v1.MultiplexedSessionPrecommitToken.verify|verify} messages.
- * @param message MultiplexedSessionPrecommitToken message or plain object to encode
+ * Encodes the specified RecipeList message, length delimited. Does not implicitly {@link google.spanner.v1.RecipeList.verify|verify} messages.
+ * @param message RecipeList message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.IMultiplexedSessionPrecommitToken, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.IRecipeList, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a MultiplexedSessionPrecommitToken message from the specified reader or buffer.
+ * Decodes a RecipeList message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns MultiplexedSessionPrecommitToken
+ * @returns RecipeList
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.MultiplexedSessionPrecommitToken;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.RecipeList;
/**
- * Decodes a MultiplexedSessionPrecommitToken message from the specified reader or buffer, length delimited.
+ * Decodes a RecipeList message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns MultiplexedSessionPrecommitToken
+ * @returns RecipeList
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.MultiplexedSessionPrecommitToken;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.RecipeList;
/**
- * Verifies a MultiplexedSessionPrecommitToken message.
+ * Verifies a RecipeList message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a MultiplexedSessionPrecommitToken message from a plain object. Also converts values to their respective internal types.
+ * Creates a RecipeList message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns MultiplexedSessionPrecommitToken
+ * @returns RecipeList
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.MultiplexedSessionPrecommitToken;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.RecipeList;
/**
- * Creates a plain object from a MultiplexedSessionPrecommitToken message. Also converts values to other types if specified.
- * @param message MultiplexedSessionPrecommitToken
+ * Creates a plain object from a RecipeList message. Also converts values to other types if specified.
+ * @param message RecipeList
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.MultiplexedSessionPrecommitToken, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.RecipeList, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this MultiplexedSessionPrecommitToken to JSON.
+ * Converts this RecipeList to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for MultiplexedSessionPrecommitToken
+ * Gets the default type url for RecipeList
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- /** Properties of a KeyRange. */
- interface IKeyRange {
+ /** Properties of a CacheUpdate. */
+ interface ICacheUpdate {
- /** KeyRange startClosed */
- startClosed?: (google.protobuf.IListValue|null);
+ /** CacheUpdate databaseId */
+ databaseId?: (number|Long|string|null);
- /** KeyRange startOpen */
- startOpen?: (google.protobuf.IListValue|null);
+ /** CacheUpdate range */
+ range?: (google.spanner.v1.IRange[]|null);
- /** KeyRange endClosed */
- endClosed?: (google.protobuf.IListValue|null);
+ /** CacheUpdate group */
+ group?: (google.spanner.v1.IGroup[]|null);
- /** KeyRange endOpen */
- endOpen?: (google.protobuf.IListValue|null);
+ /** CacheUpdate keyRecipes */
+ keyRecipes?: (google.spanner.v1.IRecipeList|null);
}
- /** Represents a KeyRange. */
- class KeyRange implements IKeyRange {
+ /** Represents a CacheUpdate. */
+ class CacheUpdate implements ICacheUpdate {
/**
- * Constructs a new KeyRange.
+ * Constructs a new CacheUpdate.
* @param [properties] Properties to set
*/
- constructor(properties?: google.spanner.v1.IKeyRange);
-
- /** KeyRange startClosed. */
- public startClosed?: (google.protobuf.IListValue|null);
-
- /** KeyRange startOpen. */
- public startOpen?: (google.protobuf.IListValue|null);
+ constructor(properties?: google.spanner.v1.ICacheUpdate);
- /** KeyRange endClosed. */
- public endClosed?: (google.protobuf.IListValue|null);
+ /** CacheUpdate databaseId. */
+ public databaseId: (number|Long|string);
- /** KeyRange endOpen. */
- public endOpen?: (google.protobuf.IListValue|null);
+ /** CacheUpdate range. */
+ public range: google.spanner.v1.IRange[];
- /** KeyRange startKeyType. */
- public startKeyType?: ("startClosed"|"startOpen");
+ /** CacheUpdate group. */
+ public group: google.spanner.v1.IGroup[];
- /** KeyRange endKeyType. */
- public endKeyType?: ("endClosed"|"endOpen");
+ /** CacheUpdate keyRecipes. */
+ public keyRecipes?: (google.spanner.v1.IRecipeList|null);
/**
- * Creates a new KeyRange instance using the specified properties.
+ * Creates a new CacheUpdate instance using the specified properties.
* @param [properties] Properties to set
- * @returns KeyRange instance
+ * @returns CacheUpdate instance
*/
- public static create(properties?: google.spanner.v1.IKeyRange): google.spanner.v1.KeyRange;
+ public static create(properties?: google.spanner.v1.ICacheUpdate): google.spanner.v1.CacheUpdate;
/**
- * Encodes the specified KeyRange message. Does not implicitly {@link google.spanner.v1.KeyRange.verify|verify} messages.
- * @param message KeyRange message or plain object to encode
+ * Encodes the specified CacheUpdate message. Does not implicitly {@link google.spanner.v1.CacheUpdate.verify|verify} messages.
+ * @param message CacheUpdate message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.IKeyRange, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.ICacheUpdate, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified KeyRange message, length delimited. Does not implicitly {@link google.spanner.v1.KeyRange.verify|verify} messages.
- * @param message KeyRange message or plain object to encode
+ * Encodes the specified CacheUpdate message, length delimited. Does not implicitly {@link google.spanner.v1.CacheUpdate.verify|verify} messages.
+ * @param message CacheUpdate message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.IKeyRange, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.ICacheUpdate, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a KeyRange message from the specified reader or buffer.
+ * Decodes a CacheUpdate message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns KeyRange
+ * @returns CacheUpdate
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.KeyRange;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.CacheUpdate;
/**
- * Decodes a KeyRange message from the specified reader or buffer, length delimited.
+ * Decodes a CacheUpdate message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns KeyRange
+ * @returns CacheUpdate
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.KeyRange;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.CacheUpdate;
/**
- * Verifies a KeyRange message.
+ * Verifies a CacheUpdate message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a KeyRange message from a plain object. Also converts values to their respective internal types.
+ * Creates a CacheUpdate message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns KeyRange
+ * @returns CacheUpdate
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.KeyRange;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.CacheUpdate;
/**
- * Creates a plain object from a KeyRange message. Also converts values to other types if specified.
- * @param message KeyRange
+ * Creates a plain object from a CacheUpdate message. Also converts values to other types if specified.
+ * @param message CacheUpdate
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.KeyRange, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.CacheUpdate, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this KeyRange to JSON.
+ * Converts this CacheUpdate to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for KeyRange
+ * Gets the default type url for CacheUpdate
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- /** Properties of a KeySet. */
- interface IKeySet {
+ /** Properties of a RoutingHint. */
+ interface IRoutingHint {
- /** KeySet keys */
- keys?: (google.protobuf.IListValue[]|null);
+ /** RoutingHint operationUid */
+ operationUid?: (number|Long|string|null);
- /** KeySet ranges */
- ranges?: (google.spanner.v1.IKeyRange[]|null);
+ /** RoutingHint databaseId */
+ databaseId?: (number|Long|string|null);
- /** KeySet all */
- all?: (boolean|null);
+ /** RoutingHint schemaGeneration */
+ schemaGeneration?: (Uint8Array|Buffer|string|null);
+
+ /** RoutingHint key */
+ key?: (Uint8Array|Buffer|string|null);
+
+ /** RoutingHint limitKey */
+ limitKey?: (Uint8Array|Buffer|string|null);
+
+ /** RoutingHint groupUid */
+ groupUid?: (number|Long|string|null);
+
+ /** RoutingHint splitId */
+ splitId?: (number|Long|string|null);
+
+ /** RoutingHint tabletUid */
+ tabletUid?: (number|Long|string|null);
+
+ /** RoutingHint skippedTabletUid */
+ skippedTabletUid?: (google.spanner.v1.RoutingHint.ISkippedTablet[]|null);
+
+ /** RoutingHint clientLocation */
+ clientLocation?: (string|null);
}
- /** Represents a KeySet. */
- class KeySet implements IKeySet {
+ /** Represents a RoutingHint. */
+ class RoutingHint implements IRoutingHint {
+
+ /**
+ * Constructs a new RoutingHint.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.spanner.v1.IRoutingHint);
+
+ /** RoutingHint operationUid. */
+ public operationUid: (number|Long|string);
+
+ /** RoutingHint databaseId. */
+ public databaseId: (number|Long|string);
+
+ /** RoutingHint schemaGeneration. */
+ public schemaGeneration: (Uint8Array|Buffer|string);
+
+ /** RoutingHint key. */
+ public key: (Uint8Array|Buffer|string);
+
+ /** RoutingHint limitKey. */
+ public limitKey: (Uint8Array|Buffer|string);
- /**
- * Constructs a new KeySet.
- * @param [properties] Properties to set
- */
- constructor(properties?: google.spanner.v1.IKeySet);
+ /** RoutingHint groupUid. */
+ public groupUid: (number|Long|string);
- /** KeySet keys. */
- public keys: google.protobuf.IListValue[];
+ /** RoutingHint splitId. */
+ public splitId: (number|Long|string);
- /** KeySet ranges. */
- public ranges: google.spanner.v1.IKeyRange[];
+ /** RoutingHint tabletUid. */
+ public tabletUid: (number|Long|string);
- /** KeySet all. */
- public all: boolean;
+ /** RoutingHint skippedTabletUid. */
+ public skippedTabletUid: google.spanner.v1.RoutingHint.ISkippedTablet[];
+
+ /** RoutingHint clientLocation. */
+ public clientLocation: string;
/**
- * Creates a new KeySet instance using the specified properties.
+ * Creates a new RoutingHint instance using the specified properties.
* @param [properties] Properties to set
- * @returns KeySet instance
+ * @returns RoutingHint instance
*/
- public static create(properties?: google.spanner.v1.IKeySet): google.spanner.v1.KeySet;
+ public static create(properties?: google.spanner.v1.IRoutingHint): google.spanner.v1.RoutingHint;
/**
- * Encodes the specified KeySet message. Does not implicitly {@link google.spanner.v1.KeySet.verify|verify} messages.
- * @param message KeySet message or plain object to encode
+ * Encodes the specified RoutingHint message. Does not implicitly {@link google.spanner.v1.RoutingHint.verify|verify} messages.
+ * @param message RoutingHint message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.IKeySet, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.IRoutingHint, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified KeySet message, length delimited. Does not implicitly {@link google.spanner.v1.KeySet.verify|verify} messages.
- * @param message KeySet message or plain object to encode
+ * Encodes the specified RoutingHint message, length delimited. Does not implicitly {@link google.spanner.v1.RoutingHint.verify|verify} messages.
+ * @param message RoutingHint message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.IKeySet, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.IRoutingHint, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a KeySet message from the specified reader or buffer.
+ * Decodes a RoutingHint message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns KeySet
+ * @returns RoutingHint
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.KeySet;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.RoutingHint;
/**
- * Decodes a KeySet message from the specified reader or buffer, length delimited.
+ * Decodes a RoutingHint message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns KeySet
+ * @returns RoutingHint
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.KeySet;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.RoutingHint;
/**
- * Verifies a KeySet message.
+ * Verifies a RoutingHint message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a KeySet message from a plain object. Also converts values to their respective internal types.
+ * Creates a RoutingHint message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns KeySet
+ * @returns RoutingHint
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.KeySet;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.RoutingHint;
/**
- * Creates a plain object from a KeySet message. Also converts values to other types if specified.
- * @param message KeySet
+ * Creates a plain object from a RoutingHint message. Also converts values to other types if specified.
+ * @param message RoutingHint
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.KeySet, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.RoutingHint, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this KeySet to JSON.
+ * Converts this RoutingHint to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for KeySet
+ * Gets the default type url for RoutingHint
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- /** Properties of a Range. */
- interface IRange {
+ namespace RoutingHint {
- /** Range startKey */
- startKey?: (Uint8Array|Buffer|string|null);
+ /** Properties of a SkippedTablet. */
+ interface ISkippedTablet {
- /** Range limitKey */
- limitKey?: (Uint8Array|Buffer|string|null);
+ /** SkippedTablet tabletUid */
+ tabletUid?: (number|Long|string|null);
- /** Range groupUid */
- groupUid?: (number|Long|string|null);
+ /** SkippedTablet incarnation */
+ incarnation?: (Uint8Array|Buffer|string|null);
+ }
- /** Range splitId */
- splitId?: (number|Long|string|null);
+ /** Represents a SkippedTablet. */
+ class SkippedTablet implements ISkippedTablet {
- /** Range generation */
- generation?: (Uint8Array|Buffer|string|null);
+ /**
+ * Constructs a new SkippedTablet.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.spanner.v1.RoutingHint.ISkippedTablet);
+
+ /** SkippedTablet tabletUid. */
+ public tabletUid: (number|Long|string);
+
+ /** SkippedTablet incarnation. */
+ public incarnation: (Uint8Array|Buffer|string);
+
+ /**
+ * Creates a new SkippedTablet instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns SkippedTablet instance
+ */
+ public static create(properties?: google.spanner.v1.RoutingHint.ISkippedTablet): google.spanner.v1.RoutingHint.SkippedTablet;
+
+ /**
+ * Encodes the specified SkippedTablet message. Does not implicitly {@link google.spanner.v1.RoutingHint.SkippedTablet.verify|verify} messages.
+ * @param message SkippedTablet message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.spanner.v1.RoutingHint.ISkippedTablet, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified SkippedTablet message, length delimited. Does not implicitly {@link google.spanner.v1.RoutingHint.SkippedTablet.verify|verify} messages.
+ * @param message SkippedTablet message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.spanner.v1.RoutingHint.ISkippedTablet, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a SkippedTablet message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns SkippedTablet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.RoutingHint.SkippedTablet;
+
+ /**
+ * Decodes a SkippedTablet message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns SkippedTablet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.RoutingHint.SkippedTablet;
+
+ /**
+ * Verifies a SkippedTablet message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a SkippedTablet message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns SkippedTablet
+ */
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.RoutingHint.SkippedTablet;
+
+ /**
+ * Creates a plain object from a SkippedTablet message. Also converts values to other types if specified.
+ * @param message SkippedTablet
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.spanner.v1.RoutingHint.SkippedTablet, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this SkippedTablet to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for SkippedTablet
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
}
- /** Represents a Range. */
- class Range implements IRange {
+ /** Properties of a Type. */
+ interface IType {
+
+ /** Type code */
+ code?: (google.spanner.v1.TypeCode|keyof typeof google.spanner.v1.TypeCode|null);
+
+ /** Type arrayElementType */
+ arrayElementType?: (google.spanner.v1.IType|null);
+
+ /** Type structType */
+ structType?: (google.spanner.v1.IStructType|null);
+
+ /** Type typeAnnotation */
+ typeAnnotation?: (google.spanner.v1.TypeAnnotationCode|keyof typeof google.spanner.v1.TypeAnnotationCode|null);
+
+ /** Type protoTypeFqn */
+ protoTypeFqn?: (string|null);
+ }
+
+ /** Represents a Type. */
+ class Type implements IType {
/**
- * Constructs a new Range.
+ * Constructs a new Type.
* @param [properties] Properties to set
*/
- constructor(properties?: google.spanner.v1.IRange);
+ constructor(properties?: google.spanner.v1.IType);
- /** Range startKey. */
- public startKey: (Uint8Array|Buffer|string);
+ /** Type code. */
+ public code: (google.spanner.v1.TypeCode|keyof typeof google.spanner.v1.TypeCode);
- /** Range limitKey. */
- public limitKey: (Uint8Array|Buffer|string);
+ /** Type arrayElementType. */
+ public arrayElementType?: (google.spanner.v1.IType|null);
- /** Range groupUid. */
- public groupUid: (number|Long|string);
+ /** Type structType. */
+ public structType?: (google.spanner.v1.IStructType|null);
- /** Range splitId. */
- public splitId: (number|Long|string);
+ /** Type typeAnnotation. */
+ public typeAnnotation: (google.spanner.v1.TypeAnnotationCode|keyof typeof google.spanner.v1.TypeAnnotationCode);
- /** Range generation. */
- public generation: (Uint8Array|Buffer|string);
+ /** Type protoTypeFqn. */
+ public protoTypeFqn: string;
/**
- * Creates a new Range instance using the specified properties.
+ * Creates a new Type instance using the specified properties.
* @param [properties] Properties to set
- * @returns Range instance
+ * @returns Type instance
*/
- public static create(properties?: google.spanner.v1.IRange): google.spanner.v1.Range;
+ public static create(properties?: google.spanner.v1.IType): google.spanner.v1.Type;
/**
- * Encodes the specified Range message. Does not implicitly {@link google.spanner.v1.Range.verify|verify} messages.
- * @param message Range message or plain object to encode
+ * Encodes the specified Type message. Does not implicitly {@link google.spanner.v1.Type.verify|verify} messages.
+ * @param message Type message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.IRange, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.IType, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified Range message, length delimited. Does not implicitly {@link google.spanner.v1.Range.verify|verify} messages.
- * @param message Range message or plain object to encode
+ * Encodes the specified Type message, length delimited. Does not implicitly {@link google.spanner.v1.Type.verify|verify} messages.
+ * @param message Type message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.IRange, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.IType, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a Range message from the specified reader or buffer.
+ * Decodes a Type message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns Range
+ * @returns Type
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.Range;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.Type;
/**
- * Decodes a Range message from the specified reader or buffer, length delimited.
+ * Decodes a Type message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns Range
+ * @returns Type
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.Range;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.Type;
/**
- * Verifies a Range message.
+ * Verifies a Type message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a Range message from a plain object. Also converts values to their respective internal types.
+ * Creates a Type message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns Range
+ * @returns Type
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.Range;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.Type;
/**
- * Creates a plain object from a Range message. Also converts values to other types if specified.
- * @param message Range
+ * Creates a plain object from a Type message. Also converts values to other types if specified.
+ * @param message Type
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.Range, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.Type, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this Range to JSON.
+ * Converts this Type to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for Range
+ * Gets the default type url for Type
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- /** Properties of a Tablet. */
- interface ITablet {
-
- /** Tablet tabletUid */
- tabletUid?: (number|Long|string|null);
-
- /** Tablet serverAddress */
- serverAddress?: (string|null);
-
- /** Tablet location */
- location?: (string|null);
-
- /** Tablet role */
- role?: (google.spanner.v1.Tablet.Role|keyof typeof google.spanner.v1.Tablet.Role|null);
-
- /** Tablet incarnation */
- incarnation?: (Uint8Array|Buffer|string|null);
-
- /** Tablet distance */
- distance?: (number|null);
+ /** Properties of a StructType. */
+ interface IStructType {
- /** Tablet skip */
- skip?: (boolean|null);
+ /** StructType fields */
+ fields?: (google.spanner.v1.StructType.IField[]|null);
}
- /** Represents a Tablet. */
- class Tablet implements ITablet {
+ /** Represents a StructType. */
+ class StructType implements IStructType {
/**
- * Constructs a new Tablet.
+ * Constructs a new StructType.
* @param [properties] Properties to set
*/
- constructor(properties?: google.spanner.v1.ITablet);
-
- /** Tablet tabletUid. */
- public tabletUid: (number|Long|string);
-
- /** Tablet serverAddress. */
- public serverAddress: string;
-
- /** Tablet location. */
- public location: string;
-
- /** Tablet role. */
- public role: (google.spanner.v1.Tablet.Role|keyof typeof google.spanner.v1.Tablet.Role);
-
- /** Tablet incarnation. */
- public incarnation: (Uint8Array|Buffer|string);
-
- /** Tablet distance. */
- public distance: number;
+ constructor(properties?: google.spanner.v1.IStructType);
- /** Tablet skip. */
- public skip: boolean;
+ /** StructType fields. */
+ public fields: google.spanner.v1.StructType.IField[];
/**
- * Creates a new Tablet instance using the specified properties.
+ * Creates a new StructType instance using the specified properties.
* @param [properties] Properties to set
- * @returns Tablet instance
+ * @returns StructType instance
*/
- public static create(properties?: google.spanner.v1.ITablet): google.spanner.v1.Tablet;
+ public static create(properties?: google.spanner.v1.IStructType): google.spanner.v1.StructType;
/**
- * Encodes the specified Tablet message. Does not implicitly {@link google.spanner.v1.Tablet.verify|verify} messages.
- * @param message Tablet message or plain object to encode
+ * Encodes the specified StructType message. Does not implicitly {@link google.spanner.v1.StructType.verify|verify} messages.
+ * @param message StructType message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.ITablet, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.IStructType, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified Tablet message, length delimited. Does not implicitly {@link google.spanner.v1.Tablet.verify|verify} messages.
- * @param message Tablet message or plain object to encode
+ * Encodes the specified StructType message, length delimited. Does not implicitly {@link google.spanner.v1.StructType.verify|verify} messages.
+ * @param message StructType message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.ITablet, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.IStructType, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a Tablet message from the specified reader or buffer.
+ * Decodes a StructType message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns Tablet
+ * @returns StructType
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.Tablet;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.StructType;
/**
- * Decodes a Tablet message from the specified reader or buffer, length delimited.
+ * Decodes a StructType message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns Tablet
+ * @returns StructType
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.Tablet;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.StructType;
/**
- * Verifies a Tablet message.
+ * Verifies a StructType message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a Tablet message from a plain object. Also converts values to their respective internal types.
+ * Creates a StructType message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns Tablet
+ * @returns StructType
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.Tablet;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.StructType;
/**
- * Creates a plain object from a Tablet message. Also converts values to other types if specified.
- * @param message Tablet
+ * Creates a plain object from a StructType message. Also converts values to other types if specified.
+ * @param message StructType
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.Tablet, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.StructType, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this Tablet to JSON.
+ * Converts this StructType to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for Tablet
+ * Gets the default type url for StructType
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- namespace Tablet {
+ namespace StructType {
+
+ /** Properties of a Field. */
+ interface IField {
+
+ /** Field name */
+ name?: (string|null);
+
+ /** Field type */
+ type?: (google.spanner.v1.IType|null);
+ }
+
+ /** Represents a Field. */
+ class Field implements IField {
+
+ /**
+ * Constructs a new Field.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.spanner.v1.StructType.IField);
+
+ /** Field name. */
+ public name: string;
+
+ /** Field type. */
+ public type?: (google.spanner.v1.IType|null);
+
+ /**
+ * Creates a new Field instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Field instance
+ */
+ public static create(properties?: google.spanner.v1.StructType.IField): google.spanner.v1.StructType.Field;
+
+ /**
+ * Encodes the specified Field message. Does not implicitly {@link google.spanner.v1.StructType.Field.verify|verify} messages.
+ * @param message Field message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.spanner.v1.StructType.IField, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Field message, length delimited. Does not implicitly {@link google.spanner.v1.StructType.Field.verify|verify} messages.
+ * @param message Field message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.spanner.v1.StructType.IField, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Field message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Field
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.StructType.Field;
+
+ /**
+ * Decodes a Field message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Field
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.StructType.Field;
+
+ /**
+ * Verifies a Field message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a Field message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Field
+ */
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.StructType.Field;
+
+ /**
+ * Creates a plain object from a Field message. Also converts values to other types if specified.
+ * @param message Field
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.spanner.v1.StructType.Field, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Field to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Field
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+ }
+
+ /** TypeCode enum. */
+ enum TypeCode {
+ TYPE_CODE_UNSPECIFIED = 0,
+ BOOL = 1,
+ INT64 = 2,
+ FLOAT64 = 3,
+ FLOAT32 = 15,
+ TIMESTAMP = 4,
+ DATE = 5,
+ STRING = 6,
+ BYTES = 7,
+ ARRAY = 8,
+ STRUCT = 9,
+ NUMERIC = 10,
+ JSON = 11,
+ PROTO = 13,
+ ENUM = 14,
+ INTERVAL = 16,
+ UUID = 17
+ }
- /** Role enum. */
- enum Role {
- ROLE_UNSPECIFIED = 0,
- READ_WRITE = 1,
- READ_ONLY = 2
- }
+ /** TypeAnnotationCode enum. */
+ enum TypeAnnotationCode {
+ TYPE_ANNOTATION_CODE_UNSPECIFIED = 0,
+ PG_NUMERIC = 2,
+ PG_JSONB = 3,
+ PG_OID = 4
}
- /** Properties of a Group. */
- interface IGroup {
+ /** Properties of a TransactionOptions. */
+ interface ITransactionOptions {
- /** Group groupUid */
- groupUid?: (number|Long|string|null);
+ /** TransactionOptions readWrite */
+ readWrite?: (google.spanner.v1.TransactionOptions.IReadWrite|null);
- /** Group tablets */
- tablets?: (google.spanner.v1.ITablet[]|null);
+ /** TransactionOptions partitionedDml */
+ partitionedDml?: (google.spanner.v1.TransactionOptions.IPartitionedDml|null);
- /** Group leaderIndex */
- leaderIndex?: (number|null);
+ /** TransactionOptions readOnly */
+ readOnly?: (google.spanner.v1.TransactionOptions.IReadOnly|null);
- /** Group generation */
- generation?: (Uint8Array|Buffer|string|null);
+ /** TransactionOptions excludeTxnFromChangeStreams */
+ excludeTxnFromChangeStreams?: (boolean|null);
+
+ /** TransactionOptions isolationLevel */
+ isolationLevel?: (google.spanner.v1.TransactionOptions.IsolationLevel|keyof typeof google.spanner.v1.TransactionOptions.IsolationLevel|null);
}
- /** Represents a Group. */
- class Group implements IGroup {
+ /** Represents a TransactionOptions. */
+ class TransactionOptions implements ITransactionOptions {
/**
- * Constructs a new Group.
+ * Constructs a new TransactionOptions.
* @param [properties] Properties to set
*/
- constructor(properties?: google.spanner.v1.IGroup);
+ constructor(properties?: google.spanner.v1.ITransactionOptions);
- /** Group groupUid. */
- public groupUid: (number|Long|string);
+ /** TransactionOptions readWrite. */
+ public readWrite?: (google.spanner.v1.TransactionOptions.IReadWrite|null);
- /** Group tablets. */
- public tablets: google.spanner.v1.ITablet[];
+ /** TransactionOptions partitionedDml. */
+ public partitionedDml?: (google.spanner.v1.TransactionOptions.IPartitionedDml|null);
- /** Group leaderIndex. */
- public leaderIndex: number;
+ /** TransactionOptions readOnly. */
+ public readOnly?: (google.spanner.v1.TransactionOptions.IReadOnly|null);
- /** Group generation. */
- public generation: (Uint8Array|Buffer|string);
+ /** TransactionOptions excludeTxnFromChangeStreams. */
+ public excludeTxnFromChangeStreams: boolean;
+
+ /** TransactionOptions isolationLevel. */
+ public isolationLevel: (google.spanner.v1.TransactionOptions.IsolationLevel|keyof typeof google.spanner.v1.TransactionOptions.IsolationLevel);
+
+ /** TransactionOptions mode. */
+ public mode?: ("readWrite"|"partitionedDml"|"readOnly");
/**
- * Creates a new Group instance using the specified properties.
+ * Creates a new TransactionOptions instance using the specified properties.
* @param [properties] Properties to set
- * @returns Group instance
+ * @returns TransactionOptions instance
*/
- public static create(properties?: google.spanner.v1.IGroup): google.spanner.v1.Group;
+ public static create(properties?: google.spanner.v1.ITransactionOptions): google.spanner.v1.TransactionOptions;
/**
- * Encodes the specified Group message. Does not implicitly {@link google.spanner.v1.Group.verify|verify} messages.
- * @param message Group message or plain object to encode
+ * Encodes the specified TransactionOptions message. Does not implicitly {@link google.spanner.v1.TransactionOptions.verify|verify} messages.
+ * @param message TransactionOptions message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.IGroup, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.ITransactionOptions, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified Group message, length delimited. Does not implicitly {@link google.spanner.v1.Group.verify|verify} messages.
- * @param message Group message or plain object to encode
+ * Encodes the specified TransactionOptions message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.verify|verify} messages.
+ * @param message TransactionOptions message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.IGroup, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.ITransactionOptions, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a Group message from the specified reader or buffer.
+ * Decodes a TransactionOptions message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns Group
+ * @returns TransactionOptions
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.Group;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.TransactionOptions;
/**
- * Decodes a Group message from the specified reader or buffer, length delimited.
+ * Decodes a TransactionOptions message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns Group
+ * @returns TransactionOptions
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.Group;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.TransactionOptions;
/**
- * Verifies a Group message.
+ * Verifies a TransactionOptions message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a Group message from a plain object. Also converts values to their respective internal types.
+ * Creates a TransactionOptions message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns Group
+ * @returns TransactionOptions
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.Group;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.TransactionOptions;
/**
- * Creates a plain object from a Group message. Also converts values to other types if specified.
- * @param message Group
+ * Creates a plain object from a TransactionOptions message. Also converts values to other types if specified.
+ * @param message TransactionOptions
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.Group, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.TransactionOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this Group to JSON.
+ * Converts this TransactionOptions to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for Group
+ * Gets the default type url for TransactionOptions
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- /** Properties of a KeyRecipe. */
- interface IKeyRecipe {
+ namespace TransactionOptions {
- /** KeyRecipe tableName */
- tableName?: (string|null);
+ /** Properties of a ReadWrite. */
+ interface IReadWrite {
- /** KeyRecipe indexName */
- indexName?: (string|null);
+ /** ReadWrite readLockMode */
+ readLockMode?: (google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode|keyof typeof google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode|null);
- /** KeyRecipe operationUid */
- operationUid?: (number|Long|string|null);
+ /** ReadWrite multiplexedSessionPreviousTransactionId */
+ multiplexedSessionPreviousTransactionId?: (Uint8Array|Buffer|string|null);
+ }
- /** KeyRecipe part */
- part?: (google.spanner.v1.KeyRecipe.IPart[]|null);
- }
+ /** Represents a ReadWrite. */
+ class ReadWrite implements IReadWrite {
- /** Represents a KeyRecipe. */
- class KeyRecipe implements IKeyRecipe {
+ /**
+ * Constructs a new ReadWrite.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.spanner.v1.TransactionOptions.IReadWrite);
- /**
- * Constructs a new KeyRecipe.
- * @param [properties] Properties to set
- */
- constructor(properties?: google.spanner.v1.IKeyRecipe);
+ /** ReadWrite readLockMode. */
+ public readLockMode: (google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode|keyof typeof google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode);
- /** KeyRecipe tableName. */
- public tableName?: (string|null);
+ /** ReadWrite multiplexedSessionPreviousTransactionId. */
+ public multiplexedSessionPreviousTransactionId: (Uint8Array|Buffer|string);
- /** KeyRecipe indexName. */
- public indexName?: (string|null);
+ /**
+ * Creates a new ReadWrite instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ReadWrite instance
+ */
+ public static create(properties?: google.spanner.v1.TransactionOptions.IReadWrite): google.spanner.v1.TransactionOptions.ReadWrite;
- /** KeyRecipe operationUid. */
- public operationUid?: (number|Long|string|null);
+ /**
+ * Encodes the specified ReadWrite message. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadWrite.verify|verify} messages.
+ * @param message ReadWrite message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.spanner.v1.TransactionOptions.IReadWrite, writer?: $protobuf.Writer): $protobuf.Writer;
- /** KeyRecipe part. */
- public part: google.spanner.v1.KeyRecipe.IPart[];
+ /**
+ * Encodes the specified ReadWrite message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadWrite.verify|verify} messages.
+ * @param message ReadWrite message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.spanner.v1.TransactionOptions.IReadWrite, writer?: $protobuf.Writer): $protobuf.Writer;
- /** KeyRecipe target. */
- public target?: ("tableName"|"indexName"|"operationUid");
+ /**
+ * Decodes a ReadWrite message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ReadWrite
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.TransactionOptions.ReadWrite;
- /**
- * Creates a new KeyRecipe instance using the specified properties.
- * @param [properties] Properties to set
- * @returns KeyRecipe instance
- */
- public static create(properties?: google.spanner.v1.IKeyRecipe): google.spanner.v1.KeyRecipe;
+ /**
+ * Decodes a ReadWrite message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ReadWrite
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.TransactionOptions.ReadWrite;
- /**
- * Encodes the specified KeyRecipe message. Does not implicitly {@link google.spanner.v1.KeyRecipe.verify|verify} messages.
- * @param message KeyRecipe message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encode(message: google.spanner.v1.IKeyRecipe, writer?: $protobuf.Writer): $protobuf.Writer;
+ /**
+ * Verifies a ReadWrite message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a ReadWrite message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ReadWrite
+ */
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.TransactionOptions.ReadWrite;
+
+ /**
+ * Creates a plain object from a ReadWrite message. Also converts values to other types if specified.
+ * @param message ReadWrite
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.spanner.v1.TransactionOptions.ReadWrite, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ReadWrite to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for ReadWrite
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace ReadWrite {
+
+ /** ReadLockMode enum. */
+ enum ReadLockMode {
+ READ_LOCK_MODE_UNSPECIFIED = 0,
+ PESSIMISTIC = 1,
+ OPTIMISTIC = 2
+ }
+ }
+
+ /** Properties of a PartitionedDml. */
+ interface IPartitionedDml {
+ }
- /**
- * Encodes the specified KeyRecipe message, length delimited. Does not implicitly {@link google.spanner.v1.KeyRecipe.verify|verify} messages.
- * @param message KeyRecipe message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encodeDelimited(message: google.spanner.v1.IKeyRecipe, writer?: $protobuf.Writer): $protobuf.Writer;
+ /** Represents a PartitionedDml. */
+ class PartitionedDml implements IPartitionedDml {
- /**
- * Decodes a KeyRecipe message from the specified reader or buffer.
- * @param reader Reader or buffer to decode from
- * @param [length] Message length if known beforehand
- * @returns KeyRecipe
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.KeyRecipe;
+ /**
+ * Constructs a new PartitionedDml.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.spanner.v1.TransactionOptions.IPartitionedDml);
- /**
- * Decodes a KeyRecipe message from the specified reader or buffer, length delimited.
- * @param reader Reader or buffer to decode from
- * @returns KeyRecipe
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.KeyRecipe;
+ /**
+ * Creates a new PartitionedDml instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns PartitionedDml instance
+ */
+ public static create(properties?: google.spanner.v1.TransactionOptions.IPartitionedDml): google.spanner.v1.TransactionOptions.PartitionedDml;
- /**
- * Verifies a KeyRecipe message.
- * @param message Plain object to verify
- * @returns `null` if valid, otherwise the reason why it is not
- */
- public static verify(message: { [k: string]: any }): (string|null);
+ /**
+ * Encodes the specified PartitionedDml message. Does not implicitly {@link google.spanner.v1.TransactionOptions.PartitionedDml.verify|verify} messages.
+ * @param message PartitionedDml message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.spanner.v1.TransactionOptions.IPartitionedDml, writer?: $protobuf.Writer): $protobuf.Writer;
- /**
- * Creates a KeyRecipe message from a plain object. Also converts values to their respective internal types.
- * @param object Plain object
- * @returns KeyRecipe
- */
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.KeyRecipe;
+ /**
+ * Encodes the specified PartitionedDml message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.PartitionedDml.verify|verify} messages.
+ * @param message PartitionedDml message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.spanner.v1.TransactionOptions.IPartitionedDml, writer?: $protobuf.Writer): $protobuf.Writer;
- /**
- * Creates a plain object from a KeyRecipe message. Also converts values to other types if specified.
- * @param message KeyRecipe
- * @param [options] Conversion options
- * @returns Plain object
- */
- public static toObject(message: google.spanner.v1.KeyRecipe, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ /**
+ * Decodes a PartitionedDml message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns PartitionedDml
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.TransactionOptions.PartitionedDml;
- /**
- * Converts this KeyRecipe to JSON.
- * @returns JSON object
- */
- public toJSON(): { [k: string]: any };
+ /**
+ * Decodes a PartitionedDml message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns PartitionedDml
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.TransactionOptions.PartitionedDml;
- /**
- * Gets the default type url for KeyRecipe
- * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns The default type url
- */
- public static getTypeUrl(typeUrlPrefix?: string): string;
- }
+ /**
+ * Verifies a PartitionedDml message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
- namespace KeyRecipe {
+ /**
+ * Creates a PartitionedDml message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns PartitionedDml
+ */
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.TransactionOptions.PartitionedDml;
- /** Properties of a Part. */
- interface IPart {
+ /**
+ * Creates a plain object from a PartitionedDml message. Also converts values to other types if specified.
+ * @param message PartitionedDml
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.spanner.v1.TransactionOptions.PartitionedDml, options?: $protobuf.IConversionOptions): { [k: string]: any };
- /** Part tag */
- tag?: (number|null);
+ /**
+ * Converts this PartitionedDml to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
- /** Part order */
- order?: (google.spanner.v1.KeyRecipe.Part.Order|keyof typeof google.spanner.v1.KeyRecipe.Part.Order|null);
+ /**
+ * Gets the default type url for PartitionedDml
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
- /** Part nullOrder */
- nullOrder?: (google.spanner.v1.KeyRecipe.Part.NullOrder|keyof typeof google.spanner.v1.KeyRecipe.Part.NullOrder|null);
+ /** Properties of a ReadOnly. */
+ interface IReadOnly {
- /** Part type */
- type?: (google.spanner.v1.IType|null);
+ /** ReadOnly strong */
+ strong?: (boolean|null);
- /** Part identifier */
- identifier?: (string|null);
+ /** ReadOnly minReadTimestamp */
+ minReadTimestamp?: (google.protobuf.ITimestamp|null);
- /** Part value */
- value?: (google.protobuf.IValue|null);
+ /** ReadOnly maxStaleness */
+ maxStaleness?: (google.protobuf.IDuration|null);
- /** Part random */
- random?: (boolean|null);
+ /** ReadOnly readTimestamp */
+ readTimestamp?: (google.protobuf.ITimestamp|null);
- /** Part structIdentifiers */
- structIdentifiers?: (number[]|null);
+ /** ReadOnly exactStaleness */
+ exactStaleness?: (google.protobuf.IDuration|null);
+
+ /** ReadOnly returnReadTimestamp */
+ returnReadTimestamp?: (boolean|null);
}
- /** Represents a Part. */
- class Part implements IPart {
+ /** Represents a ReadOnly. */
+ class ReadOnly implements IReadOnly {
/**
- * Constructs a new Part.
+ * Constructs a new ReadOnly.
* @param [properties] Properties to set
*/
- constructor(properties?: google.spanner.v1.KeyRecipe.IPart);
-
- /** Part tag. */
- public tag: number;
-
- /** Part order. */
- public order: (google.spanner.v1.KeyRecipe.Part.Order|keyof typeof google.spanner.v1.KeyRecipe.Part.Order);
+ constructor(properties?: google.spanner.v1.TransactionOptions.IReadOnly);
- /** Part nullOrder. */
- public nullOrder: (google.spanner.v1.KeyRecipe.Part.NullOrder|keyof typeof google.spanner.v1.KeyRecipe.Part.NullOrder);
+ /** ReadOnly strong. */
+ public strong?: (boolean|null);
- /** Part type. */
- public type?: (google.spanner.v1.IType|null);
+ /** ReadOnly minReadTimestamp. */
+ public minReadTimestamp?: (google.protobuf.ITimestamp|null);
- /** Part identifier. */
- public identifier?: (string|null);
+ /** ReadOnly maxStaleness. */
+ public maxStaleness?: (google.protobuf.IDuration|null);
- /** Part value. */
- public value?: (google.protobuf.IValue|null);
+ /** ReadOnly readTimestamp. */
+ public readTimestamp?: (google.protobuf.ITimestamp|null);
- /** Part random. */
- public random?: (boolean|null);
+ /** ReadOnly exactStaleness. */
+ public exactStaleness?: (google.protobuf.IDuration|null);
- /** Part structIdentifiers. */
- public structIdentifiers: number[];
+ /** ReadOnly returnReadTimestamp. */
+ public returnReadTimestamp: boolean;
- /** Part valueType. */
- public valueType?: ("identifier"|"value"|"random");
+ /** ReadOnly timestampBound. */
+ public timestampBound?: ("strong"|"minReadTimestamp"|"maxStaleness"|"readTimestamp"|"exactStaleness");
/**
- * Creates a new Part instance using the specified properties.
+ * Creates a new ReadOnly instance using the specified properties.
* @param [properties] Properties to set
- * @returns Part instance
+ * @returns ReadOnly instance
*/
- public static create(properties?: google.spanner.v1.KeyRecipe.IPart): google.spanner.v1.KeyRecipe.Part;
+ public static create(properties?: google.spanner.v1.TransactionOptions.IReadOnly): google.spanner.v1.TransactionOptions.ReadOnly;
/**
- * Encodes the specified Part message. Does not implicitly {@link google.spanner.v1.KeyRecipe.Part.verify|verify} messages.
- * @param message Part message or plain object to encode
+ * Encodes the specified ReadOnly message. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadOnly.verify|verify} messages.
+ * @param message ReadOnly message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.KeyRecipe.IPart, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.TransactionOptions.IReadOnly, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified Part message, length delimited. Does not implicitly {@link google.spanner.v1.KeyRecipe.Part.verify|verify} messages.
- * @param message Part message or plain object to encode
+ * Encodes the specified ReadOnly message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadOnly.verify|verify} messages.
+ * @param message ReadOnly message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.KeyRecipe.IPart, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.TransactionOptions.IReadOnly, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a Part message from the specified reader or buffer.
+ * Decodes a ReadOnly message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns Part
+ * @returns ReadOnly
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.KeyRecipe.Part;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.TransactionOptions.ReadOnly;
/**
- * Decodes a Part message from the specified reader or buffer, length delimited.
+ * Decodes a ReadOnly message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns Part
+ * @returns ReadOnly
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.KeyRecipe.Part;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.TransactionOptions.ReadOnly;
/**
- * Verifies a Part message.
+ * Verifies a ReadOnly message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a Part message from a plain object. Also converts values to their respective internal types.
+ * Creates a ReadOnly message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns Part
+ * @returns ReadOnly
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.KeyRecipe.Part;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.TransactionOptions.ReadOnly;
/**
- * Creates a plain object from a Part message. Also converts values to other types if specified.
- * @param message Part
+ * Creates a plain object from a ReadOnly message. Also converts values to other types if specified.
+ * @param message ReadOnly
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.KeyRecipe.Part, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.TransactionOptions.ReadOnly, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this Part to JSON.
+ * Converts this ReadOnly to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for Part
+ * Gets the default type url for ReadOnly
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- namespace Part {
-
- /** Order enum. */
- enum Order {
- ORDER_UNSPECIFIED = 0,
- ASCENDING = 1,
- DESCENDING = 2
- }
-
- /** NullOrder enum. */
- enum NullOrder {
- NULL_ORDER_UNSPECIFIED = 0,
- NULLS_FIRST = 1,
- NULLS_LAST = 2,
- NOT_NULL = 3
- }
+ /** IsolationLevel enum. */
+ enum IsolationLevel {
+ ISOLATION_LEVEL_UNSPECIFIED = 0,
+ SERIALIZABLE = 1,
+ REPEATABLE_READ = 2
}
}
- /** Properties of a RecipeList. */
- interface IRecipeList {
+ /** Properties of a Transaction. */
+ interface ITransaction {
- /** RecipeList schemaGeneration */
- schemaGeneration?: (Uint8Array|Buffer|string|null);
+ /** Transaction id */
+ id?: (Uint8Array|Buffer|string|null);
- /** RecipeList recipe */
- recipe?: (google.spanner.v1.IKeyRecipe[]|null);
+ /** Transaction readTimestamp */
+ readTimestamp?: (google.protobuf.ITimestamp|null);
+
+ /** Transaction precommitToken */
+ precommitToken?: (google.spanner.v1.IMultiplexedSessionPrecommitToken|null);
+
+ /** Transaction cacheUpdate */
+ cacheUpdate?: (google.spanner.v1.ICacheUpdate|null);
}
- /** Represents a RecipeList. */
- class RecipeList implements IRecipeList {
+ /** Represents a Transaction. */
+ class Transaction implements ITransaction {
/**
- * Constructs a new RecipeList.
+ * Constructs a new Transaction.
* @param [properties] Properties to set
*/
- constructor(properties?: google.spanner.v1.IRecipeList);
+ constructor(properties?: google.spanner.v1.ITransaction);
- /** RecipeList schemaGeneration. */
- public schemaGeneration: (Uint8Array|Buffer|string);
+ /** Transaction id. */
+ public id: (Uint8Array|Buffer|string);
- /** RecipeList recipe. */
- public recipe: google.spanner.v1.IKeyRecipe[];
+ /** Transaction readTimestamp. */
+ public readTimestamp?: (google.protobuf.ITimestamp|null);
+
+ /** Transaction precommitToken. */
+ public precommitToken?: (google.spanner.v1.IMultiplexedSessionPrecommitToken|null);
+
+ /** Transaction cacheUpdate. */
+ public cacheUpdate?: (google.spanner.v1.ICacheUpdate|null);
/**
- * Creates a new RecipeList instance using the specified properties.
+ * Creates a new Transaction instance using the specified properties.
* @param [properties] Properties to set
- * @returns RecipeList instance
+ * @returns Transaction instance
*/
- public static create(properties?: google.spanner.v1.IRecipeList): google.spanner.v1.RecipeList;
+ public static create(properties?: google.spanner.v1.ITransaction): google.spanner.v1.Transaction;
/**
- * Encodes the specified RecipeList message. Does not implicitly {@link google.spanner.v1.RecipeList.verify|verify} messages.
- * @param message RecipeList message or plain object to encode
+ * Encodes the specified Transaction message. Does not implicitly {@link google.spanner.v1.Transaction.verify|verify} messages.
+ * @param message Transaction message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.IRecipeList, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.ITransaction, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified RecipeList message, length delimited. Does not implicitly {@link google.spanner.v1.RecipeList.verify|verify} messages.
- * @param message RecipeList message or plain object to encode
+ * Encodes the specified Transaction message, length delimited. Does not implicitly {@link google.spanner.v1.Transaction.verify|verify} messages.
+ * @param message Transaction message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.IRecipeList, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.ITransaction, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a RecipeList message from the specified reader or buffer.
+ * Decodes a Transaction message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns RecipeList
+ * @returns Transaction
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.RecipeList;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.Transaction;
/**
- * Decodes a RecipeList message from the specified reader or buffer, length delimited.
+ * Decodes a Transaction message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns RecipeList
+ * @returns Transaction
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.RecipeList;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.Transaction;
/**
- * Verifies a RecipeList message.
+ * Verifies a Transaction message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a RecipeList message from a plain object. Also converts values to their respective internal types.
+ * Creates a Transaction message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns RecipeList
+ * @returns Transaction
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.RecipeList;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.Transaction;
/**
- * Creates a plain object from a RecipeList message. Also converts values to other types if specified.
- * @param message RecipeList
+ * Creates a plain object from a Transaction message. Also converts values to other types if specified.
+ * @param message Transaction
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.RecipeList, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.Transaction, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this RecipeList to JSON.
+ * Converts this Transaction to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for RecipeList
+ * Gets the default type url for Transaction
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- /** Properties of a CacheUpdate. */
- interface ICacheUpdate {
-
- /** CacheUpdate databaseId */
- databaseId?: (number|Long|string|null);
+ /** Properties of a TransactionSelector. */
+ interface ITransactionSelector {
- /** CacheUpdate range */
- range?: (google.spanner.v1.IRange[]|null);
+ /** TransactionSelector singleUse */
+ singleUse?: (google.spanner.v1.ITransactionOptions|null);
- /** CacheUpdate group */
- group?: (google.spanner.v1.IGroup[]|null);
+ /** TransactionSelector id */
+ id?: (Uint8Array|Buffer|string|null);
- /** CacheUpdate keyRecipes */
- keyRecipes?: (google.spanner.v1.IRecipeList|null);
+ /** TransactionSelector begin */
+ begin?: (google.spanner.v1.ITransactionOptions|null);
}
- /** Represents a CacheUpdate. */
- class CacheUpdate implements ICacheUpdate {
+ /** Represents a TransactionSelector. */
+ class TransactionSelector implements ITransactionSelector {
/**
- * Constructs a new CacheUpdate.
+ * Constructs a new TransactionSelector.
* @param [properties] Properties to set
*/
- constructor(properties?: google.spanner.v1.ICacheUpdate);
+ constructor(properties?: google.spanner.v1.ITransactionSelector);
- /** CacheUpdate databaseId. */
- public databaseId: (number|Long|string);
+ /** TransactionSelector singleUse. */
+ public singleUse?: (google.spanner.v1.ITransactionOptions|null);
- /** CacheUpdate range. */
- public range: google.spanner.v1.IRange[];
+ /** TransactionSelector id. */
+ public id?: (Uint8Array|Buffer|string|null);
- /** CacheUpdate group. */
- public group: google.spanner.v1.IGroup[];
+ /** TransactionSelector begin. */
+ public begin?: (google.spanner.v1.ITransactionOptions|null);
- /** CacheUpdate keyRecipes. */
- public keyRecipes?: (google.spanner.v1.IRecipeList|null);
+ /** TransactionSelector selector. */
+ public selector?: ("singleUse"|"id"|"begin");
/**
- * Creates a new CacheUpdate instance using the specified properties.
+ * Creates a new TransactionSelector instance using the specified properties.
* @param [properties] Properties to set
- * @returns CacheUpdate instance
+ * @returns TransactionSelector instance
*/
- public static create(properties?: google.spanner.v1.ICacheUpdate): google.spanner.v1.CacheUpdate;
+ public static create(properties?: google.spanner.v1.ITransactionSelector): google.spanner.v1.TransactionSelector;
/**
- * Encodes the specified CacheUpdate message. Does not implicitly {@link google.spanner.v1.CacheUpdate.verify|verify} messages.
- * @param message CacheUpdate message or plain object to encode
+ * Encodes the specified TransactionSelector message. Does not implicitly {@link google.spanner.v1.TransactionSelector.verify|verify} messages.
+ * @param message TransactionSelector message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.ICacheUpdate, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.ITransactionSelector, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified CacheUpdate message, length delimited. Does not implicitly {@link google.spanner.v1.CacheUpdate.verify|verify} messages.
- * @param message CacheUpdate message or plain object to encode
+ * Encodes the specified TransactionSelector message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionSelector.verify|verify} messages.
+ * @param message TransactionSelector message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.ICacheUpdate, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.ITransactionSelector, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a CacheUpdate message from the specified reader or buffer.
+ * Decodes a TransactionSelector message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns CacheUpdate
+ * @returns TransactionSelector
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.CacheUpdate;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.TransactionSelector;
/**
- * Decodes a CacheUpdate message from the specified reader or buffer, length delimited.
+ * Decodes a TransactionSelector message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns CacheUpdate
+ * @returns TransactionSelector
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.CacheUpdate;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.TransactionSelector;
/**
- * Verifies a CacheUpdate message.
+ * Verifies a TransactionSelector message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a CacheUpdate message from a plain object. Also converts values to their respective internal types.
+ * Creates a TransactionSelector message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns CacheUpdate
+ * @returns TransactionSelector
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.CacheUpdate;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.TransactionSelector;
/**
- * Creates a plain object from a CacheUpdate message. Also converts values to other types if specified.
- * @param message CacheUpdate
+ * Creates a plain object from a TransactionSelector message. Also converts values to other types if specified.
+ * @param message TransactionSelector
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.CacheUpdate, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.TransactionSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this CacheUpdate to JSON.
+ * Converts this TransactionSelector to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
- /**
- * Gets the default type url for CacheUpdate
- * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns The default type url
- */
- public static getTypeUrl(typeUrlPrefix?: string): string;
- }
-
- /** Properties of a RoutingHint. */
- interface IRoutingHint {
-
- /** RoutingHint operationUid */
- operationUid?: (number|Long|string|null);
-
- /** RoutingHint databaseId */
- databaseId?: (number|Long|string|null);
-
- /** RoutingHint schemaGeneration */
- schemaGeneration?: (Uint8Array|Buffer|string|null);
-
- /** RoutingHint key */
- key?: (Uint8Array|Buffer|string|null);
-
- /** RoutingHint limitKey */
- limitKey?: (Uint8Array|Buffer|string|null);
-
- /** RoutingHint groupUid */
- groupUid?: (number|Long|string|null);
-
- /** RoutingHint splitId */
- splitId?: (number|Long|string|null);
-
- /** RoutingHint tabletUid */
- tabletUid?: (number|Long|string|null);
-
- /** RoutingHint skippedTabletUid */
- skippedTabletUid?: (google.spanner.v1.RoutingHint.ISkippedTablet[]|null);
-
- /** RoutingHint clientLocation */
- clientLocation?: (string|null);
- }
-
- /** Represents a RoutingHint. */
- class RoutingHint implements IRoutingHint {
-
- /**
- * Constructs a new RoutingHint.
- * @param [properties] Properties to set
- */
- constructor(properties?: google.spanner.v1.IRoutingHint);
-
- /** RoutingHint operationUid. */
- public operationUid: (number|Long|string);
-
- /** RoutingHint databaseId. */
- public databaseId: (number|Long|string);
-
- /** RoutingHint schemaGeneration. */
- public schemaGeneration: (Uint8Array|Buffer|string);
+ /**
+ * Gets the default type url for TransactionSelector
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
- /** RoutingHint key. */
- public key: (Uint8Array|Buffer|string);
+ /** Properties of a MultiplexedSessionPrecommitToken. */
+ interface IMultiplexedSessionPrecommitToken {
- /** RoutingHint limitKey. */
- public limitKey: (Uint8Array|Buffer|string);
+ /** MultiplexedSessionPrecommitToken precommitToken */
+ precommitToken?: (Uint8Array|Buffer|string|null);
- /** RoutingHint groupUid. */
- public groupUid: (number|Long|string);
+ /** MultiplexedSessionPrecommitToken seqNum */
+ seqNum?: (number|null);
+ }
- /** RoutingHint splitId. */
- public splitId: (number|Long|string);
+ /** Represents a MultiplexedSessionPrecommitToken. */
+ class MultiplexedSessionPrecommitToken implements IMultiplexedSessionPrecommitToken {
- /** RoutingHint tabletUid. */
- public tabletUid: (number|Long|string);
+ /**
+ * Constructs a new MultiplexedSessionPrecommitToken.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.spanner.v1.IMultiplexedSessionPrecommitToken);
- /** RoutingHint skippedTabletUid. */
- public skippedTabletUid: google.spanner.v1.RoutingHint.ISkippedTablet[];
+ /** MultiplexedSessionPrecommitToken precommitToken. */
+ public precommitToken: (Uint8Array|Buffer|string);
- /** RoutingHint clientLocation. */
- public clientLocation: string;
+ /** MultiplexedSessionPrecommitToken seqNum. */
+ public seqNum: number;
/**
- * Creates a new RoutingHint instance using the specified properties.
+ * Creates a new MultiplexedSessionPrecommitToken instance using the specified properties.
* @param [properties] Properties to set
- * @returns RoutingHint instance
+ * @returns MultiplexedSessionPrecommitToken instance
*/
- public static create(properties?: google.spanner.v1.IRoutingHint): google.spanner.v1.RoutingHint;
+ public static create(properties?: google.spanner.v1.IMultiplexedSessionPrecommitToken): google.spanner.v1.MultiplexedSessionPrecommitToken;
/**
- * Encodes the specified RoutingHint message. Does not implicitly {@link google.spanner.v1.RoutingHint.verify|verify} messages.
- * @param message RoutingHint message or plain object to encode
+ * Encodes the specified MultiplexedSessionPrecommitToken message. Does not implicitly {@link google.spanner.v1.MultiplexedSessionPrecommitToken.verify|verify} messages.
+ * @param message MultiplexedSessionPrecommitToken message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.IRoutingHint, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.IMultiplexedSessionPrecommitToken, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified RoutingHint message, length delimited. Does not implicitly {@link google.spanner.v1.RoutingHint.verify|verify} messages.
- * @param message RoutingHint message or plain object to encode
+ * Encodes the specified MultiplexedSessionPrecommitToken message, length delimited. Does not implicitly {@link google.spanner.v1.MultiplexedSessionPrecommitToken.verify|verify} messages.
+ * @param message MultiplexedSessionPrecommitToken message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.IRoutingHint, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.IMultiplexedSessionPrecommitToken, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a RoutingHint message from the specified reader or buffer.
+ * Decodes a MultiplexedSessionPrecommitToken message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns RoutingHint
+ * @returns MultiplexedSessionPrecommitToken
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.RoutingHint;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.MultiplexedSessionPrecommitToken;
/**
- * Decodes a RoutingHint message from the specified reader or buffer, length delimited.
+ * Decodes a MultiplexedSessionPrecommitToken message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns RoutingHint
+ * @returns MultiplexedSessionPrecommitToken
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.RoutingHint;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.MultiplexedSessionPrecommitToken;
/**
- * Verifies a RoutingHint message.
+ * Verifies a MultiplexedSessionPrecommitToken message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a RoutingHint message from a plain object. Also converts values to their respective internal types.
+ * Creates a MultiplexedSessionPrecommitToken message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns RoutingHint
+ * @returns MultiplexedSessionPrecommitToken
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.RoutingHint;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.MultiplexedSessionPrecommitToken;
/**
- * Creates a plain object from a RoutingHint message. Also converts values to other types if specified.
- * @param message RoutingHint
+ * Creates a plain object from a MultiplexedSessionPrecommitToken message. Also converts values to other types if specified.
+ * @param message MultiplexedSessionPrecommitToken
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.RoutingHint, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.MultiplexedSessionPrecommitToken, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this RoutingHint to JSON.
+ * Converts this MultiplexedSessionPrecommitToken to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for RoutingHint
+ * Gets the default type url for MultiplexedSessionPrecommitToken
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- namespace RoutingHint {
-
- /** Properties of a SkippedTablet. */
- interface ISkippedTablet {
-
- /** SkippedTablet tabletUid */
- tabletUid?: (number|Long|string|null);
-
- /** SkippedTablet incarnation */
- incarnation?: (Uint8Array|Buffer|string|null);
- }
-
- /** Represents a SkippedTablet. */
- class SkippedTablet implements ISkippedTablet {
-
- /**
- * Constructs a new SkippedTablet.
- * @param [properties] Properties to set
- */
- constructor(properties?: google.spanner.v1.RoutingHint.ISkippedTablet);
-
- /** SkippedTablet tabletUid. */
- public tabletUid: (number|Long|string);
-
- /** SkippedTablet incarnation. */
- public incarnation: (Uint8Array|Buffer|string);
-
- /**
- * Creates a new SkippedTablet instance using the specified properties.
- * @param [properties] Properties to set
- * @returns SkippedTablet instance
- */
- public static create(properties?: google.spanner.v1.RoutingHint.ISkippedTablet): google.spanner.v1.RoutingHint.SkippedTablet;
-
- /**
- * Encodes the specified SkippedTablet message. Does not implicitly {@link google.spanner.v1.RoutingHint.SkippedTablet.verify|verify} messages.
- * @param message SkippedTablet message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encode(message: google.spanner.v1.RoutingHint.ISkippedTablet, writer?: $protobuf.Writer): $protobuf.Writer;
-
- /**
- * Encodes the specified SkippedTablet message, length delimited. Does not implicitly {@link google.spanner.v1.RoutingHint.SkippedTablet.verify|verify} messages.
- * @param message SkippedTablet message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encodeDelimited(message: google.spanner.v1.RoutingHint.ISkippedTablet, writer?: $protobuf.Writer): $protobuf.Writer;
-
- /**
- * Decodes a SkippedTablet message from the specified reader or buffer.
- * @param reader Reader or buffer to decode from
- * @param [length] Message length if known beforehand
- * @returns SkippedTablet
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.RoutingHint.SkippedTablet;
-
- /**
- * Decodes a SkippedTablet message from the specified reader or buffer, length delimited.
- * @param reader Reader or buffer to decode from
- * @returns SkippedTablet
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.RoutingHint.SkippedTablet;
-
- /**
- * Verifies a SkippedTablet message.
- * @param message Plain object to verify
- * @returns `null` if valid, otherwise the reason why it is not
- */
- public static verify(message: { [k: string]: any }): (string|null);
-
- /**
- * Creates a SkippedTablet message from a plain object. Also converts values to their respective internal types.
- * @param object Plain object
- * @returns SkippedTablet
- */
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.RoutingHint.SkippedTablet;
-
- /**
- * Creates a plain object from a SkippedTablet message. Also converts values to other types if specified.
- * @param message SkippedTablet
- * @param [options] Conversion options
- * @returns Plain object
- */
- public static toObject(message: google.spanner.v1.RoutingHint.SkippedTablet, options?: $protobuf.IConversionOptions): { [k: string]: any };
-
- /**
- * Converts this SkippedTablet to JSON.
- * @returns JSON object
- */
- public toJSON(): { [k: string]: any };
-
- /**
- * Gets the default type url for SkippedTablet
- * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns The default type url
- */
- public static getTypeUrl(typeUrlPrefix?: string): string;
- }
- }
-
- /** Properties of a Type. */
- interface IType {
-
- /** Type code */
- code?: (google.spanner.v1.TypeCode|keyof typeof google.spanner.v1.TypeCode|null);
+ /** Properties of a KeyRange. */
+ interface IKeyRange {
- /** Type arrayElementType */
- arrayElementType?: (google.spanner.v1.IType|null);
+ /** KeyRange startClosed */
+ startClosed?: (google.protobuf.IListValue|null);
- /** Type structType */
- structType?: (google.spanner.v1.IStructType|null);
+ /** KeyRange startOpen */
+ startOpen?: (google.protobuf.IListValue|null);
- /** Type typeAnnotation */
- typeAnnotation?: (google.spanner.v1.TypeAnnotationCode|keyof typeof google.spanner.v1.TypeAnnotationCode|null);
+ /** KeyRange endClosed */
+ endClosed?: (google.protobuf.IListValue|null);
- /** Type protoTypeFqn */
- protoTypeFqn?: (string|null);
+ /** KeyRange endOpen */
+ endOpen?: (google.protobuf.IListValue|null);
}
- /** Represents a Type. */
- class Type implements IType {
+ /** Represents a KeyRange. */
+ class KeyRange implements IKeyRange {
/**
- * Constructs a new Type.
+ * Constructs a new KeyRange.
* @param [properties] Properties to set
*/
- constructor(properties?: google.spanner.v1.IType);
+ constructor(properties?: google.spanner.v1.IKeyRange);
- /** Type code. */
- public code: (google.spanner.v1.TypeCode|keyof typeof google.spanner.v1.TypeCode);
+ /** KeyRange startClosed. */
+ public startClosed?: (google.protobuf.IListValue|null);
- /** Type arrayElementType. */
- public arrayElementType?: (google.spanner.v1.IType|null);
+ /** KeyRange startOpen. */
+ public startOpen?: (google.protobuf.IListValue|null);
- /** Type structType. */
- public structType?: (google.spanner.v1.IStructType|null);
+ /** KeyRange endClosed. */
+ public endClosed?: (google.protobuf.IListValue|null);
- /** Type typeAnnotation. */
- public typeAnnotation: (google.spanner.v1.TypeAnnotationCode|keyof typeof google.spanner.v1.TypeAnnotationCode);
+ /** KeyRange endOpen. */
+ public endOpen?: (google.protobuf.IListValue|null);
- /** Type protoTypeFqn. */
- public protoTypeFqn: string;
+ /** KeyRange startKeyType. */
+ public startKeyType?: ("startClosed"|"startOpen");
+
+ /** KeyRange endKeyType. */
+ public endKeyType?: ("endClosed"|"endOpen");
/**
- * Creates a new Type instance using the specified properties.
+ * Creates a new KeyRange instance using the specified properties.
* @param [properties] Properties to set
- * @returns Type instance
+ * @returns KeyRange instance
*/
- public static create(properties?: google.spanner.v1.IType): google.spanner.v1.Type;
+ public static create(properties?: google.spanner.v1.IKeyRange): google.spanner.v1.KeyRange;
- /**
- * Encodes the specified Type message. Does not implicitly {@link google.spanner.v1.Type.verify|verify} messages.
- * @param message Type message or plain object to encode
+ /**
+ * Encodes the specified KeyRange message. Does not implicitly {@link google.spanner.v1.KeyRange.verify|verify} messages.
+ * @param message KeyRange message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.IType, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.IKeyRange, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified Type message, length delimited. Does not implicitly {@link google.spanner.v1.Type.verify|verify} messages.
- * @param message Type message or plain object to encode
+ * Encodes the specified KeyRange message, length delimited. Does not implicitly {@link google.spanner.v1.KeyRange.verify|verify} messages.
+ * @param message KeyRange message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.IType, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.IKeyRange, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a Type message from the specified reader or buffer.
+ * Decodes a KeyRange message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns Type
+ * @returns KeyRange
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.Type;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.KeyRange;
/**
- * Decodes a Type message from the specified reader or buffer, length delimited.
+ * Decodes a KeyRange message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns Type
+ * @returns KeyRange
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.Type;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.KeyRange;
/**
- * Verifies a Type message.
+ * Verifies a KeyRange message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a Type message from a plain object. Also converts values to their respective internal types.
+ * Creates a KeyRange message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns Type
+ * @returns KeyRange
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.Type;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.KeyRange;
/**
- * Creates a plain object from a Type message. Also converts values to other types if specified.
- * @param message Type
+ * Creates a plain object from a KeyRange message. Also converts values to other types if specified.
+ * @param message KeyRange
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.Type, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.KeyRange, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this Type to JSON.
+ * Converts this KeyRange to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for Type
+ * Gets the default type url for KeyRange
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- /** Properties of a StructType. */
- interface IStructType {
+ /** Properties of a KeySet. */
+ interface IKeySet {
- /** StructType fields */
- fields?: (google.spanner.v1.StructType.IField[]|null);
+ /** KeySet keys */
+ keys?: (google.protobuf.IListValue[]|null);
+
+ /** KeySet ranges */
+ ranges?: (google.spanner.v1.IKeyRange[]|null);
+
+ /** KeySet all */
+ all?: (boolean|null);
}
- /** Represents a StructType. */
- class StructType implements IStructType {
+ /** Represents a KeySet. */
+ class KeySet implements IKeySet {
/**
- * Constructs a new StructType.
+ * Constructs a new KeySet.
* @param [properties] Properties to set
*/
- constructor(properties?: google.spanner.v1.IStructType);
+ constructor(properties?: google.spanner.v1.IKeySet);
- /** StructType fields. */
- public fields: google.spanner.v1.StructType.IField[];
+ /** KeySet keys. */
+ public keys: google.protobuf.IListValue[];
+
+ /** KeySet ranges. */
+ public ranges: google.spanner.v1.IKeyRange[];
+
+ /** KeySet all. */
+ public all: boolean;
/**
- * Creates a new StructType instance using the specified properties.
+ * Creates a new KeySet instance using the specified properties.
* @param [properties] Properties to set
- * @returns StructType instance
+ * @returns KeySet instance
*/
- public static create(properties?: google.spanner.v1.IStructType): google.spanner.v1.StructType;
+ public static create(properties?: google.spanner.v1.IKeySet): google.spanner.v1.KeySet;
/**
- * Encodes the specified StructType message. Does not implicitly {@link google.spanner.v1.StructType.verify|verify} messages.
- * @param message StructType message or plain object to encode
+ * Encodes the specified KeySet message. Does not implicitly {@link google.spanner.v1.KeySet.verify|verify} messages.
+ * @param message KeySet message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encode(message: google.spanner.v1.IStructType, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encode(message: google.spanner.v1.IKeySet, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Encodes the specified StructType message, length delimited. Does not implicitly {@link google.spanner.v1.StructType.verify|verify} messages.
- * @param message StructType message or plain object to encode
+ * Encodes the specified KeySet message, length delimited. Does not implicitly {@link google.spanner.v1.KeySet.verify|verify} messages.
+ * @param message KeySet message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
- public static encodeDelimited(message: google.spanner.v1.IStructType, writer?: $protobuf.Writer): $protobuf.Writer;
+ public static encodeDelimited(message: google.spanner.v1.IKeySet, writer?: $protobuf.Writer): $protobuf.Writer;
/**
- * Decodes a StructType message from the specified reader or buffer.
+ * Decodes a KeySet message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
- * @returns StructType
+ * @returns KeySet
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.StructType;
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.KeySet;
/**
- * Decodes a StructType message from the specified reader or buffer, length delimited.
+ * Decodes a KeySet message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
- * @returns StructType
+ * @returns KeySet
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.StructType;
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.KeySet;
/**
- * Verifies a StructType message.
+ * Verifies a KeySet message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
public static verify(message: { [k: string]: any }): (string|null);
/**
- * Creates a StructType message from a plain object. Also converts values to their respective internal types.
+ * Creates a KeySet message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
- * @returns StructType
+ * @returns KeySet
*/
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.StructType;
+ public static fromObject(object: { [k: string]: any }): google.spanner.v1.KeySet;
/**
- * Creates a plain object from a StructType message. Also converts values to other types if specified.
- * @param message StructType
+ * Creates a plain object from a KeySet message. Also converts values to other types if specified.
+ * @param message KeySet
* @param [options] Conversion options
* @returns Plain object
*/
- public static toObject(message: google.spanner.v1.StructType, options?: $protobuf.IConversionOptions): { [k: string]: any };
+ public static toObject(message: google.spanner.v1.KeySet, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
- * Converts this StructType to JSON.
+ * Converts this KeySet to JSON.
* @returns JSON object
*/
public toJSON(): { [k: string]: any };
/**
- * Gets the default type url for StructType
+ * Gets the default type url for KeySet
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
- namespace StructType {
-
- /** Properties of a Field. */
- interface IField {
-
- /** Field name */
- name?: (string|null);
-
- /** Field type */
- type?: (google.spanner.v1.IType|null);
- }
-
- /** Represents a Field. */
- class Field implements IField {
-
- /**
- * Constructs a new Field.
- * @param [properties] Properties to set
- */
- constructor(properties?: google.spanner.v1.StructType.IField);
-
- /** Field name. */
- public name: string;
-
- /** Field type. */
- public type?: (google.spanner.v1.IType|null);
-
- /**
- * Creates a new Field instance using the specified properties.
- * @param [properties] Properties to set
- * @returns Field instance
- */
- public static create(properties?: google.spanner.v1.StructType.IField): google.spanner.v1.StructType.Field;
-
- /**
- * Encodes the specified Field message. Does not implicitly {@link google.spanner.v1.StructType.Field.verify|verify} messages.
- * @param message Field message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encode(message: google.spanner.v1.StructType.IField, writer?: $protobuf.Writer): $protobuf.Writer;
-
- /**
- * Encodes the specified Field message, length delimited. Does not implicitly {@link google.spanner.v1.StructType.Field.verify|verify} messages.
- * @param message Field message or plain object to encode
- * @param [writer] Writer to encode to
- * @returns Writer
- */
- public static encodeDelimited(message: google.spanner.v1.StructType.IField, writer?: $protobuf.Writer): $protobuf.Writer;
-
- /**
- * Decodes a Field message from the specified reader or buffer.
- * @param reader Reader or buffer to decode from
- * @param [length] Message length if known beforehand
- * @returns Field
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.spanner.v1.StructType.Field;
-
- /**
- * Decodes a Field message from the specified reader or buffer, length delimited.
- * @param reader Reader or buffer to decode from
- * @returns Field
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.spanner.v1.StructType.Field;
-
- /**
- * Verifies a Field message.
- * @param message Plain object to verify
- * @returns `null` if valid, otherwise the reason why it is not
- */
- public static verify(message: { [k: string]: any }): (string|null);
-
- /**
- * Creates a Field message from a plain object. Also converts values to their respective internal types.
- * @param object Plain object
- * @returns Field
- */
- public static fromObject(object: { [k: string]: any }): google.spanner.v1.StructType.Field;
-
- /**
- * Creates a plain object from a Field message. Also converts values to other types if specified.
- * @param message Field
- * @param [options] Conversion options
- * @returns Plain object
- */
- public static toObject(message: google.spanner.v1.StructType.Field, options?: $protobuf.IConversionOptions): { [k: string]: any };
-
- /**
- * Converts this Field to JSON.
- * @returns JSON object
- */
- public toJSON(): { [k: string]: any };
-
- /**
- * Gets the default type url for Field
- * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns The default type url
- */
- public static getTypeUrl(typeUrlPrefix?: string): string;
- }
- }
-
- /** TypeCode enum. */
- enum TypeCode {
- TYPE_CODE_UNSPECIFIED = 0,
- BOOL = 1,
- INT64 = 2,
- FLOAT64 = 3,
- FLOAT32 = 15,
- TIMESTAMP = 4,
- DATE = 5,
- STRING = 6,
- BYTES = 7,
- ARRAY = 8,
- STRUCT = 9,
- NUMERIC = 10,
- JSON = 11,
- PROTO = 13,
- ENUM = 14,
- INTERVAL = 16,
- UUID = 17
- }
-
- /** TypeAnnotationCode enum. */
- enum TypeAnnotationCode {
- TYPE_ANNOTATION_CODE_UNSPECIFIED = 0,
- PG_NUMERIC = 2,
- PG_JSONB = 3,
- PG_OID = 4
- }
-
/** Properties of a Mutation. */
interface IMutation {
diff --git a/handwritten/spanner/protos/protos.js b/handwritten/spanner/protos/protos.js
index 837290eefd8a..8ccd5acd37b6 100644
--- a/handwritten/spanner/protos/protos.js
+++ b/handwritten/spanner/protos/protos.js
@@ -84454,6 +84454,7 @@
* @property {google.spanner.v1.ITransactionOptions|null} [options] BeginTransactionRequest options
* @property {google.spanner.v1.IRequestOptions|null} [requestOptions] BeginTransactionRequest requestOptions
* @property {google.spanner.v1.IMutation|null} [mutationKey] BeginTransactionRequest mutationKey
+ * @property {google.spanner.v1.IRoutingHint|null} [routingHint] BeginTransactionRequest routingHint
*/
/**
@@ -84503,6 +84504,14 @@
*/
BeginTransactionRequest.prototype.mutationKey = null;
+ /**
+ * BeginTransactionRequest routingHint.
+ * @member {google.spanner.v1.IRoutingHint|null|undefined} routingHint
+ * @memberof google.spanner.v1.BeginTransactionRequest
+ * @instance
+ */
+ BeginTransactionRequest.prototype.routingHint = null;
+
/**
* Creates a new BeginTransactionRequest instance using the specified properties.
* @function create
@@ -84535,6 +84544,8 @@
$root.google.spanner.v1.RequestOptions.encode(message.requestOptions, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
if (message.mutationKey != null && Object.hasOwnProperty.call(message, "mutationKey"))
$root.google.spanner.v1.Mutation.encode(message.mutationKey, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ if (message.routingHint != null && Object.hasOwnProperty.call(message, "routingHint"))
+ $root.google.spanner.v1.RoutingHint.encode(message.routingHint, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
return writer;
};
@@ -84587,6 +84598,10 @@
message.mutationKey = $root.google.spanner.v1.Mutation.decode(reader, reader.uint32());
break;
}
+ case 5: {
+ message.routingHint = $root.google.spanner.v1.RoutingHint.decode(reader, reader.uint32());
+ break;
+ }
default:
reader.skipType(tag & 7);
break;
@@ -84640,6 +84655,11 @@
if (error)
return "mutationKey." + error;
}
+ if (message.routingHint != null && message.hasOwnProperty("routingHint")) {
+ var error = $root.google.spanner.v1.RoutingHint.verify(message.routingHint);
+ if (error)
+ return "routingHint." + error;
+ }
return null;
};
@@ -84672,6 +84692,11 @@
throw TypeError(".google.spanner.v1.BeginTransactionRequest.mutationKey: object expected");
message.mutationKey = $root.google.spanner.v1.Mutation.fromObject(object.mutationKey);
}
+ if (object.routingHint != null) {
+ if (typeof object.routingHint !== "object")
+ throw TypeError(".google.spanner.v1.BeginTransactionRequest.routingHint: object expected");
+ message.routingHint = $root.google.spanner.v1.RoutingHint.fromObject(object.routingHint);
+ }
return message;
};
@@ -84693,6 +84718,7 @@
object.options = null;
object.requestOptions = null;
object.mutationKey = null;
+ object.routingHint = null;
}
if (message.session != null && message.hasOwnProperty("session"))
object.session = message.session;
@@ -84702,6 +84728,8 @@
object.requestOptions = $root.google.spanner.v1.RequestOptions.toObject(message.requestOptions, options);
if (message.mutationKey != null && message.hasOwnProperty("mutationKey"))
object.mutationKey = $root.google.spanner.v1.Mutation.toObject(message.mutationKey, options);
+ if (message.routingHint != null && message.hasOwnProperty("routingHint"))
+ object.routingHint = $root.google.spanner.v1.RoutingHint.toObject(message.routingHint, options);
return object;
};
@@ -84748,6 +84776,7 @@
* @property {google.protobuf.IDuration|null} [maxCommitDelay] CommitRequest maxCommitDelay
* @property {google.spanner.v1.IRequestOptions|null} [requestOptions] CommitRequest requestOptions
* @property {google.spanner.v1.IMultiplexedSessionPrecommitToken|null} [precommitToken] CommitRequest precommitToken
+ * @property {google.spanner.v1.IRoutingHint|null} [routingHint] CommitRequest routingHint
*/
/**
@@ -84830,6 +84859,14 @@
*/
CommitRequest.prototype.precommitToken = null;
+ /**
+ * CommitRequest routingHint.
+ * @member {google.spanner.v1.IRoutingHint|null|undefined} routingHint
+ * @memberof google.spanner.v1.CommitRequest
+ * @instance
+ */
+ CommitRequest.prototype.routingHint = null;
+
// OneOf field names bound to virtual getters and setters
var $oneOfFields;
@@ -84885,6 +84922,8 @@
$root.google.protobuf.Duration.encode(message.maxCommitDelay, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();
if (message.precommitToken != null && Object.hasOwnProperty.call(message, "precommitToken"))
$root.google.spanner.v1.MultiplexedSessionPrecommitToken.encode(message.precommitToken, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();
+ if (message.routingHint != null && Object.hasOwnProperty.call(message, "routingHint"))
+ $root.google.spanner.v1.RoutingHint.encode(message.routingHint, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim();
return writer;
};
@@ -84955,6 +84994,10 @@
message.precommitToken = $root.google.spanner.v1.MultiplexedSessionPrecommitToken.decode(reader, reader.uint32());
break;
}
+ case 10: {
+ message.routingHint = $root.google.spanner.v1.RoutingHint.decode(reader, reader.uint32());
+ break;
+ }
default:
reader.skipType(tag & 7);
break;
@@ -85036,6 +85079,11 @@
if (error)
return "precommitToken." + error;
}
+ if (message.routingHint != null && message.hasOwnProperty("routingHint")) {
+ var error = $root.google.spanner.v1.RoutingHint.verify(message.routingHint);
+ if (error)
+ return "routingHint." + error;
+ }
return null;
};
@@ -85090,6 +85138,11 @@
throw TypeError(".google.spanner.v1.CommitRequest.precommitToken: object expected");
message.precommitToken = $root.google.spanner.v1.MultiplexedSessionPrecommitToken.fromObject(object.precommitToken);
}
+ if (object.routingHint != null) {
+ if (typeof object.routingHint !== "object")
+ throw TypeError(".google.spanner.v1.CommitRequest.routingHint: object expected");
+ message.routingHint = $root.google.spanner.v1.RoutingHint.fromObject(object.routingHint);
+ }
return message;
};
@@ -85114,6 +85167,7 @@
object.requestOptions = null;
object.maxCommitDelay = null;
object.precommitToken = null;
+ object.routingHint = null;
}
if (message.session != null && message.hasOwnProperty("session"))
object.session = message.session;
@@ -85140,6 +85194,8 @@
object.maxCommitDelay = $root.google.protobuf.Duration.toObject(message.maxCommitDelay, options);
if (message.precommitToken != null && message.hasOwnProperty("precommitToken"))
object.precommitToken = $root.google.spanner.v1.MultiplexedSessionPrecommitToken.toObject(message.precommitToken, options);
+ if (message.routingHint != null && message.hasOwnProperty("routingHint"))
+ object.routingHint = $root.google.spanner.v1.RoutingHint.toObject(message.routingHint, options);
return object;
};
@@ -86235,6 +86291,9 @@
* @property {google.spanner.v1.CommitResponse.ICommitStats|null} [commitStats] CommitResponse commitStats
* @property {google.spanner.v1.IMultiplexedSessionPrecommitToken|null} [precommitToken] CommitResponse precommitToken
* @property {google.protobuf.ITimestamp|null} [snapshotTimestamp] CommitResponse snapshotTimestamp
+ * @property {google.spanner.v1.ICacheUpdate|null} [cacheUpdate] CommitResponse cacheUpdate
+ * @property {google.spanner.v1.TransactionOptions.IsolationLevel|null} [isolationLevel] CommitResponse isolationLevel
+ * @property {google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode|null} [readLockMode] CommitResponse readLockMode
*/
/**
@@ -86284,6 +86343,30 @@
*/
CommitResponse.prototype.snapshotTimestamp = null;
+ /**
+ * CommitResponse cacheUpdate.
+ * @member {google.spanner.v1.ICacheUpdate|null|undefined} cacheUpdate
+ * @memberof google.spanner.v1.CommitResponse
+ * @instance
+ */
+ CommitResponse.prototype.cacheUpdate = null;
+
+ /**
+ * CommitResponse isolationLevel.
+ * @member {google.spanner.v1.TransactionOptions.IsolationLevel} isolationLevel
+ * @memberof google.spanner.v1.CommitResponse
+ * @instance
+ */
+ CommitResponse.prototype.isolationLevel = 0;
+
+ /**
+ * CommitResponse readLockMode.
+ * @member {google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode} readLockMode
+ * @memberof google.spanner.v1.CommitResponse
+ * @instance
+ */
+ CommitResponse.prototype.readLockMode = 0;
+
// OneOf field names bound to virtual getters and setters
var $oneOfFields;
@@ -86330,6 +86413,12 @@
$root.google.spanner.v1.MultiplexedSessionPrecommitToken.encode(message.precommitToken, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
if (message.snapshotTimestamp != null && Object.hasOwnProperty.call(message, "snapshotTimestamp"))
$root.google.protobuf.Timestamp.encode(message.snapshotTimestamp, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
+ if (message.cacheUpdate != null && Object.hasOwnProperty.call(message, "cacheUpdate"))
+ $root.google.spanner.v1.CacheUpdate.encode(message.cacheUpdate, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();
+ if (message.isolationLevel != null && Object.hasOwnProperty.call(message, "isolationLevel"))
+ writer.uint32(/* id 7, wireType 0 =*/56).int32(message.isolationLevel);
+ if (message.readLockMode != null && Object.hasOwnProperty.call(message, "readLockMode"))
+ writer.uint32(/* id 8, wireType 0 =*/64).int32(message.readLockMode);
return writer;
};
@@ -86382,6 +86471,18 @@
message.snapshotTimestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
break;
}
+ case 6: {
+ message.cacheUpdate = $root.google.spanner.v1.CacheUpdate.decode(reader, reader.uint32());
+ break;
+ }
+ case 7: {
+ message.isolationLevel = reader.int32();
+ break;
+ }
+ case 8: {
+ message.readLockMode = reader.int32();
+ break;
+ }
default:
reader.skipType(tag & 7);
break;
@@ -86441,6 +86542,29 @@
if (error)
return "snapshotTimestamp." + error;
}
+ if (message.cacheUpdate != null && message.hasOwnProperty("cacheUpdate")) {
+ var error = $root.google.spanner.v1.CacheUpdate.verify(message.cacheUpdate);
+ if (error)
+ return "cacheUpdate." + error;
+ }
+ if (message.isolationLevel != null && message.hasOwnProperty("isolationLevel"))
+ switch (message.isolationLevel) {
+ default:
+ return "isolationLevel: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
+ if (message.readLockMode != null && message.hasOwnProperty("readLockMode"))
+ switch (message.readLockMode) {
+ default:
+ return "readLockMode: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
return null;
};
@@ -86476,6 +86600,51 @@
throw TypeError(".google.spanner.v1.CommitResponse.snapshotTimestamp: object expected");
message.snapshotTimestamp = $root.google.protobuf.Timestamp.fromObject(object.snapshotTimestamp);
}
+ if (object.cacheUpdate != null) {
+ if (typeof object.cacheUpdate !== "object")
+ throw TypeError(".google.spanner.v1.CommitResponse.cacheUpdate: object expected");
+ message.cacheUpdate = $root.google.spanner.v1.CacheUpdate.fromObject(object.cacheUpdate);
+ }
+ switch (object.isolationLevel) {
+ default:
+ if (typeof object.isolationLevel === "number") {
+ message.isolationLevel = object.isolationLevel;
+ break;
+ }
+ break;
+ case "ISOLATION_LEVEL_UNSPECIFIED":
+ case 0:
+ message.isolationLevel = 0;
+ break;
+ case "SERIALIZABLE":
+ case 1:
+ message.isolationLevel = 1;
+ break;
+ case "REPEATABLE_READ":
+ case 2:
+ message.isolationLevel = 2;
+ break;
+ }
+ switch (object.readLockMode) {
+ default:
+ if (typeof object.readLockMode === "number") {
+ message.readLockMode = object.readLockMode;
+ break;
+ }
+ break;
+ case "READ_LOCK_MODE_UNSPECIFIED":
+ case 0:
+ message.readLockMode = 0;
+ break;
+ case "PESSIMISTIC":
+ case 1:
+ message.readLockMode = 1;
+ break;
+ case "OPTIMISTIC":
+ case 2:
+ message.readLockMode = 2;
+ break;
+ }
return message;
};
@@ -86496,6 +86665,9 @@
object.commitTimestamp = null;
object.commitStats = null;
object.snapshotTimestamp = null;
+ object.cacheUpdate = null;
+ object.isolationLevel = options.enums === String ? "ISOLATION_LEVEL_UNSPECIFIED" : 0;
+ object.readLockMode = options.enums === String ? "READ_LOCK_MODE_UNSPECIFIED" : 0;
}
if (message.commitTimestamp != null && message.hasOwnProperty("commitTimestamp"))
object.commitTimestamp = $root.google.protobuf.Timestamp.toObject(message.commitTimestamp, options);
@@ -86508,6 +86680,12 @@
}
if (message.snapshotTimestamp != null && message.hasOwnProperty("snapshotTimestamp"))
object.snapshotTimestamp = $root.google.protobuf.Timestamp.toObject(message.snapshotTimestamp, options);
+ if (message.cacheUpdate != null && message.hasOwnProperty("cacheUpdate"))
+ object.cacheUpdate = $root.google.spanner.v1.CacheUpdate.toObject(message.cacheUpdate, options);
+ if (message.isolationLevel != null && message.hasOwnProperty("isolationLevel"))
+ object.isolationLevel = options.enums === String ? $root.google.spanner.v1.TransactionOptions.IsolationLevel[message.isolationLevel] === undefined ? message.isolationLevel : $root.google.spanner.v1.TransactionOptions.IsolationLevel[message.isolationLevel] : message.isolationLevel;
+ if (message.readLockMode != null && message.hasOwnProperty("readLockMode"))
+ object.readLockMode = options.enums === String ? $root.google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode[message.readLockMode] === undefined ? message.readLockMode : $root.google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode[message.readLockMode] : message.readLockMode;
return object;
};
@@ -86759,28 +86937,28 @@
return CommitResponse;
})();
- v1.TransactionOptions = (function() {
+ v1.Range = (function() {
/**
- * Properties of a TransactionOptions.
+ * Properties of a Range.
* @memberof google.spanner.v1
- * @interface ITransactionOptions
- * @property {google.spanner.v1.TransactionOptions.IReadWrite|null} [readWrite] TransactionOptions readWrite
- * @property {google.spanner.v1.TransactionOptions.IPartitionedDml|null} [partitionedDml] TransactionOptions partitionedDml
- * @property {google.spanner.v1.TransactionOptions.IReadOnly|null} [readOnly] TransactionOptions readOnly
- * @property {boolean|null} [excludeTxnFromChangeStreams] TransactionOptions excludeTxnFromChangeStreams
- * @property {google.spanner.v1.TransactionOptions.IsolationLevel|null} [isolationLevel] TransactionOptions isolationLevel
+ * @interface IRange
+ * @property {Uint8Array|null} [startKey] Range startKey
+ * @property {Uint8Array|null} [limitKey] Range limitKey
+ * @property {number|Long|null} [groupUid] Range groupUid
+ * @property {number|Long|null} [splitId] Range splitId
+ * @property {Uint8Array|null} [generation] Range generation
*/
/**
- * Constructs a new TransactionOptions.
+ * Constructs a new Range.
* @memberof google.spanner.v1
- * @classdesc Represents a TransactionOptions.
- * @implements ITransactionOptions
+ * @classdesc Represents a Range.
+ * @implements IRange
* @constructor
- * @param {google.spanner.v1.ITransactionOptions=} [properties] Properties to set
+ * @param {google.spanner.v1.IRange=} [properties] Properties to set
*/
- function TransactionOptions(properties) {
+ function Range(properties) {
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
@@ -86788,147 +86966,133 @@
}
/**
- * TransactionOptions readWrite.
- * @member {google.spanner.v1.TransactionOptions.IReadWrite|null|undefined} readWrite
- * @memberof google.spanner.v1.TransactionOptions
- * @instance
- */
- TransactionOptions.prototype.readWrite = null;
-
- /**
- * TransactionOptions partitionedDml.
- * @member {google.spanner.v1.TransactionOptions.IPartitionedDml|null|undefined} partitionedDml
- * @memberof google.spanner.v1.TransactionOptions
+ * Range startKey.
+ * @member {Uint8Array} startKey
+ * @memberof google.spanner.v1.Range
* @instance
*/
- TransactionOptions.prototype.partitionedDml = null;
+ Range.prototype.startKey = $util.newBuffer([]);
/**
- * TransactionOptions readOnly.
- * @member {google.spanner.v1.TransactionOptions.IReadOnly|null|undefined} readOnly
- * @memberof google.spanner.v1.TransactionOptions
+ * Range limitKey.
+ * @member {Uint8Array} limitKey
+ * @memberof google.spanner.v1.Range
* @instance
*/
- TransactionOptions.prototype.readOnly = null;
+ Range.prototype.limitKey = $util.newBuffer([]);
/**
- * TransactionOptions excludeTxnFromChangeStreams.
- * @member {boolean} excludeTxnFromChangeStreams
- * @memberof google.spanner.v1.TransactionOptions
+ * Range groupUid.
+ * @member {number|Long} groupUid
+ * @memberof google.spanner.v1.Range
* @instance
*/
- TransactionOptions.prototype.excludeTxnFromChangeStreams = false;
+ Range.prototype.groupUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
/**
- * TransactionOptions isolationLevel.
- * @member {google.spanner.v1.TransactionOptions.IsolationLevel} isolationLevel
- * @memberof google.spanner.v1.TransactionOptions
+ * Range splitId.
+ * @member {number|Long} splitId
+ * @memberof google.spanner.v1.Range
* @instance
*/
- TransactionOptions.prototype.isolationLevel = 0;
-
- // OneOf field names bound to virtual getters and setters
- var $oneOfFields;
+ Range.prototype.splitId = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
/**
- * TransactionOptions mode.
- * @member {"readWrite"|"partitionedDml"|"readOnly"|undefined} mode
- * @memberof google.spanner.v1.TransactionOptions
+ * Range generation.
+ * @member {Uint8Array} generation
+ * @memberof google.spanner.v1.Range
* @instance
*/
- Object.defineProperty(TransactionOptions.prototype, "mode", {
- get: $util.oneOfGetter($oneOfFields = ["readWrite", "partitionedDml", "readOnly"]),
- set: $util.oneOfSetter($oneOfFields)
- });
+ Range.prototype.generation = $util.newBuffer([]);
/**
- * Creates a new TransactionOptions instance using the specified properties.
+ * Creates a new Range instance using the specified properties.
* @function create
- * @memberof google.spanner.v1.TransactionOptions
+ * @memberof google.spanner.v1.Range
* @static
- * @param {google.spanner.v1.ITransactionOptions=} [properties] Properties to set
- * @returns {google.spanner.v1.TransactionOptions} TransactionOptions instance
+ * @param {google.spanner.v1.IRange=} [properties] Properties to set
+ * @returns {google.spanner.v1.Range} Range instance
*/
- TransactionOptions.create = function create(properties) {
- return new TransactionOptions(properties);
+ Range.create = function create(properties) {
+ return new Range(properties);
};
/**
- * Encodes the specified TransactionOptions message. Does not implicitly {@link google.spanner.v1.TransactionOptions.verify|verify} messages.
+ * Encodes the specified Range message. Does not implicitly {@link google.spanner.v1.Range.verify|verify} messages.
* @function encode
- * @memberof google.spanner.v1.TransactionOptions
+ * @memberof google.spanner.v1.Range
* @static
- * @param {google.spanner.v1.ITransactionOptions} message TransactionOptions message or plain object to encode
+ * @param {google.spanner.v1.IRange} message Range message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- TransactionOptions.encode = function encode(message, writer) {
+ Range.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
- if (message.readWrite != null && Object.hasOwnProperty.call(message, "readWrite"))
- $root.google.spanner.v1.TransactionOptions.ReadWrite.encode(message.readWrite, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
- if (message.readOnly != null && Object.hasOwnProperty.call(message, "readOnly"))
- $root.google.spanner.v1.TransactionOptions.ReadOnly.encode(message.readOnly, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
- if (message.partitionedDml != null && Object.hasOwnProperty.call(message, "partitionedDml"))
- $root.google.spanner.v1.TransactionOptions.PartitionedDml.encode(message.partitionedDml, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
- if (message.excludeTxnFromChangeStreams != null && Object.hasOwnProperty.call(message, "excludeTxnFromChangeStreams"))
- writer.uint32(/* id 5, wireType 0 =*/40).bool(message.excludeTxnFromChangeStreams);
- if (message.isolationLevel != null && Object.hasOwnProperty.call(message, "isolationLevel"))
- writer.uint32(/* id 6, wireType 0 =*/48).int32(message.isolationLevel);
- return writer;
- };
-
- /**
- * Encodes the specified TransactionOptions message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.verify|verify} messages.
- * @function encodeDelimited
- * @memberof google.spanner.v1.TransactionOptions
- * @static
- * @param {google.spanner.v1.ITransactionOptions} message TransactionOptions message or plain object to encode
+ if (message.startKey != null && Object.hasOwnProperty.call(message, "startKey"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startKey);
+ if (message.limitKey != null && Object.hasOwnProperty.call(message, "limitKey"))
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.limitKey);
+ if (message.groupUid != null && Object.hasOwnProperty.call(message, "groupUid"))
+ writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.groupUid);
+ if (message.splitId != null && Object.hasOwnProperty.call(message, "splitId"))
+ writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.splitId);
+ if (message.generation != null && Object.hasOwnProperty.call(message, "generation"))
+ writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.generation);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Range message, length delimited. Does not implicitly {@link google.spanner.v1.Range.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.spanner.v1.Range
+ * @static
+ * @param {google.spanner.v1.IRange} message Range message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- TransactionOptions.encodeDelimited = function encodeDelimited(message, writer) {
+ Range.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
- * Decodes a TransactionOptions message from the specified reader or buffer.
+ * Decodes a Range message from the specified reader or buffer.
* @function decode
- * @memberof google.spanner.v1.TransactionOptions
+ * @memberof google.spanner.v1.Range
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.TransactionOptions} TransactionOptions
+ * @returns {google.spanner.v1.Range} Range
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- TransactionOptions.decode = function decode(reader, length, error) {
+ Range.decode = function decode(reader, length, error) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.TransactionOptions();
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.Range();
while (reader.pos < end) {
var tag = reader.uint32();
if (tag === error)
break;
switch (tag >>> 3) {
case 1: {
- message.readWrite = $root.google.spanner.v1.TransactionOptions.ReadWrite.decode(reader, reader.uint32());
+ message.startKey = reader.bytes();
break;
}
- case 3: {
- message.partitionedDml = $root.google.spanner.v1.TransactionOptions.PartitionedDml.decode(reader, reader.uint32());
+ case 2: {
+ message.limitKey = reader.bytes();
break;
}
- case 2: {
- message.readOnly = $root.google.spanner.v1.TransactionOptions.ReadOnly.decode(reader, reader.uint32());
+ case 3: {
+ message.groupUid = reader.uint64();
break;
}
- case 5: {
- message.excludeTxnFromChangeStreams = reader.bool();
+ case 4: {
+ message.splitId = reader.uint64();
break;
}
- case 6: {
- message.isolationLevel = reader.int32();
+ case 5: {
+ message.generation = reader.bytes();
break;
}
default:
@@ -86940,1180 +87104,744 @@
};
/**
- * Decodes a TransactionOptions message from the specified reader or buffer, length delimited.
+ * Decodes a Range message from the specified reader or buffer, length delimited.
* @function decodeDelimited
- * @memberof google.spanner.v1.TransactionOptions
+ * @memberof google.spanner.v1.Range
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.TransactionOptions} TransactionOptions
+ * @returns {google.spanner.v1.Range} Range
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- TransactionOptions.decodeDelimited = function decodeDelimited(reader) {
+ Range.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
- * Verifies a TransactionOptions message.
+ * Verifies a Range message.
* @function verify
- * @memberof google.spanner.v1.TransactionOptions
+ * @memberof google.spanner.v1.Range
* @static
* @param {Object.} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
- TransactionOptions.verify = function verify(message) {
+ Range.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
- var properties = {};
- if (message.readWrite != null && message.hasOwnProperty("readWrite")) {
- properties.mode = 1;
- {
- var error = $root.google.spanner.v1.TransactionOptions.ReadWrite.verify(message.readWrite);
- if (error)
- return "readWrite." + error;
- }
- }
- if (message.partitionedDml != null && message.hasOwnProperty("partitionedDml")) {
- if (properties.mode === 1)
- return "mode: multiple values";
- properties.mode = 1;
- {
- var error = $root.google.spanner.v1.TransactionOptions.PartitionedDml.verify(message.partitionedDml);
- if (error)
- return "partitionedDml." + error;
- }
- }
- if (message.readOnly != null && message.hasOwnProperty("readOnly")) {
- if (properties.mode === 1)
- return "mode: multiple values";
- properties.mode = 1;
- {
- var error = $root.google.spanner.v1.TransactionOptions.ReadOnly.verify(message.readOnly);
- if (error)
- return "readOnly." + error;
- }
- }
- if (message.excludeTxnFromChangeStreams != null && message.hasOwnProperty("excludeTxnFromChangeStreams"))
- if (typeof message.excludeTxnFromChangeStreams !== "boolean")
- return "excludeTxnFromChangeStreams: boolean expected";
- if (message.isolationLevel != null && message.hasOwnProperty("isolationLevel"))
- switch (message.isolationLevel) {
- default:
- return "isolationLevel: enum value expected";
- case 0:
- case 1:
- case 2:
- break;
- }
+ if (message.startKey != null && message.hasOwnProperty("startKey"))
+ if (!(message.startKey && typeof message.startKey.length === "number" || $util.isString(message.startKey)))
+ return "startKey: buffer expected";
+ if (message.limitKey != null && message.hasOwnProperty("limitKey"))
+ if (!(message.limitKey && typeof message.limitKey.length === "number" || $util.isString(message.limitKey)))
+ return "limitKey: buffer expected";
+ if (message.groupUid != null && message.hasOwnProperty("groupUid"))
+ if (!$util.isInteger(message.groupUid) && !(message.groupUid && $util.isInteger(message.groupUid.low) && $util.isInteger(message.groupUid.high)))
+ return "groupUid: integer|Long expected";
+ if (message.splitId != null && message.hasOwnProperty("splitId"))
+ if (!$util.isInteger(message.splitId) && !(message.splitId && $util.isInteger(message.splitId.low) && $util.isInteger(message.splitId.high)))
+ return "splitId: integer|Long expected";
+ if (message.generation != null && message.hasOwnProperty("generation"))
+ if (!(message.generation && typeof message.generation.length === "number" || $util.isString(message.generation)))
+ return "generation: buffer expected";
return null;
};
/**
- * Creates a TransactionOptions message from a plain object. Also converts values to their respective internal types.
+ * Creates a Range message from a plain object. Also converts values to their respective internal types.
* @function fromObject
- * @memberof google.spanner.v1.TransactionOptions
+ * @memberof google.spanner.v1.Range
* @static
* @param {Object.} object Plain object
- * @returns {google.spanner.v1.TransactionOptions} TransactionOptions
+ * @returns {google.spanner.v1.Range} Range
*/
- TransactionOptions.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.TransactionOptions)
+ Range.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.Range)
return object;
- var message = new $root.google.spanner.v1.TransactionOptions();
- if (object.readWrite != null) {
- if (typeof object.readWrite !== "object")
- throw TypeError(".google.spanner.v1.TransactionOptions.readWrite: object expected");
- message.readWrite = $root.google.spanner.v1.TransactionOptions.ReadWrite.fromObject(object.readWrite);
- }
- if (object.partitionedDml != null) {
- if (typeof object.partitionedDml !== "object")
- throw TypeError(".google.spanner.v1.TransactionOptions.partitionedDml: object expected");
- message.partitionedDml = $root.google.spanner.v1.TransactionOptions.PartitionedDml.fromObject(object.partitionedDml);
- }
- if (object.readOnly != null) {
- if (typeof object.readOnly !== "object")
- throw TypeError(".google.spanner.v1.TransactionOptions.readOnly: object expected");
- message.readOnly = $root.google.spanner.v1.TransactionOptions.ReadOnly.fromObject(object.readOnly);
- }
- if (object.excludeTxnFromChangeStreams != null)
- message.excludeTxnFromChangeStreams = Boolean(object.excludeTxnFromChangeStreams);
- switch (object.isolationLevel) {
- default:
- if (typeof object.isolationLevel === "number") {
- message.isolationLevel = object.isolationLevel;
- break;
- }
- break;
- case "ISOLATION_LEVEL_UNSPECIFIED":
- case 0:
- message.isolationLevel = 0;
- break;
- case "SERIALIZABLE":
- case 1:
- message.isolationLevel = 1;
- break;
- case "REPEATABLE_READ":
- case 2:
- message.isolationLevel = 2;
- break;
- }
+ var message = new $root.google.spanner.v1.Range();
+ if (object.startKey != null)
+ if (typeof object.startKey === "string")
+ $util.base64.decode(object.startKey, message.startKey = $util.newBuffer($util.base64.length(object.startKey)), 0);
+ else if (object.startKey.length >= 0)
+ message.startKey = object.startKey;
+ if (object.limitKey != null)
+ if (typeof object.limitKey === "string")
+ $util.base64.decode(object.limitKey, message.limitKey = $util.newBuffer($util.base64.length(object.limitKey)), 0);
+ else if (object.limitKey.length >= 0)
+ message.limitKey = object.limitKey;
+ if (object.groupUid != null)
+ if ($util.Long)
+ (message.groupUid = $util.Long.fromValue(object.groupUid)).unsigned = true;
+ else if (typeof object.groupUid === "string")
+ message.groupUid = parseInt(object.groupUid, 10);
+ else if (typeof object.groupUid === "number")
+ message.groupUid = object.groupUid;
+ else if (typeof object.groupUid === "object")
+ message.groupUid = new $util.LongBits(object.groupUid.low >>> 0, object.groupUid.high >>> 0).toNumber(true);
+ if (object.splitId != null)
+ if ($util.Long)
+ (message.splitId = $util.Long.fromValue(object.splitId)).unsigned = true;
+ else if (typeof object.splitId === "string")
+ message.splitId = parseInt(object.splitId, 10);
+ else if (typeof object.splitId === "number")
+ message.splitId = object.splitId;
+ else if (typeof object.splitId === "object")
+ message.splitId = new $util.LongBits(object.splitId.low >>> 0, object.splitId.high >>> 0).toNumber(true);
+ if (object.generation != null)
+ if (typeof object.generation === "string")
+ $util.base64.decode(object.generation, message.generation = $util.newBuffer($util.base64.length(object.generation)), 0);
+ else if (object.generation.length >= 0)
+ message.generation = object.generation;
return message;
};
/**
- * Creates a plain object from a TransactionOptions message. Also converts values to other types if specified.
+ * Creates a plain object from a Range message. Also converts values to other types if specified.
* @function toObject
- * @memberof google.spanner.v1.TransactionOptions
+ * @memberof google.spanner.v1.Range
* @static
- * @param {google.spanner.v1.TransactionOptions} message TransactionOptions
+ * @param {google.spanner.v1.Range} message Range
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.} Plain object
*/
- TransactionOptions.toObject = function toObject(message, options) {
+ Range.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
if (options.defaults) {
- object.excludeTxnFromChangeStreams = false;
- object.isolationLevel = options.enums === String ? "ISOLATION_LEVEL_UNSPECIFIED" : 0;
- }
- if (message.readWrite != null && message.hasOwnProperty("readWrite")) {
- object.readWrite = $root.google.spanner.v1.TransactionOptions.ReadWrite.toObject(message.readWrite, options);
- if (options.oneofs)
- object.mode = "readWrite";
- }
- if (message.readOnly != null && message.hasOwnProperty("readOnly")) {
- object.readOnly = $root.google.spanner.v1.TransactionOptions.ReadOnly.toObject(message.readOnly, options);
- if (options.oneofs)
- object.mode = "readOnly";
+ if (options.bytes === String)
+ object.startKey = "";
+ else {
+ object.startKey = [];
+ if (options.bytes !== Array)
+ object.startKey = $util.newBuffer(object.startKey);
+ }
+ if (options.bytes === String)
+ object.limitKey = "";
+ else {
+ object.limitKey = [];
+ if (options.bytes !== Array)
+ object.limitKey = $util.newBuffer(object.limitKey);
+ }
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.groupUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.groupUid = options.longs === String ? "0" : 0;
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.splitId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.splitId = options.longs === String ? "0" : 0;
+ if (options.bytes === String)
+ object.generation = "";
+ else {
+ object.generation = [];
+ if (options.bytes !== Array)
+ object.generation = $util.newBuffer(object.generation);
+ }
}
- if (message.partitionedDml != null && message.hasOwnProperty("partitionedDml")) {
- object.partitionedDml = $root.google.spanner.v1.TransactionOptions.PartitionedDml.toObject(message.partitionedDml, options);
- if (options.oneofs)
- object.mode = "partitionedDml";
- }
- if (message.excludeTxnFromChangeStreams != null && message.hasOwnProperty("excludeTxnFromChangeStreams"))
- object.excludeTxnFromChangeStreams = message.excludeTxnFromChangeStreams;
- if (message.isolationLevel != null && message.hasOwnProperty("isolationLevel"))
- object.isolationLevel = options.enums === String ? $root.google.spanner.v1.TransactionOptions.IsolationLevel[message.isolationLevel] === undefined ? message.isolationLevel : $root.google.spanner.v1.TransactionOptions.IsolationLevel[message.isolationLevel] : message.isolationLevel;
+ if (message.startKey != null && message.hasOwnProperty("startKey"))
+ object.startKey = options.bytes === String ? $util.base64.encode(message.startKey, 0, message.startKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.startKey) : message.startKey;
+ if (message.limitKey != null && message.hasOwnProperty("limitKey"))
+ object.limitKey = options.bytes === String ? $util.base64.encode(message.limitKey, 0, message.limitKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.limitKey) : message.limitKey;
+ if (message.groupUid != null && message.hasOwnProperty("groupUid"))
+ if (typeof message.groupUid === "number")
+ object.groupUid = options.longs === String ? String(message.groupUid) : message.groupUid;
+ else
+ object.groupUid = options.longs === String ? $util.Long.prototype.toString.call(message.groupUid) : options.longs === Number ? new $util.LongBits(message.groupUid.low >>> 0, message.groupUid.high >>> 0).toNumber(true) : message.groupUid;
+ if (message.splitId != null && message.hasOwnProperty("splitId"))
+ if (typeof message.splitId === "number")
+ object.splitId = options.longs === String ? String(message.splitId) : message.splitId;
+ else
+ object.splitId = options.longs === String ? $util.Long.prototype.toString.call(message.splitId) : options.longs === Number ? new $util.LongBits(message.splitId.low >>> 0, message.splitId.high >>> 0).toNumber(true) : message.splitId;
+ if (message.generation != null && message.hasOwnProperty("generation"))
+ object.generation = options.bytes === String ? $util.base64.encode(message.generation, 0, message.generation.length) : options.bytes === Array ? Array.prototype.slice.call(message.generation) : message.generation;
return object;
};
/**
- * Converts this TransactionOptions to JSON.
+ * Converts this Range to JSON.
* @function toJSON
- * @memberof google.spanner.v1.TransactionOptions
+ * @memberof google.spanner.v1.Range
* @instance
* @returns {Object.} JSON object
*/
- TransactionOptions.prototype.toJSON = function toJSON() {
+ Range.prototype.toJSON = function toJSON() {
return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};
/**
- * Gets the default type url for TransactionOptions
+ * Gets the default type url for Range
* @function getTypeUrl
- * @memberof google.spanner.v1.TransactionOptions
+ * @memberof google.spanner.v1.Range
* @static
* @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns {string} The default type url
*/
- TransactionOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ Range.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
if (typeUrlPrefix === undefined) {
typeUrlPrefix = "type.googleapis.com";
}
- return typeUrlPrefix + "/google.spanner.v1.TransactionOptions";
+ return typeUrlPrefix + "/google.spanner.v1.Range";
};
- TransactionOptions.ReadWrite = (function() {
+ return Range;
+ })();
- /**
- * Properties of a ReadWrite.
- * @memberof google.spanner.v1.TransactionOptions
- * @interface IReadWrite
- * @property {google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode|null} [readLockMode] ReadWrite readLockMode
- * @property {Uint8Array|null} [multiplexedSessionPreviousTransactionId] ReadWrite multiplexedSessionPreviousTransactionId
- */
+ v1.Tablet = (function() {
- /**
- * Constructs a new ReadWrite.
- * @memberof google.spanner.v1.TransactionOptions
- * @classdesc Represents a ReadWrite.
- * @implements IReadWrite
- * @constructor
- * @param {google.spanner.v1.TransactionOptions.IReadWrite=} [properties] Properties to set
- */
- function ReadWrite(properties) {
- if (properties)
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
- if (properties[keys[i]] != null)
- this[keys[i]] = properties[keys[i]];
- }
+ /**
+ * Properties of a Tablet.
+ * @memberof google.spanner.v1
+ * @interface ITablet
+ * @property {number|Long|null} [tabletUid] Tablet tabletUid
+ * @property {string|null} [serverAddress] Tablet serverAddress
+ * @property {string|null} [location] Tablet location
+ * @property {google.spanner.v1.Tablet.Role|null} [role] Tablet role
+ * @property {Uint8Array|null} [incarnation] Tablet incarnation
+ * @property {number|null} [distance] Tablet distance
+ * @property {boolean|null} [skip] Tablet skip
+ */
- /**
- * ReadWrite readLockMode.
- * @member {google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode} readLockMode
- * @memberof google.spanner.v1.TransactionOptions.ReadWrite
- * @instance
- */
- ReadWrite.prototype.readLockMode = 0;
+ /**
+ * Constructs a new Tablet.
+ * @memberof google.spanner.v1
+ * @classdesc Represents a Tablet.
+ * @implements ITablet
+ * @constructor
+ * @param {google.spanner.v1.ITablet=} [properties] Properties to set
+ */
+ function Tablet(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
- /**
- * ReadWrite multiplexedSessionPreviousTransactionId.
- * @member {Uint8Array} multiplexedSessionPreviousTransactionId
- * @memberof google.spanner.v1.TransactionOptions.ReadWrite
- * @instance
- */
- ReadWrite.prototype.multiplexedSessionPreviousTransactionId = $util.newBuffer([]);
+ /**
+ * Tablet tabletUid.
+ * @member {number|Long} tabletUid
+ * @memberof google.spanner.v1.Tablet
+ * @instance
+ */
+ Tablet.prototype.tabletUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
- /**
- * Creates a new ReadWrite instance using the specified properties.
- * @function create
- * @memberof google.spanner.v1.TransactionOptions.ReadWrite
- * @static
- * @param {google.spanner.v1.TransactionOptions.IReadWrite=} [properties] Properties to set
- * @returns {google.spanner.v1.TransactionOptions.ReadWrite} ReadWrite instance
- */
- ReadWrite.create = function create(properties) {
- return new ReadWrite(properties);
- };
+ /**
+ * Tablet serverAddress.
+ * @member {string} serverAddress
+ * @memberof google.spanner.v1.Tablet
+ * @instance
+ */
+ Tablet.prototype.serverAddress = "";
- /**
- * Encodes the specified ReadWrite message. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadWrite.verify|verify} messages.
- * @function encode
- * @memberof google.spanner.v1.TransactionOptions.ReadWrite
- * @static
- * @param {google.spanner.v1.TransactionOptions.IReadWrite} message ReadWrite message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- ReadWrite.encode = function encode(message, writer) {
- if (!writer)
- writer = $Writer.create();
- if (message.readLockMode != null && Object.hasOwnProperty.call(message, "readLockMode"))
- writer.uint32(/* id 1, wireType 0 =*/8).int32(message.readLockMode);
- if (message.multiplexedSessionPreviousTransactionId != null && Object.hasOwnProperty.call(message, "multiplexedSessionPreviousTransactionId"))
- writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.multiplexedSessionPreviousTransactionId);
- return writer;
- };
+ /**
+ * Tablet location.
+ * @member {string} location
+ * @memberof google.spanner.v1.Tablet
+ * @instance
+ */
+ Tablet.prototype.location = "";
- /**
- * Encodes the specified ReadWrite message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadWrite.verify|verify} messages.
- * @function encodeDelimited
- * @memberof google.spanner.v1.TransactionOptions.ReadWrite
- * @static
- * @param {google.spanner.v1.TransactionOptions.IReadWrite} message ReadWrite message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- ReadWrite.encodeDelimited = function encodeDelimited(message, writer) {
- return this.encode(message, writer).ldelim();
- };
+ /**
+ * Tablet role.
+ * @member {google.spanner.v1.Tablet.Role} role
+ * @memberof google.spanner.v1.Tablet
+ * @instance
+ */
+ Tablet.prototype.role = 0;
- /**
- * Decodes a ReadWrite message from the specified reader or buffer.
- * @function decode
- * @memberof google.spanner.v1.TransactionOptions.ReadWrite
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.TransactionOptions.ReadWrite} ReadWrite
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- ReadWrite.decode = function decode(reader, length, error) {
- if (!(reader instanceof $Reader))
- reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.TransactionOptions.ReadWrite();
- while (reader.pos < end) {
- var tag = reader.uint32();
- if (tag === error)
- break;
- switch (tag >>> 3) {
- case 1: {
- message.readLockMode = reader.int32();
- break;
- }
- case 2: {
- message.multiplexedSessionPreviousTransactionId = reader.bytes();
- break;
- }
- default:
- reader.skipType(tag & 7);
- break;
- }
- }
- return message;
- };
+ /**
+ * Tablet incarnation.
+ * @member {Uint8Array} incarnation
+ * @memberof google.spanner.v1.Tablet
+ * @instance
+ */
+ Tablet.prototype.incarnation = $util.newBuffer([]);
- /**
- * Decodes a ReadWrite message from the specified reader or buffer, length delimited.
- * @function decodeDelimited
- * @memberof google.spanner.v1.TransactionOptions.ReadWrite
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.TransactionOptions.ReadWrite} ReadWrite
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- ReadWrite.decodeDelimited = function decodeDelimited(reader) {
- if (!(reader instanceof $Reader))
- reader = new $Reader(reader);
- return this.decode(reader, reader.uint32());
- };
+ /**
+ * Tablet distance.
+ * @member {number} distance
+ * @memberof google.spanner.v1.Tablet
+ * @instance
+ */
+ Tablet.prototype.distance = 0;
- /**
- * Verifies a ReadWrite message.
- * @function verify
- * @memberof google.spanner.v1.TransactionOptions.ReadWrite
- * @static
- * @param {Object.} message Plain object to verify
- * @returns {string|null} `null` if valid, otherwise the reason why it is not
- */
- ReadWrite.verify = function verify(message) {
- if (typeof message !== "object" || message === null)
- return "object expected";
- if (message.readLockMode != null && message.hasOwnProperty("readLockMode"))
- switch (message.readLockMode) {
- default:
- return "readLockMode: enum value expected";
- case 0:
- case 1:
- case 2:
- break;
- }
- if (message.multiplexedSessionPreviousTransactionId != null && message.hasOwnProperty("multiplexedSessionPreviousTransactionId"))
- if (!(message.multiplexedSessionPreviousTransactionId && typeof message.multiplexedSessionPreviousTransactionId.length === "number" || $util.isString(message.multiplexedSessionPreviousTransactionId)))
- return "multiplexedSessionPreviousTransactionId: buffer expected";
- return null;
- };
+ /**
+ * Tablet skip.
+ * @member {boolean} skip
+ * @memberof google.spanner.v1.Tablet
+ * @instance
+ */
+ Tablet.prototype.skip = false;
- /**
- * Creates a ReadWrite message from a plain object. Also converts values to their respective internal types.
- * @function fromObject
- * @memberof google.spanner.v1.TransactionOptions.ReadWrite
- * @static
- * @param {Object.} object Plain object
- * @returns {google.spanner.v1.TransactionOptions.ReadWrite} ReadWrite
- */
- ReadWrite.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.TransactionOptions.ReadWrite)
- return object;
- var message = new $root.google.spanner.v1.TransactionOptions.ReadWrite();
- switch (object.readLockMode) {
- default:
- if (typeof object.readLockMode === "number") {
- message.readLockMode = object.readLockMode;
+ /**
+ * Creates a new Tablet instance using the specified properties.
+ * @function create
+ * @memberof google.spanner.v1.Tablet
+ * @static
+ * @param {google.spanner.v1.ITablet=} [properties] Properties to set
+ * @returns {google.spanner.v1.Tablet} Tablet instance
+ */
+ Tablet.create = function create(properties) {
+ return new Tablet(properties);
+ };
+
+ /**
+ * Encodes the specified Tablet message. Does not implicitly {@link google.spanner.v1.Tablet.verify|verify} messages.
+ * @function encode
+ * @memberof google.spanner.v1.Tablet
+ * @static
+ * @param {google.spanner.v1.ITablet} message Tablet message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Tablet.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.tabletUid != null && Object.hasOwnProperty.call(message, "tabletUid"))
+ writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.tabletUid);
+ if (message.serverAddress != null && Object.hasOwnProperty.call(message, "serverAddress"))
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.serverAddress);
+ if (message.location != null && Object.hasOwnProperty.call(message, "location"))
+ writer.uint32(/* id 3, wireType 2 =*/26).string(message.location);
+ if (message.role != null && Object.hasOwnProperty.call(message, "role"))
+ writer.uint32(/* id 4, wireType 0 =*/32).int32(message.role);
+ if (message.incarnation != null && Object.hasOwnProperty.call(message, "incarnation"))
+ writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.incarnation);
+ if (message.distance != null && Object.hasOwnProperty.call(message, "distance"))
+ writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.distance);
+ if (message.skip != null && Object.hasOwnProperty.call(message, "skip"))
+ writer.uint32(/* id 7, wireType 0 =*/56).bool(message.skip);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Tablet message, length delimited. Does not implicitly {@link google.spanner.v1.Tablet.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.spanner.v1.Tablet
+ * @static
+ * @param {google.spanner.v1.ITablet} message Tablet message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Tablet.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Tablet message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.spanner.v1.Tablet
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.spanner.v1.Tablet} Tablet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Tablet.decode = function decode(reader, length, error) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.Tablet();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ if (tag === error)
+ break;
+ switch (tag >>> 3) {
+ case 1: {
+ message.tabletUid = reader.uint64();
+ break;
+ }
+ case 2: {
+ message.serverAddress = reader.string();
+ break;
+ }
+ case 3: {
+ message.location = reader.string();
+ break;
+ }
+ case 4: {
+ message.role = reader.int32();
+ break;
+ }
+ case 5: {
+ message.incarnation = reader.bytes();
+ break;
+ }
+ case 6: {
+ message.distance = reader.uint32();
+ break;
+ }
+ case 7: {
+ message.skip = reader.bool();
break;
}
+ default:
+ reader.skipType(tag & 7);
break;
- case "READ_LOCK_MODE_UNSPECIFIED":
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Tablet message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.spanner.v1.Tablet
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.spanner.v1.Tablet} Tablet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Tablet.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Tablet message.
+ * @function verify
+ * @memberof google.spanner.v1.Tablet
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Tablet.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.tabletUid != null && message.hasOwnProperty("tabletUid"))
+ if (!$util.isInteger(message.tabletUid) && !(message.tabletUid && $util.isInteger(message.tabletUid.low) && $util.isInteger(message.tabletUid.high)))
+ return "tabletUid: integer|Long expected";
+ if (message.serverAddress != null && message.hasOwnProperty("serverAddress"))
+ if (!$util.isString(message.serverAddress))
+ return "serverAddress: string expected";
+ if (message.location != null && message.hasOwnProperty("location"))
+ if (!$util.isString(message.location))
+ return "location: string expected";
+ if (message.role != null && message.hasOwnProperty("role"))
+ switch (message.role) {
+ default:
+ return "role: enum value expected";
case 0:
- message.readLockMode = 0;
- break;
- case "PESSIMISTIC":
case 1:
- message.readLockMode = 1;
- break;
- case "OPTIMISTIC":
case 2:
- message.readLockMode = 2;
break;
}
- if (object.multiplexedSessionPreviousTransactionId != null)
- if (typeof object.multiplexedSessionPreviousTransactionId === "string")
- $util.base64.decode(object.multiplexedSessionPreviousTransactionId, message.multiplexedSessionPreviousTransactionId = $util.newBuffer($util.base64.length(object.multiplexedSessionPreviousTransactionId)), 0);
- else if (object.multiplexedSessionPreviousTransactionId.length >= 0)
- message.multiplexedSessionPreviousTransactionId = object.multiplexedSessionPreviousTransactionId;
- return message;
- };
+ if (message.incarnation != null && message.hasOwnProperty("incarnation"))
+ if (!(message.incarnation && typeof message.incarnation.length === "number" || $util.isString(message.incarnation)))
+ return "incarnation: buffer expected";
+ if (message.distance != null && message.hasOwnProperty("distance"))
+ if (!$util.isInteger(message.distance))
+ return "distance: integer expected";
+ if (message.skip != null && message.hasOwnProperty("skip"))
+ if (typeof message.skip !== "boolean")
+ return "skip: boolean expected";
+ return null;
+ };
- /**
- * Creates a plain object from a ReadWrite message. Also converts values to other types if specified.
- * @function toObject
- * @memberof google.spanner.v1.TransactionOptions.ReadWrite
- * @static
- * @param {google.spanner.v1.TransactionOptions.ReadWrite} message ReadWrite
- * @param {$protobuf.IConversionOptions} [options] Conversion options
- * @returns {Object.} Plain object
- */
- ReadWrite.toObject = function toObject(message, options) {
- if (!options)
- options = {};
- var object = {};
- if (options.defaults) {
- object.readLockMode = options.enums === String ? "READ_LOCK_MODE_UNSPECIFIED" : 0;
- if (options.bytes === String)
- object.multiplexedSessionPreviousTransactionId = "";
- else {
- object.multiplexedSessionPreviousTransactionId = [];
- if (options.bytes !== Array)
- object.multiplexedSessionPreviousTransactionId = $util.newBuffer(object.multiplexedSessionPreviousTransactionId);
- }
- }
- if (message.readLockMode != null && message.hasOwnProperty("readLockMode"))
- object.readLockMode = options.enums === String ? $root.google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode[message.readLockMode] === undefined ? message.readLockMode : $root.google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode[message.readLockMode] : message.readLockMode;
- if (message.multiplexedSessionPreviousTransactionId != null && message.hasOwnProperty("multiplexedSessionPreviousTransactionId"))
- object.multiplexedSessionPreviousTransactionId = options.bytes === String ? $util.base64.encode(message.multiplexedSessionPreviousTransactionId, 0, message.multiplexedSessionPreviousTransactionId.length) : options.bytes === Array ? Array.prototype.slice.call(message.multiplexedSessionPreviousTransactionId) : message.multiplexedSessionPreviousTransactionId;
+ /**
+ * Creates a Tablet message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.spanner.v1.Tablet
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.spanner.v1.Tablet} Tablet
+ */
+ Tablet.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.Tablet)
return object;
- };
-
- /**
- * Converts this ReadWrite to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.TransactionOptions.ReadWrite
- * @instance
- * @returns {Object.} JSON object
- */
- ReadWrite.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
- };
-
- /**
- * Gets the default type url for ReadWrite
- * @function getTypeUrl
- * @memberof google.spanner.v1.TransactionOptions.ReadWrite
- * @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
- */
- ReadWrite.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
+ var message = new $root.google.spanner.v1.Tablet();
+ if (object.tabletUid != null)
+ if ($util.Long)
+ (message.tabletUid = $util.Long.fromValue(object.tabletUid)).unsigned = true;
+ else if (typeof object.tabletUid === "string")
+ message.tabletUid = parseInt(object.tabletUid, 10);
+ else if (typeof object.tabletUid === "number")
+ message.tabletUid = object.tabletUid;
+ else if (typeof object.tabletUid === "object")
+ message.tabletUid = new $util.LongBits(object.tabletUid.low >>> 0, object.tabletUid.high >>> 0).toNumber(true);
+ if (object.serverAddress != null)
+ message.serverAddress = String(object.serverAddress);
+ if (object.location != null)
+ message.location = String(object.location);
+ switch (object.role) {
+ default:
+ if (typeof object.role === "number") {
+ message.role = object.role;
+ break;
}
- return typeUrlPrefix + "/google.spanner.v1.TransactionOptions.ReadWrite";
- };
+ break;
+ case "ROLE_UNSPECIFIED":
+ case 0:
+ message.role = 0;
+ break;
+ case "READ_WRITE":
+ case 1:
+ message.role = 1;
+ break;
+ case "READ_ONLY":
+ case 2:
+ message.role = 2;
+ break;
+ }
+ if (object.incarnation != null)
+ if (typeof object.incarnation === "string")
+ $util.base64.decode(object.incarnation, message.incarnation = $util.newBuffer($util.base64.length(object.incarnation)), 0);
+ else if (object.incarnation.length >= 0)
+ message.incarnation = object.incarnation;
+ if (object.distance != null)
+ message.distance = object.distance >>> 0;
+ if (object.skip != null)
+ message.skip = Boolean(object.skip);
+ return message;
+ };
- /**
- * ReadLockMode enum.
- * @name google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode
- * @enum {number}
- * @property {number} READ_LOCK_MODE_UNSPECIFIED=0 READ_LOCK_MODE_UNSPECIFIED value
- * @property {number} PESSIMISTIC=1 PESSIMISTIC value
- * @property {number} OPTIMISTIC=2 OPTIMISTIC value
- */
- ReadWrite.ReadLockMode = (function() {
- var valuesById = {}, values = Object.create(valuesById);
- values[valuesById[0] = "READ_LOCK_MODE_UNSPECIFIED"] = 0;
- values[valuesById[1] = "PESSIMISTIC"] = 1;
- values[valuesById[2] = "OPTIMISTIC"] = 2;
- return values;
- })();
+ /**
+ * Creates a plain object from a Tablet message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.spanner.v1.Tablet
+ * @static
+ * @param {google.spanner.v1.Tablet} message Tablet
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Tablet.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.tabletUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.tabletUid = options.longs === String ? "0" : 0;
+ object.serverAddress = "";
+ object.location = "";
+ object.role = options.enums === String ? "ROLE_UNSPECIFIED" : 0;
+ if (options.bytes === String)
+ object.incarnation = "";
+ else {
+ object.incarnation = [];
+ if (options.bytes !== Array)
+ object.incarnation = $util.newBuffer(object.incarnation);
+ }
+ object.distance = 0;
+ object.skip = false;
+ }
+ if (message.tabletUid != null && message.hasOwnProperty("tabletUid"))
+ if (typeof message.tabletUid === "number")
+ object.tabletUid = options.longs === String ? String(message.tabletUid) : message.tabletUid;
+ else
+ object.tabletUid = options.longs === String ? $util.Long.prototype.toString.call(message.tabletUid) : options.longs === Number ? new $util.LongBits(message.tabletUid.low >>> 0, message.tabletUid.high >>> 0).toNumber(true) : message.tabletUid;
+ if (message.serverAddress != null && message.hasOwnProperty("serverAddress"))
+ object.serverAddress = message.serverAddress;
+ if (message.location != null && message.hasOwnProperty("location"))
+ object.location = message.location;
+ if (message.role != null && message.hasOwnProperty("role"))
+ object.role = options.enums === String ? $root.google.spanner.v1.Tablet.Role[message.role] === undefined ? message.role : $root.google.spanner.v1.Tablet.Role[message.role] : message.role;
+ if (message.incarnation != null && message.hasOwnProperty("incarnation"))
+ object.incarnation = options.bytes === String ? $util.base64.encode(message.incarnation, 0, message.incarnation.length) : options.bytes === Array ? Array.prototype.slice.call(message.incarnation) : message.incarnation;
+ if (message.distance != null && message.hasOwnProperty("distance"))
+ object.distance = message.distance;
+ if (message.skip != null && message.hasOwnProperty("skip"))
+ object.skip = message.skip;
+ return object;
+ };
- return ReadWrite;
+ /**
+ * Converts this Tablet to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.Tablet
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Tablet.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for Tablet
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.Tablet
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Tablet.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.spanner.v1.Tablet";
+ };
+
+ /**
+ * Role enum.
+ * @name google.spanner.v1.Tablet.Role
+ * @enum {number}
+ * @property {number} ROLE_UNSPECIFIED=0 ROLE_UNSPECIFIED value
+ * @property {number} READ_WRITE=1 READ_WRITE value
+ * @property {number} READ_ONLY=2 READ_ONLY value
+ */
+ Tablet.Role = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "ROLE_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "READ_WRITE"] = 1;
+ values[valuesById[2] = "READ_ONLY"] = 2;
+ return values;
})();
- TransactionOptions.PartitionedDml = (function() {
+ return Tablet;
+ })();
- /**
- * Properties of a PartitionedDml.
- * @memberof google.spanner.v1.TransactionOptions
- * @interface IPartitionedDml
- */
+ v1.Group = (function() {
- /**
- * Constructs a new PartitionedDml.
- * @memberof google.spanner.v1.TransactionOptions
- * @classdesc Represents a PartitionedDml.
- * @implements IPartitionedDml
- * @constructor
- * @param {google.spanner.v1.TransactionOptions.IPartitionedDml=} [properties] Properties to set
- */
- function PartitionedDml(properties) {
- if (properties)
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
- if (properties[keys[i]] != null)
- this[keys[i]] = properties[keys[i]];
- }
+ /**
+ * Properties of a Group.
+ * @memberof google.spanner.v1
+ * @interface IGroup
+ * @property {number|Long|null} [groupUid] Group groupUid
+ * @property {Array.|null} [tablets] Group tablets
+ * @property {number|null} [leaderIndex] Group leaderIndex
+ * @property {Uint8Array|null} [generation] Group generation
+ */
- /**
- * Creates a new PartitionedDml instance using the specified properties.
- * @function create
- * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
- * @static
- * @param {google.spanner.v1.TransactionOptions.IPartitionedDml=} [properties] Properties to set
- * @returns {google.spanner.v1.TransactionOptions.PartitionedDml} PartitionedDml instance
- */
- PartitionedDml.create = function create(properties) {
- return new PartitionedDml(properties);
- };
+ /**
+ * Constructs a new Group.
+ * @memberof google.spanner.v1
+ * @classdesc Represents a Group.
+ * @implements IGroup
+ * @constructor
+ * @param {google.spanner.v1.IGroup=} [properties] Properties to set
+ */
+ function Group(properties) {
+ this.tablets = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
- /**
- * Encodes the specified PartitionedDml message. Does not implicitly {@link google.spanner.v1.TransactionOptions.PartitionedDml.verify|verify} messages.
- * @function encode
- * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
- * @static
- * @param {google.spanner.v1.TransactionOptions.IPartitionedDml} message PartitionedDml message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- PartitionedDml.encode = function encode(message, writer) {
- if (!writer)
- writer = $Writer.create();
- return writer;
- };
+ /**
+ * Group groupUid.
+ * @member {number|Long} groupUid
+ * @memberof google.spanner.v1.Group
+ * @instance
+ */
+ Group.prototype.groupUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
- /**
- * Encodes the specified PartitionedDml message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.PartitionedDml.verify|verify} messages.
- * @function encodeDelimited
- * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
- * @static
- * @param {google.spanner.v1.TransactionOptions.IPartitionedDml} message PartitionedDml message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- PartitionedDml.encodeDelimited = function encodeDelimited(message, writer) {
- return this.encode(message, writer).ldelim();
- };
-
- /**
- * Decodes a PartitionedDml message from the specified reader or buffer.
- * @function decode
- * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.TransactionOptions.PartitionedDml} PartitionedDml
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- PartitionedDml.decode = function decode(reader, length, error) {
- if (!(reader instanceof $Reader))
- reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.TransactionOptions.PartitionedDml();
- while (reader.pos < end) {
- var tag = reader.uint32();
- if (tag === error)
- break;
- switch (tag >>> 3) {
- default:
- reader.skipType(tag & 7);
- break;
- }
- }
- return message;
- };
-
- /**
- * Decodes a PartitionedDml message from the specified reader or buffer, length delimited.
- * @function decodeDelimited
- * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.TransactionOptions.PartitionedDml} PartitionedDml
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- PartitionedDml.decodeDelimited = function decodeDelimited(reader) {
- if (!(reader instanceof $Reader))
- reader = new $Reader(reader);
- return this.decode(reader, reader.uint32());
- };
-
- /**
- * Verifies a PartitionedDml message.
- * @function verify
- * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
- * @static
- * @param {Object.} message Plain object to verify
- * @returns {string|null} `null` if valid, otherwise the reason why it is not
- */
- PartitionedDml.verify = function verify(message) {
- if (typeof message !== "object" || message === null)
- return "object expected";
- return null;
- };
-
- /**
- * Creates a PartitionedDml message from a plain object. Also converts values to their respective internal types.
- * @function fromObject
- * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
- * @static
- * @param {Object.} object Plain object
- * @returns {google.spanner.v1.TransactionOptions.PartitionedDml} PartitionedDml
- */
- PartitionedDml.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.TransactionOptions.PartitionedDml)
- return object;
- return new $root.google.spanner.v1.TransactionOptions.PartitionedDml();
- };
-
- /**
- * Creates a plain object from a PartitionedDml message. Also converts values to other types if specified.
- * @function toObject
- * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
- * @static
- * @param {google.spanner.v1.TransactionOptions.PartitionedDml} message PartitionedDml
- * @param {$protobuf.IConversionOptions} [options] Conversion options
- * @returns {Object.} Plain object
- */
- PartitionedDml.toObject = function toObject() {
- return {};
- };
-
- /**
- * Converts this PartitionedDml to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
- * @instance
- * @returns {Object.} JSON object
- */
- PartitionedDml.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
- };
-
- /**
- * Gets the default type url for PartitionedDml
- * @function getTypeUrl
- * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
- * @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
- */
- PartitionedDml.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
- }
- return typeUrlPrefix + "/google.spanner.v1.TransactionOptions.PartitionedDml";
- };
-
- return PartitionedDml;
- })();
-
- TransactionOptions.ReadOnly = (function() {
-
- /**
- * Properties of a ReadOnly.
- * @memberof google.spanner.v1.TransactionOptions
- * @interface IReadOnly
- * @property {boolean|null} [strong] ReadOnly strong
- * @property {google.protobuf.ITimestamp|null} [minReadTimestamp] ReadOnly minReadTimestamp
- * @property {google.protobuf.IDuration|null} [maxStaleness] ReadOnly maxStaleness
- * @property {google.protobuf.ITimestamp|null} [readTimestamp] ReadOnly readTimestamp
- * @property {google.protobuf.IDuration|null} [exactStaleness] ReadOnly exactStaleness
- * @property {boolean|null} [returnReadTimestamp] ReadOnly returnReadTimestamp
- */
-
- /**
- * Constructs a new ReadOnly.
- * @memberof google.spanner.v1.TransactionOptions
- * @classdesc Represents a ReadOnly.
- * @implements IReadOnly
- * @constructor
- * @param {google.spanner.v1.TransactionOptions.IReadOnly=} [properties] Properties to set
- */
- function ReadOnly(properties) {
- if (properties)
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
- if (properties[keys[i]] != null)
- this[keys[i]] = properties[keys[i]];
- }
-
- /**
- * ReadOnly strong.
- * @member {boolean|null|undefined} strong
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @instance
- */
- ReadOnly.prototype.strong = null;
-
- /**
- * ReadOnly minReadTimestamp.
- * @member {google.protobuf.ITimestamp|null|undefined} minReadTimestamp
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @instance
- */
- ReadOnly.prototype.minReadTimestamp = null;
-
- /**
- * ReadOnly maxStaleness.
- * @member {google.protobuf.IDuration|null|undefined} maxStaleness
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @instance
- */
- ReadOnly.prototype.maxStaleness = null;
-
- /**
- * ReadOnly readTimestamp.
- * @member {google.protobuf.ITimestamp|null|undefined} readTimestamp
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @instance
- */
- ReadOnly.prototype.readTimestamp = null;
-
- /**
- * ReadOnly exactStaleness.
- * @member {google.protobuf.IDuration|null|undefined} exactStaleness
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @instance
- */
- ReadOnly.prototype.exactStaleness = null;
-
- /**
- * ReadOnly returnReadTimestamp.
- * @member {boolean} returnReadTimestamp
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @instance
- */
- ReadOnly.prototype.returnReadTimestamp = false;
-
- // OneOf field names bound to virtual getters and setters
- var $oneOfFields;
-
- /**
- * ReadOnly timestampBound.
- * @member {"strong"|"minReadTimestamp"|"maxStaleness"|"readTimestamp"|"exactStaleness"|undefined} timestampBound
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @instance
- */
- Object.defineProperty(ReadOnly.prototype, "timestampBound", {
- get: $util.oneOfGetter($oneOfFields = ["strong", "minReadTimestamp", "maxStaleness", "readTimestamp", "exactStaleness"]),
- set: $util.oneOfSetter($oneOfFields)
- });
-
- /**
- * Creates a new ReadOnly instance using the specified properties.
- * @function create
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @static
- * @param {google.spanner.v1.TransactionOptions.IReadOnly=} [properties] Properties to set
- * @returns {google.spanner.v1.TransactionOptions.ReadOnly} ReadOnly instance
- */
- ReadOnly.create = function create(properties) {
- return new ReadOnly(properties);
- };
-
- /**
- * Encodes the specified ReadOnly message. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadOnly.verify|verify} messages.
- * @function encode
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @static
- * @param {google.spanner.v1.TransactionOptions.IReadOnly} message ReadOnly message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- ReadOnly.encode = function encode(message, writer) {
- if (!writer)
- writer = $Writer.create();
- if (message.strong != null && Object.hasOwnProperty.call(message, "strong"))
- writer.uint32(/* id 1, wireType 0 =*/8).bool(message.strong);
- if (message.minReadTimestamp != null && Object.hasOwnProperty.call(message, "minReadTimestamp"))
- $root.google.protobuf.Timestamp.encode(message.minReadTimestamp, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
- if (message.maxStaleness != null && Object.hasOwnProperty.call(message, "maxStaleness"))
- $root.google.protobuf.Duration.encode(message.maxStaleness, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
- if (message.readTimestamp != null && Object.hasOwnProperty.call(message, "readTimestamp"))
- $root.google.protobuf.Timestamp.encode(message.readTimestamp, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
- if (message.exactStaleness != null && Object.hasOwnProperty.call(message, "exactStaleness"))
- $root.google.protobuf.Duration.encode(message.exactStaleness, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
- if (message.returnReadTimestamp != null && Object.hasOwnProperty.call(message, "returnReadTimestamp"))
- writer.uint32(/* id 6, wireType 0 =*/48).bool(message.returnReadTimestamp);
- return writer;
- };
-
- /**
- * Encodes the specified ReadOnly message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadOnly.verify|verify} messages.
- * @function encodeDelimited
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @static
- * @param {google.spanner.v1.TransactionOptions.IReadOnly} message ReadOnly message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- ReadOnly.encodeDelimited = function encodeDelimited(message, writer) {
- return this.encode(message, writer).ldelim();
- };
-
- /**
- * Decodes a ReadOnly message from the specified reader or buffer.
- * @function decode
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.TransactionOptions.ReadOnly} ReadOnly
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- ReadOnly.decode = function decode(reader, length, error) {
- if (!(reader instanceof $Reader))
- reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.TransactionOptions.ReadOnly();
- while (reader.pos < end) {
- var tag = reader.uint32();
- if (tag === error)
- break;
- switch (tag >>> 3) {
- case 1: {
- message.strong = reader.bool();
- break;
- }
- case 2: {
- message.minReadTimestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
- break;
- }
- case 3: {
- message.maxStaleness = $root.google.protobuf.Duration.decode(reader, reader.uint32());
- break;
- }
- case 4: {
- message.readTimestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
- break;
- }
- case 5: {
- message.exactStaleness = $root.google.protobuf.Duration.decode(reader, reader.uint32());
- break;
- }
- case 6: {
- message.returnReadTimestamp = reader.bool();
- break;
- }
- default:
- reader.skipType(tag & 7);
- break;
- }
- }
- return message;
- };
-
- /**
- * Decodes a ReadOnly message from the specified reader or buffer, length delimited.
- * @function decodeDelimited
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.TransactionOptions.ReadOnly} ReadOnly
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- ReadOnly.decodeDelimited = function decodeDelimited(reader) {
- if (!(reader instanceof $Reader))
- reader = new $Reader(reader);
- return this.decode(reader, reader.uint32());
- };
-
- /**
- * Verifies a ReadOnly message.
- * @function verify
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @static
- * @param {Object.} message Plain object to verify
- * @returns {string|null} `null` if valid, otherwise the reason why it is not
- */
- ReadOnly.verify = function verify(message) {
- if (typeof message !== "object" || message === null)
- return "object expected";
- var properties = {};
- if (message.strong != null && message.hasOwnProperty("strong")) {
- properties.timestampBound = 1;
- if (typeof message.strong !== "boolean")
- return "strong: boolean expected";
- }
- if (message.minReadTimestamp != null && message.hasOwnProperty("minReadTimestamp")) {
- if (properties.timestampBound === 1)
- return "timestampBound: multiple values";
- properties.timestampBound = 1;
- {
- var error = $root.google.protobuf.Timestamp.verify(message.minReadTimestamp);
- if (error)
- return "minReadTimestamp." + error;
- }
- }
- if (message.maxStaleness != null && message.hasOwnProperty("maxStaleness")) {
- if (properties.timestampBound === 1)
- return "timestampBound: multiple values";
- properties.timestampBound = 1;
- {
- var error = $root.google.protobuf.Duration.verify(message.maxStaleness);
- if (error)
- return "maxStaleness." + error;
- }
- }
- if (message.readTimestamp != null && message.hasOwnProperty("readTimestamp")) {
- if (properties.timestampBound === 1)
- return "timestampBound: multiple values";
- properties.timestampBound = 1;
- {
- var error = $root.google.protobuf.Timestamp.verify(message.readTimestamp);
- if (error)
- return "readTimestamp." + error;
- }
- }
- if (message.exactStaleness != null && message.hasOwnProperty("exactStaleness")) {
- if (properties.timestampBound === 1)
- return "timestampBound: multiple values";
- properties.timestampBound = 1;
- {
- var error = $root.google.protobuf.Duration.verify(message.exactStaleness);
- if (error)
- return "exactStaleness." + error;
- }
- }
- if (message.returnReadTimestamp != null && message.hasOwnProperty("returnReadTimestamp"))
- if (typeof message.returnReadTimestamp !== "boolean")
- return "returnReadTimestamp: boolean expected";
- return null;
- };
-
- /**
- * Creates a ReadOnly message from a plain object. Also converts values to their respective internal types.
- * @function fromObject
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @static
- * @param {Object.} object Plain object
- * @returns {google.spanner.v1.TransactionOptions.ReadOnly} ReadOnly
- */
- ReadOnly.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.TransactionOptions.ReadOnly)
- return object;
- var message = new $root.google.spanner.v1.TransactionOptions.ReadOnly();
- if (object.strong != null)
- message.strong = Boolean(object.strong);
- if (object.minReadTimestamp != null) {
- if (typeof object.minReadTimestamp !== "object")
- throw TypeError(".google.spanner.v1.TransactionOptions.ReadOnly.minReadTimestamp: object expected");
- message.minReadTimestamp = $root.google.protobuf.Timestamp.fromObject(object.minReadTimestamp);
- }
- if (object.maxStaleness != null) {
- if (typeof object.maxStaleness !== "object")
- throw TypeError(".google.spanner.v1.TransactionOptions.ReadOnly.maxStaleness: object expected");
- message.maxStaleness = $root.google.protobuf.Duration.fromObject(object.maxStaleness);
- }
- if (object.readTimestamp != null) {
- if (typeof object.readTimestamp !== "object")
- throw TypeError(".google.spanner.v1.TransactionOptions.ReadOnly.readTimestamp: object expected");
- message.readTimestamp = $root.google.protobuf.Timestamp.fromObject(object.readTimestamp);
- }
- if (object.exactStaleness != null) {
- if (typeof object.exactStaleness !== "object")
- throw TypeError(".google.spanner.v1.TransactionOptions.ReadOnly.exactStaleness: object expected");
- message.exactStaleness = $root.google.protobuf.Duration.fromObject(object.exactStaleness);
- }
- if (object.returnReadTimestamp != null)
- message.returnReadTimestamp = Boolean(object.returnReadTimestamp);
- return message;
- };
-
- /**
- * Creates a plain object from a ReadOnly message. Also converts values to other types if specified.
- * @function toObject
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @static
- * @param {google.spanner.v1.TransactionOptions.ReadOnly} message ReadOnly
- * @param {$protobuf.IConversionOptions} [options] Conversion options
- * @returns {Object.} Plain object
- */
- ReadOnly.toObject = function toObject(message, options) {
- if (!options)
- options = {};
- var object = {};
- if (options.defaults)
- object.returnReadTimestamp = false;
- if (message.strong != null && message.hasOwnProperty("strong")) {
- object.strong = message.strong;
- if (options.oneofs)
- object.timestampBound = "strong";
- }
- if (message.minReadTimestamp != null && message.hasOwnProperty("minReadTimestamp")) {
- object.minReadTimestamp = $root.google.protobuf.Timestamp.toObject(message.minReadTimestamp, options);
- if (options.oneofs)
- object.timestampBound = "minReadTimestamp";
- }
- if (message.maxStaleness != null && message.hasOwnProperty("maxStaleness")) {
- object.maxStaleness = $root.google.protobuf.Duration.toObject(message.maxStaleness, options);
- if (options.oneofs)
- object.timestampBound = "maxStaleness";
- }
- if (message.readTimestamp != null && message.hasOwnProperty("readTimestamp")) {
- object.readTimestamp = $root.google.protobuf.Timestamp.toObject(message.readTimestamp, options);
- if (options.oneofs)
- object.timestampBound = "readTimestamp";
- }
- if (message.exactStaleness != null && message.hasOwnProperty("exactStaleness")) {
- object.exactStaleness = $root.google.protobuf.Duration.toObject(message.exactStaleness, options);
- if (options.oneofs)
- object.timestampBound = "exactStaleness";
- }
- if (message.returnReadTimestamp != null && message.hasOwnProperty("returnReadTimestamp"))
- object.returnReadTimestamp = message.returnReadTimestamp;
- return object;
- };
-
- /**
- * Converts this ReadOnly to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @instance
- * @returns {Object.} JSON object
- */
- ReadOnly.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
- };
-
- /**
- * Gets the default type url for ReadOnly
- * @function getTypeUrl
- * @memberof google.spanner.v1.TransactionOptions.ReadOnly
- * @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
- */
- ReadOnly.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
- }
- return typeUrlPrefix + "/google.spanner.v1.TransactionOptions.ReadOnly";
- };
-
- return ReadOnly;
- })();
-
- /**
- * IsolationLevel enum.
- * @name google.spanner.v1.TransactionOptions.IsolationLevel
- * @enum {number}
- * @property {number} ISOLATION_LEVEL_UNSPECIFIED=0 ISOLATION_LEVEL_UNSPECIFIED value
- * @property {number} SERIALIZABLE=1 SERIALIZABLE value
- * @property {number} REPEATABLE_READ=2 REPEATABLE_READ value
- */
- TransactionOptions.IsolationLevel = (function() {
- var valuesById = {}, values = Object.create(valuesById);
- values[valuesById[0] = "ISOLATION_LEVEL_UNSPECIFIED"] = 0;
- values[valuesById[1] = "SERIALIZABLE"] = 1;
- values[valuesById[2] = "REPEATABLE_READ"] = 2;
- return values;
- })();
-
- return TransactionOptions;
- })();
-
- v1.Transaction = (function() {
-
- /**
- * Properties of a Transaction.
- * @memberof google.spanner.v1
- * @interface ITransaction
- * @property {Uint8Array|null} [id] Transaction id
- * @property {google.protobuf.ITimestamp|null} [readTimestamp] Transaction readTimestamp
- * @property {google.spanner.v1.IMultiplexedSessionPrecommitToken|null} [precommitToken] Transaction precommitToken
- */
-
- /**
- * Constructs a new Transaction.
- * @memberof google.spanner.v1
- * @classdesc Represents a Transaction.
- * @implements ITransaction
- * @constructor
- * @param {google.spanner.v1.ITransaction=} [properties] Properties to set
- */
- function Transaction(properties) {
- if (properties)
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
- if (properties[keys[i]] != null)
- this[keys[i]] = properties[keys[i]];
- }
-
- /**
- * Transaction id.
- * @member {Uint8Array} id
- * @memberof google.spanner.v1.Transaction
- * @instance
- */
- Transaction.prototype.id = $util.newBuffer([]);
+ /**
+ * Group tablets.
+ * @member {Array.} tablets
+ * @memberof google.spanner.v1.Group
+ * @instance
+ */
+ Group.prototype.tablets = $util.emptyArray;
/**
- * Transaction readTimestamp.
- * @member {google.protobuf.ITimestamp|null|undefined} readTimestamp
- * @memberof google.spanner.v1.Transaction
+ * Group leaderIndex.
+ * @member {number} leaderIndex
+ * @memberof google.spanner.v1.Group
* @instance
*/
- Transaction.prototype.readTimestamp = null;
+ Group.prototype.leaderIndex = 0;
/**
- * Transaction precommitToken.
- * @member {google.spanner.v1.IMultiplexedSessionPrecommitToken|null|undefined} precommitToken
- * @memberof google.spanner.v1.Transaction
+ * Group generation.
+ * @member {Uint8Array} generation
+ * @memberof google.spanner.v1.Group
* @instance
*/
- Transaction.prototype.precommitToken = null;
+ Group.prototype.generation = $util.newBuffer([]);
/**
- * Creates a new Transaction instance using the specified properties.
+ * Creates a new Group instance using the specified properties.
* @function create
- * @memberof google.spanner.v1.Transaction
+ * @memberof google.spanner.v1.Group
* @static
- * @param {google.spanner.v1.ITransaction=} [properties] Properties to set
- * @returns {google.spanner.v1.Transaction} Transaction instance
+ * @param {google.spanner.v1.IGroup=} [properties] Properties to set
+ * @returns {google.spanner.v1.Group} Group instance
*/
- Transaction.create = function create(properties) {
- return new Transaction(properties);
+ Group.create = function create(properties) {
+ return new Group(properties);
};
/**
- * Encodes the specified Transaction message. Does not implicitly {@link google.spanner.v1.Transaction.verify|verify} messages.
+ * Encodes the specified Group message. Does not implicitly {@link google.spanner.v1.Group.verify|verify} messages.
* @function encode
- * @memberof google.spanner.v1.Transaction
+ * @memberof google.spanner.v1.Group
* @static
- * @param {google.spanner.v1.ITransaction} message Transaction message or plain object to encode
+ * @param {google.spanner.v1.IGroup} message Group message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- Transaction.encode = function encode(message, writer) {
+ Group.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
- if (message.id != null && Object.hasOwnProperty.call(message, "id"))
- writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id);
- if (message.readTimestamp != null && Object.hasOwnProperty.call(message, "readTimestamp"))
- $root.google.protobuf.Timestamp.encode(message.readTimestamp, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
- if (message.precommitToken != null && Object.hasOwnProperty.call(message, "precommitToken"))
- $root.google.spanner.v1.MultiplexedSessionPrecommitToken.encode(message.precommitToken, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.groupUid != null && Object.hasOwnProperty.call(message, "groupUid"))
+ writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.groupUid);
+ if (message.tablets != null && message.tablets.length)
+ for (var i = 0; i < message.tablets.length; ++i)
+ $root.google.spanner.v1.Tablet.encode(message.tablets[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.leaderIndex != null && Object.hasOwnProperty.call(message, "leaderIndex"))
+ writer.uint32(/* id 3, wireType 0 =*/24).int32(message.leaderIndex);
+ if (message.generation != null && Object.hasOwnProperty.call(message, "generation"))
+ writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.generation);
return writer;
};
/**
- * Encodes the specified Transaction message, length delimited. Does not implicitly {@link google.spanner.v1.Transaction.verify|verify} messages.
+ * Encodes the specified Group message, length delimited. Does not implicitly {@link google.spanner.v1.Group.verify|verify} messages.
* @function encodeDelimited
- * @memberof google.spanner.v1.Transaction
+ * @memberof google.spanner.v1.Group
* @static
- * @param {google.spanner.v1.ITransaction} message Transaction message or plain object to encode
+ * @param {google.spanner.v1.IGroup} message Group message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- Transaction.encodeDelimited = function encodeDelimited(message, writer) {
+ Group.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
- * Decodes a Transaction message from the specified reader or buffer.
+ * Decodes a Group message from the specified reader or buffer.
* @function decode
- * @memberof google.spanner.v1.Transaction
+ * @memberof google.spanner.v1.Group
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.Transaction} Transaction
+ * @returns {google.spanner.v1.Group} Group
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- Transaction.decode = function decode(reader, length, error) {
+ Group.decode = function decode(reader, length, error) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.Transaction();
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.Group();
while (reader.pos < end) {
var tag = reader.uint32();
if (tag === error)
break;
switch (tag >>> 3) {
case 1: {
- message.id = reader.bytes();
+ message.groupUid = reader.uint64();
break;
}
case 2: {
- message.readTimestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
+ if (!(message.tablets && message.tablets.length))
+ message.tablets = [];
+ message.tablets.push($root.google.spanner.v1.Tablet.decode(reader, reader.uint32()));
break;
}
case 3: {
- message.precommitToken = $root.google.spanner.v1.MultiplexedSessionPrecommitToken.decode(reader, reader.uint32());
+ message.leaderIndex = reader.int32();
+ break;
+ }
+ case 4: {
+ message.generation = reader.bytes();
break;
}
default:
@@ -88125,160 +87853,192 @@
};
/**
- * Decodes a Transaction message from the specified reader or buffer, length delimited.
+ * Decodes a Group message from the specified reader or buffer, length delimited.
* @function decodeDelimited
- * @memberof google.spanner.v1.Transaction
+ * @memberof google.spanner.v1.Group
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.Transaction} Transaction
+ * @returns {google.spanner.v1.Group} Group
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- Transaction.decodeDelimited = function decodeDelimited(reader) {
+ Group.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
- * Verifies a Transaction message.
+ * Verifies a Group message.
* @function verify
- * @memberof google.spanner.v1.Transaction
+ * @memberof google.spanner.v1.Group
* @static
* @param {Object.} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
- Transaction.verify = function verify(message) {
+ Group.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
- if (message.id != null && message.hasOwnProperty("id"))
- if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id)))
- return "id: buffer expected";
- if (message.readTimestamp != null && message.hasOwnProperty("readTimestamp")) {
- var error = $root.google.protobuf.Timestamp.verify(message.readTimestamp);
- if (error)
- return "readTimestamp." + error;
- }
- if (message.precommitToken != null && message.hasOwnProperty("precommitToken")) {
- var error = $root.google.spanner.v1.MultiplexedSessionPrecommitToken.verify(message.precommitToken);
- if (error)
- return "precommitToken." + error;
+ if (message.groupUid != null && message.hasOwnProperty("groupUid"))
+ if (!$util.isInteger(message.groupUid) && !(message.groupUid && $util.isInteger(message.groupUid.low) && $util.isInteger(message.groupUid.high)))
+ return "groupUid: integer|Long expected";
+ if (message.tablets != null && message.hasOwnProperty("tablets")) {
+ if (!Array.isArray(message.tablets))
+ return "tablets: array expected";
+ for (var i = 0; i < message.tablets.length; ++i) {
+ var error = $root.google.spanner.v1.Tablet.verify(message.tablets[i]);
+ if (error)
+ return "tablets." + error;
+ }
}
+ if (message.leaderIndex != null && message.hasOwnProperty("leaderIndex"))
+ if (!$util.isInteger(message.leaderIndex))
+ return "leaderIndex: integer expected";
+ if (message.generation != null && message.hasOwnProperty("generation"))
+ if (!(message.generation && typeof message.generation.length === "number" || $util.isString(message.generation)))
+ return "generation: buffer expected";
return null;
};
/**
- * Creates a Transaction message from a plain object. Also converts values to their respective internal types.
+ * Creates a Group message from a plain object. Also converts values to their respective internal types.
* @function fromObject
- * @memberof google.spanner.v1.Transaction
+ * @memberof google.spanner.v1.Group
* @static
* @param {Object.} object Plain object
- * @returns {google.spanner.v1.Transaction} Transaction
+ * @returns {google.spanner.v1.Group} Group
*/
- Transaction.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.Transaction)
+ Group.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.Group)
return object;
- var message = new $root.google.spanner.v1.Transaction();
- if (object.id != null)
- if (typeof object.id === "string")
- $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0);
- else if (object.id.length >= 0)
- message.id = object.id;
- if (object.readTimestamp != null) {
- if (typeof object.readTimestamp !== "object")
- throw TypeError(".google.spanner.v1.Transaction.readTimestamp: object expected");
- message.readTimestamp = $root.google.protobuf.Timestamp.fromObject(object.readTimestamp);
- }
- if (object.precommitToken != null) {
- if (typeof object.precommitToken !== "object")
- throw TypeError(".google.spanner.v1.Transaction.precommitToken: object expected");
- message.precommitToken = $root.google.spanner.v1.MultiplexedSessionPrecommitToken.fromObject(object.precommitToken);
+ var message = new $root.google.spanner.v1.Group();
+ if (object.groupUid != null)
+ if ($util.Long)
+ (message.groupUid = $util.Long.fromValue(object.groupUid)).unsigned = true;
+ else if (typeof object.groupUid === "string")
+ message.groupUid = parseInt(object.groupUid, 10);
+ else if (typeof object.groupUid === "number")
+ message.groupUid = object.groupUid;
+ else if (typeof object.groupUid === "object")
+ message.groupUid = new $util.LongBits(object.groupUid.low >>> 0, object.groupUid.high >>> 0).toNumber(true);
+ if (object.tablets) {
+ if (!Array.isArray(object.tablets))
+ throw TypeError(".google.spanner.v1.Group.tablets: array expected");
+ message.tablets = [];
+ for (var i = 0; i < object.tablets.length; ++i) {
+ if (typeof object.tablets[i] !== "object")
+ throw TypeError(".google.spanner.v1.Group.tablets: object expected");
+ message.tablets[i] = $root.google.spanner.v1.Tablet.fromObject(object.tablets[i]);
+ }
}
+ if (object.leaderIndex != null)
+ message.leaderIndex = object.leaderIndex | 0;
+ if (object.generation != null)
+ if (typeof object.generation === "string")
+ $util.base64.decode(object.generation, message.generation = $util.newBuffer($util.base64.length(object.generation)), 0);
+ else if (object.generation.length >= 0)
+ message.generation = object.generation;
return message;
};
/**
- * Creates a plain object from a Transaction message. Also converts values to other types if specified.
+ * Creates a plain object from a Group message. Also converts values to other types if specified.
* @function toObject
- * @memberof google.spanner.v1.Transaction
+ * @memberof google.spanner.v1.Group
* @static
- * @param {google.spanner.v1.Transaction} message Transaction
+ * @param {google.spanner.v1.Group} message Group
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.} Plain object
*/
- Transaction.toObject = function toObject(message, options) {
+ Group.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
+ if (options.arrays || options.defaults)
+ object.tablets = [];
if (options.defaults) {
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.groupUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.groupUid = options.longs === String ? "0" : 0;
+ object.leaderIndex = 0;
if (options.bytes === String)
- object.id = "";
+ object.generation = "";
else {
- object.id = [];
+ object.generation = [];
if (options.bytes !== Array)
- object.id = $util.newBuffer(object.id);
+ object.generation = $util.newBuffer(object.generation);
}
- object.readTimestamp = null;
- object.precommitToken = null;
}
- if (message.id != null && message.hasOwnProperty("id"))
- object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id;
- if (message.readTimestamp != null && message.hasOwnProperty("readTimestamp"))
- object.readTimestamp = $root.google.protobuf.Timestamp.toObject(message.readTimestamp, options);
- if (message.precommitToken != null && message.hasOwnProperty("precommitToken"))
- object.precommitToken = $root.google.spanner.v1.MultiplexedSessionPrecommitToken.toObject(message.precommitToken, options);
+ if (message.groupUid != null && message.hasOwnProperty("groupUid"))
+ if (typeof message.groupUid === "number")
+ object.groupUid = options.longs === String ? String(message.groupUid) : message.groupUid;
+ else
+ object.groupUid = options.longs === String ? $util.Long.prototype.toString.call(message.groupUid) : options.longs === Number ? new $util.LongBits(message.groupUid.low >>> 0, message.groupUid.high >>> 0).toNumber(true) : message.groupUid;
+ if (message.tablets && message.tablets.length) {
+ object.tablets = [];
+ for (var j = 0; j < message.tablets.length; ++j)
+ object.tablets[j] = $root.google.spanner.v1.Tablet.toObject(message.tablets[j], options);
+ }
+ if (message.leaderIndex != null && message.hasOwnProperty("leaderIndex"))
+ object.leaderIndex = message.leaderIndex;
+ if (message.generation != null && message.hasOwnProperty("generation"))
+ object.generation = options.bytes === String ? $util.base64.encode(message.generation, 0, message.generation.length) : options.bytes === Array ? Array.prototype.slice.call(message.generation) : message.generation;
return object;
};
/**
- * Converts this Transaction to JSON.
+ * Converts this Group to JSON.
* @function toJSON
- * @memberof google.spanner.v1.Transaction
+ * @memberof google.spanner.v1.Group
* @instance
* @returns {Object.} JSON object
*/
- Transaction.prototype.toJSON = function toJSON() {
+ Group.prototype.toJSON = function toJSON() {
return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};
/**
- * Gets the default type url for Transaction
+ * Gets the default type url for Group
* @function getTypeUrl
- * @memberof google.spanner.v1.Transaction
+ * @memberof google.spanner.v1.Group
* @static
* @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns {string} The default type url
*/
- Transaction.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ Group.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
if (typeUrlPrefix === undefined) {
typeUrlPrefix = "type.googleapis.com";
}
- return typeUrlPrefix + "/google.spanner.v1.Transaction";
+ return typeUrlPrefix + "/google.spanner.v1.Group";
};
- return Transaction;
+ return Group;
})();
- v1.TransactionSelector = (function() {
+ v1.KeyRecipe = (function() {
/**
- * Properties of a TransactionSelector.
+ * Properties of a KeyRecipe.
* @memberof google.spanner.v1
- * @interface ITransactionSelector
- * @property {google.spanner.v1.ITransactionOptions|null} [singleUse] TransactionSelector singleUse
- * @property {Uint8Array|null} [id] TransactionSelector id
- * @property {google.spanner.v1.ITransactionOptions|null} [begin] TransactionSelector begin
+ * @interface IKeyRecipe
+ * @property {string|null} [tableName] KeyRecipe tableName
+ * @property {string|null} [indexName] KeyRecipe indexName
+ * @property {number|Long|null} [operationUid] KeyRecipe operationUid
+ * @property {Array.|null} [part] KeyRecipe part
*/
/**
- * Constructs a new TransactionSelector.
+ * Constructs a new KeyRecipe.
* @memberof google.spanner.v1
- * @classdesc Represents a TransactionSelector.
- * @implements ITransactionSelector
+ * @classdesc Represents a KeyRecipe.
+ * @implements IKeyRecipe
* @constructor
- * @param {google.spanner.v1.ITransactionSelector=} [properties] Properties to set
+ * @param {google.spanner.v1.IKeyRecipe=} [properties] Properties to set
*/
- function TransactionSelector(properties) {
+ function KeyRecipe(properties) {
+ this.part = [];
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
@@ -88286,119 +88046,136 @@
}
/**
- * TransactionSelector singleUse.
- * @member {google.spanner.v1.ITransactionOptions|null|undefined} singleUse
- * @memberof google.spanner.v1.TransactionSelector
+ * KeyRecipe tableName.
+ * @member {string|null|undefined} tableName
+ * @memberof google.spanner.v1.KeyRecipe
* @instance
*/
- TransactionSelector.prototype.singleUse = null;
+ KeyRecipe.prototype.tableName = null;
/**
- * TransactionSelector id.
- * @member {Uint8Array|null|undefined} id
- * @memberof google.spanner.v1.TransactionSelector
+ * KeyRecipe indexName.
+ * @member {string|null|undefined} indexName
+ * @memberof google.spanner.v1.KeyRecipe
* @instance
*/
- TransactionSelector.prototype.id = null;
+ KeyRecipe.prototype.indexName = null;
/**
- * TransactionSelector begin.
- * @member {google.spanner.v1.ITransactionOptions|null|undefined} begin
- * @memberof google.spanner.v1.TransactionSelector
+ * KeyRecipe operationUid.
+ * @member {number|Long|null|undefined} operationUid
+ * @memberof google.spanner.v1.KeyRecipe
* @instance
*/
- TransactionSelector.prototype.begin = null;
+ KeyRecipe.prototype.operationUid = null;
+
+ /**
+ * KeyRecipe part.
+ * @member {Array.} part
+ * @memberof google.spanner.v1.KeyRecipe
+ * @instance
+ */
+ KeyRecipe.prototype.part = $util.emptyArray;
// OneOf field names bound to virtual getters and setters
var $oneOfFields;
/**
- * TransactionSelector selector.
- * @member {"singleUse"|"id"|"begin"|undefined} selector
- * @memberof google.spanner.v1.TransactionSelector
+ * KeyRecipe target.
+ * @member {"tableName"|"indexName"|"operationUid"|undefined} target
+ * @memberof google.spanner.v1.KeyRecipe
* @instance
*/
- Object.defineProperty(TransactionSelector.prototype, "selector", {
- get: $util.oneOfGetter($oneOfFields = ["singleUse", "id", "begin"]),
+ Object.defineProperty(KeyRecipe.prototype, "target", {
+ get: $util.oneOfGetter($oneOfFields = ["tableName", "indexName", "operationUid"]),
set: $util.oneOfSetter($oneOfFields)
});
/**
- * Creates a new TransactionSelector instance using the specified properties.
+ * Creates a new KeyRecipe instance using the specified properties.
* @function create
- * @memberof google.spanner.v1.TransactionSelector
- * @static
- * @param {google.spanner.v1.ITransactionSelector=} [properties] Properties to set
- * @returns {google.spanner.v1.TransactionSelector} TransactionSelector instance
+ * @memberof google.spanner.v1.KeyRecipe
+ * @static
+ * @param {google.spanner.v1.IKeyRecipe=} [properties] Properties to set
+ * @returns {google.spanner.v1.KeyRecipe} KeyRecipe instance
*/
- TransactionSelector.create = function create(properties) {
- return new TransactionSelector(properties);
+ KeyRecipe.create = function create(properties) {
+ return new KeyRecipe(properties);
};
/**
- * Encodes the specified TransactionSelector message. Does not implicitly {@link google.spanner.v1.TransactionSelector.verify|verify} messages.
+ * Encodes the specified KeyRecipe message. Does not implicitly {@link google.spanner.v1.KeyRecipe.verify|verify} messages.
* @function encode
- * @memberof google.spanner.v1.TransactionSelector
+ * @memberof google.spanner.v1.KeyRecipe
* @static
- * @param {google.spanner.v1.ITransactionSelector} message TransactionSelector message or plain object to encode
+ * @param {google.spanner.v1.IKeyRecipe} message KeyRecipe message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- TransactionSelector.encode = function encode(message, writer) {
+ KeyRecipe.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
- if (message.singleUse != null && Object.hasOwnProperty.call(message, "singleUse"))
- $root.google.spanner.v1.TransactionOptions.encode(message.singleUse, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
- if (message.id != null && Object.hasOwnProperty.call(message, "id"))
- writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.id);
- if (message.begin != null && Object.hasOwnProperty.call(message, "begin"))
- $root.google.spanner.v1.TransactionOptions.encode(message.begin, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.tableName != null && Object.hasOwnProperty.call(message, "tableName"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.tableName);
+ if (message.indexName != null && Object.hasOwnProperty.call(message, "indexName"))
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.indexName);
+ if (message.operationUid != null && Object.hasOwnProperty.call(message, "operationUid"))
+ writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.operationUid);
+ if (message.part != null && message.part.length)
+ for (var i = 0; i < message.part.length; ++i)
+ $root.google.spanner.v1.KeyRecipe.Part.encode(message.part[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
return writer;
};
/**
- * Encodes the specified TransactionSelector message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionSelector.verify|verify} messages.
+ * Encodes the specified KeyRecipe message, length delimited. Does not implicitly {@link google.spanner.v1.KeyRecipe.verify|verify} messages.
* @function encodeDelimited
- * @memberof google.spanner.v1.TransactionSelector
+ * @memberof google.spanner.v1.KeyRecipe
* @static
- * @param {google.spanner.v1.ITransactionSelector} message TransactionSelector message or plain object to encode
+ * @param {google.spanner.v1.IKeyRecipe} message KeyRecipe message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- TransactionSelector.encodeDelimited = function encodeDelimited(message, writer) {
+ KeyRecipe.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
- * Decodes a TransactionSelector message from the specified reader or buffer.
+ * Decodes a KeyRecipe message from the specified reader or buffer.
* @function decode
- * @memberof google.spanner.v1.TransactionSelector
+ * @memberof google.spanner.v1.KeyRecipe
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.TransactionSelector} TransactionSelector
+ * @returns {google.spanner.v1.KeyRecipe} KeyRecipe
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- TransactionSelector.decode = function decode(reader, length, error) {
+ KeyRecipe.decode = function decode(reader, length, error) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.TransactionSelector();
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.KeyRecipe();
while (reader.pos < end) {
var tag = reader.uint32();
if (tag === error)
break;
switch (tag >>> 3) {
case 1: {
- message.singleUse = $root.google.spanner.v1.TransactionOptions.decode(reader, reader.uint32());
+ message.tableName = reader.string();
break;
}
case 2: {
- message.id = reader.bytes();
+ message.indexName = reader.string();
break;
}
case 3: {
- message.begin = $root.google.spanner.v1.TransactionOptions.decode(reader, reader.uint32());
+ message.operationUid = reader.uint64();
+ break;
+ }
+ case 4: {
+ if (!(message.part && message.part.length))
+ message.part = [];
+ message.part.push($root.google.spanner.v1.KeyRecipe.Part.decode(reader, reader.uint32()));
break;
}
default:
@@ -88410,555 +88187,808 @@
};
/**
- * Decodes a TransactionSelector message from the specified reader or buffer, length delimited.
+ * Decodes a KeyRecipe message from the specified reader or buffer, length delimited.
* @function decodeDelimited
- * @memberof google.spanner.v1.TransactionSelector
+ * @memberof google.spanner.v1.KeyRecipe
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.TransactionSelector} TransactionSelector
+ * @returns {google.spanner.v1.KeyRecipe} KeyRecipe
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- TransactionSelector.decodeDelimited = function decodeDelimited(reader) {
+ KeyRecipe.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
- * Verifies a TransactionSelector message.
+ * Verifies a KeyRecipe message.
* @function verify
- * @memberof google.spanner.v1.TransactionSelector
+ * @memberof google.spanner.v1.KeyRecipe
* @static
* @param {Object.} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
- TransactionSelector.verify = function verify(message) {
+ KeyRecipe.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
var properties = {};
- if (message.singleUse != null && message.hasOwnProperty("singleUse")) {
- properties.selector = 1;
- {
- var error = $root.google.spanner.v1.TransactionOptions.verify(message.singleUse);
- if (error)
- return "singleUse." + error;
- }
+ if (message.tableName != null && message.hasOwnProperty("tableName")) {
+ properties.target = 1;
+ if (!$util.isString(message.tableName))
+ return "tableName: string expected";
}
- if (message.id != null && message.hasOwnProperty("id")) {
- if (properties.selector === 1)
- return "selector: multiple values";
- properties.selector = 1;
- if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id)))
- return "id: buffer expected";
+ if (message.indexName != null && message.hasOwnProperty("indexName")) {
+ if (properties.target === 1)
+ return "target: multiple values";
+ properties.target = 1;
+ if (!$util.isString(message.indexName))
+ return "indexName: string expected";
}
- if (message.begin != null && message.hasOwnProperty("begin")) {
- if (properties.selector === 1)
- return "selector: multiple values";
- properties.selector = 1;
- {
- var error = $root.google.spanner.v1.TransactionOptions.verify(message.begin);
+ if (message.operationUid != null && message.hasOwnProperty("operationUid")) {
+ if (properties.target === 1)
+ return "target: multiple values";
+ properties.target = 1;
+ if (!$util.isInteger(message.operationUid) && !(message.operationUid && $util.isInteger(message.operationUid.low) && $util.isInteger(message.operationUid.high)))
+ return "operationUid: integer|Long expected";
+ }
+ if (message.part != null && message.hasOwnProperty("part")) {
+ if (!Array.isArray(message.part))
+ return "part: array expected";
+ for (var i = 0; i < message.part.length; ++i) {
+ var error = $root.google.spanner.v1.KeyRecipe.Part.verify(message.part[i]);
if (error)
- return "begin." + error;
+ return "part." + error;
}
}
return null;
};
/**
- * Creates a TransactionSelector message from a plain object. Also converts values to their respective internal types.
+ * Creates a KeyRecipe message from a plain object. Also converts values to their respective internal types.
* @function fromObject
- * @memberof google.spanner.v1.TransactionSelector
+ * @memberof google.spanner.v1.KeyRecipe
* @static
* @param {Object.} object Plain object
- * @returns {google.spanner.v1.TransactionSelector} TransactionSelector
+ * @returns {google.spanner.v1.KeyRecipe} KeyRecipe
*/
- TransactionSelector.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.TransactionSelector)
+ KeyRecipe.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.KeyRecipe)
return object;
- var message = new $root.google.spanner.v1.TransactionSelector();
- if (object.singleUse != null) {
- if (typeof object.singleUse !== "object")
- throw TypeError(".google.spanner.v1.TransactionSelector.singleUse: object expected");
- message.singleUse = $root.google.spanner.v1.TransactionOptions.fromObject(object.singleUse);
- }
- if (object.id != null)
- if (typeof object.id === "string")
- $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0);
- else if (object.id.length >= 0)
- message.id = object.id;
- if (object.begin != null) {
- if (typeof object.begin !== "object")
- throw TypeError(".google.spanner.v1.TransactionSelector.begin: object expected");
- message.begin = $root.google.spanner.v1.TransactionOptions.fromObject(object.begin);
+ var message = new $root.google.spanner.v1.KeyRecipe();
+ if (object.tableName != null)
+ message.tableName = String(object.tableName);
+ if (object.indexName != null)
+ message.indexName = String(object.indexName);
+ if (object.operationUid != null)
+ if ($util.Long)
+ (message.operationUid = $util.Long.fromValue(object.operationUid)).unsigned = true;
+ else if (typeof object.operationUid === "string")
+ message.operationUid = parseInt(object.operationUid, 10);
+ else if (typeof object.operationUid === "number")
+ message.operationUid = object.operationUid;
+ else if (typeof object.operationUid === "object")
+ message.operationUid = new $util.LongBits(object.operationUid.low >>> 0, object.operationUid.high >>> 0).toNumber(true);
+ if (object.part) {
+ if (!Array.isArray(object.part))
+ throw TypeError(".google.spanner.v1.KeyRecipe.part: array expected");
+ message.part = [];
+ for (var i = 0; i < object.part.length; ++i) {
+ if (typeof object.part[i] !== "object")
+ throw TypeError(".google.spanner.v1.KeyRecipe.part: object expected");
+ message.part[i] = $root.google.spanner.v1.KeyRecipe.Part.fromObject(object.part[i]);
+ }
}
return message;
};
/**
- * Creates a plain object from a TransactionSelector message. Also converts values to other types if specified.
+ * Creates a plain object from a KeyRecipe message. Also converts values to other types if specified.
* @function toObject
- * @memberof google.spanner.v1.TransactionSelector
+ * @memberof google.spanner.v1.KeyRecipe
* @static
- * @param {google.spanner.v1.TransactionSelector} message TransactionSelector
+ * @param {google.spanner.v1.KeyRecipe} message KeyRecipe
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.} Plain object
*/
- TransactionSelector.toObject = function toObject(message, options) {
+ KeyRecipe.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
- if (message.singleUse != null && message.hasOwnProperty("singleUse")) {
- object.singleUse = $root.google.spanner.v1.TransactionOptions.toObject(message.singleUse, options);
+ if (options.arrays || options.defaults)
+ object.part = [];
+ if (message.tableName != null && message.hasOwnProperty("tableName")) {
+ object.tableName = message.tableName;
if (options.oneofs)
- object.selector = "singleUse";
+ object.target = "tableName";
}
- if (message.id != null && message.hasOwnProperty("id")) {
- object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id;
+ if (message.indexName != null && message.hasOwnProperty("indexName")) {
+ object.indexName = message.indexName;
if (options.oneofs)
- object.selector = "id";
+ object.target = "indexName";
}
- if (message.begin != null && message.hasOwnProperty("begin")) {
- object.begin = $root.google.spanner.v1.TransactionOptions.toObject(message.begin, options);
+ if (message.operationUid != null && message.hasOwnProperty("operationUid")) {
+ if (typeof message.operationUid === "number")
+ object.operationUid = options.longs === String ? String(message.operationUid) : message.operationUid;
+ else
+ object.operationUid = options.longs === String ? $util.Long.prototype.toString.call(message.operationUid) : options.longs === Number ? new $util.LongBits(message.operationUid.low >>> 0, message.operationUid.high >>> 0).toNumber(true) : message.operationUid;
if (options.oneofs)
- object.selector = "begin";
+ object.target = "operationUid";
+ }
+ if (message.part && message.part.length) {
+ object.part = [];
+ for (var j = 0; j < message.part.length; ++j)
+ object.part[j] = $root.google.spanner.v1.KeyRecipe.Part.toObject(message.part[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this KeyRecipe to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.KeyRecipe
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ KeyRecipe.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for KeyRecipe
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.KeyRecipe
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ KeyRecipe.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.spanner.v1.KeyRecipe";
+ };
+
+ KeyRecipe.Part = (function() {
+
+ /**
+ * Properties of a Part.
+ * @memberof google.spanner.v1.KeyRecipe
+ * @interface IPart
+ * @property {number|null} [tag] Part tag
+ * @property {google.spanner.v1.KeyRecipe.Part.Order|null} [order] Part order
+ * @property {google.spanner.v1.KeyRecipe.Part.NullOrder|null} [nullOrder] Part nullOrder
+ * @property {google.spanner.v1.IType|null} [type] Part type
+ * @property {string|null} [identifier] Part identifier
+ * @property {google.protobuf.IValue|null} [value] Part value
+ * @property {boolean|null} [random] Part random
+ * @property {Array.|null} [structIdentifiers] Part structIdentifiers
+ */
+
+ /**
+ * Constructs a new Part.
+ * @memberof google.spanner.v1.KeyRecipe
+ * @classdesc Represents a Part.
+ * @implements IPart
+ * @constructor
+ * @param {google.spanner.v1.KeyRecipe.IPart=} [properties] Properties to set
+ */
+ function Part(properties) {
+ this.structIdentifiers = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
}
- return object;
- };
- /**
- * Converts this TransactionSelector to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.TransactionSelector
- * @instance
- * @returns {Object.} JSON object
- */
- TransactionSelector.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
- };
+ /**
+ * Part tag.
+ * @member {number} tag
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @instance
+ */
+ Part.prototype.tag = 0;
- /**
- * Gets the default type url for TransactionSelector
- * @function getTypeUrl
- * @memberof google.spanner.v1.TransactionSelector
- * @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
- */
- TransactionSelector.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
- }
- return typeUrlPrefix + "/google.spanner.v1.TransactionSelector";
- };
+ /**
+ * Part order.
+ * @member {google.spanner.v1.KeyRecipe.Part.Order} order
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @instance
+ */
+ Part.prototype.order = 0;
- return TransactionSelector;
- })();
+ /**
+ * Part nullOrder.
+ * @member {google.spanner.v1.KeyRecipe.Part.NullOrder} nullOrder
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @instance
+ */
+ Part.prototype.nullOrder = 0;
- v1.MultiplexedSessionPrecommitToken = (function() {
+ /**
+ * Part type.
+ * @member {google.spanner.v1.IType|null|undefined} type
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @instance
+ */
+ Part.prototype.type = null;
- /**
- * Properties of a MultiplexedSessionPrecommitToken.
- * @memberof google.spanner.v1
- * @interface IMultiplexedSessionPrecommitToken
- * @property {Uint8Array|null} [precommitToken] MultiplexedSessionPrecommitToken precommitToken
- * @property {number|null} [seqNum] MultiplexedSessionPrecommitToken seqNum
- */
+ /**
+ * Part identifier.
+ * @member {string|null|undefined} identifier
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @instance
+ */
+ Part.prototype.identifier = null;
- /**
- * Constructs a new MultiplexedSessionPrecommitToken.
- * @memberof google.spanner.v1
- * @classdesc Represents a MultiplexedSessionPrecommitToken.
- * @implements IMultiplexedSessionPrecommitToken
- * @constructor
- * @param {google.spanner.v1.IMultiplexedSessionPrecommitToken=} [properties] Properties to set
- */
- function MultiplexedSessionPrecommitToken(properties) {
- if (properties)
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
- if (properties[keys[i]] != null)
- this[keys[i]] = properties[keys[i]];
- }
+ /**
+ * Part value.
+ * @member {google.protobuf.IValue|null|undefined} value
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @instance
+ */
+ Part.prototype.value = null;
- /**
- * MultiplexedSessionPrecommitToken precommitToken.
- * @member {Uint8Array} precommitToken
- * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
- * @instance
- */
- MultiplexedSessionPrecommitToken.prototype.precommitToken = $util.newBuffer([]);
+ /**
+ * Part random.
+ * @member {boolean|null|undefined} random
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @instance
+ */
+ Part.prototype.random = null;
- /**
- * MultiplexedSessionPrecommitToken seqNum.
- * @member {number} seqNum
- * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
- * @instance
- */
- MultiplexedSessionPrecommitToken.prototype.seqNum = 0;
+ /**
+ * Part structIdentifiers.
+ * @member {Array.} structIdentifiers
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @instance
+ */
+ Part.prototype.structIdentifiers = $util.emptyArray;
- /**
- * Creates a new MultiplexedSessionPrecommitToken instance using the specified properties.
- * @function create
- * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
- * @static
- * @param {google.spanner.v1.IMultiplexedSessionPrecommitToken=} [properties] Properties to set
- * @returns {google.spanner.v1.MultiplexedSessionPrecommitToken} MultiplexedSessionPrecommitToken instance
- */
- MultiplexedSessionPrecommitToken.create = function create(properties) {
- return new MultiplexedSessionPrecommitToken(properties);
- };
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
- /**
- * Encodes the specified MultiplexedSessionPrecommitToken message. Does not implicitly {@link google.spanner.v1.MultiplexedSessionPrecommitToken.verify|verify} messages.
- * @function encode
- * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
- * @static
- * @param {google.spanner.v1.IMultiplexedSessionPrecommitToken} message MultiplexedSessionPrecommitToken message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- MultiplexedSessionPrecommitToken.encode = function encode(message, writer) {
- if (!writer)
- writer = $Writer.create();
- if (message.precommitToken != null && Object.hasOwnProperty.call(message, "precommitToken"))
- writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.precommitToken);
- if (message.seqNum != null && Object.hasOwnProperty.call(message, "seqNum"))
- writer.uint32(/* id 2, wireType 0 =*/16).int32(message.seqNum);
- return writer;
- };
+ /**
+ * Part valueType.
+ * @member {"identifier"|"value"|"random"|undefined} valueType
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @instance
+ */
+ Object.defineProperty(Part.prototype, "valueType", {
+ get: $util.oneOfGetter($oneOfFields = ["identifier", "value", "random"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new Part instance using the specified properties.
+ * @function create
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @static
+ * @param {google.spanner.v1.KeyRecipe.IPart=} [properties] Properties to set
+ * @returns {google.spanner.v1.KeyRecipe.Part} Part instance
+ */
+ Part.create = function create(properties) {
+ return new Part(properties);
+ };
+
+ /**
+ * Encodes the specified Part message. Does not implicitly {@link google.spanner.v1.KeyRecipe.Part.verify|verify} messages.
+ * @function encode
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @static
+ * @param {google.spanner.v1.KeyRecipe.IPart} message Part message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Part.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.tag != null && Object.hasOwnProperty.call(message, "tag"))
+ writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.tag);
+ if (message.order != null && Object.hasOwnProperty.call(message, "order"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.order);
+ if (message.nullOrder != null && Object.hasOwnProperty.call(message, "nullOrder"))
+ writer.uint32(/* id 3, wireType 0 =*/24).int32(message.nullOrder);
+ if (message.type != null && Object.hasOwnProperty.call(message, "type"))
+ $root.google.spanner.v1.Type.encode(message.type, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ if (message.identifier != null && Object.hasOwnProperty.call(message, "identifier"))
+ writer.uint32(/* id 5, wireType 2 =*/42).string(message.identifier);
+ if (message.value != null && Object.hasOwnProperty.call(message, "value"))
+ $root.google.protobuf.Value.encode(message.value, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();
+ if (message.structIdentifiers != null && message.structIdentifiers.length) {
+ writer.uint32(/* id 7, wireType 2 =*/58).fork();
+ for (var i = 0; i < message.structIdentifiers.length; ++i)
+ writer.int32(message.structIdentifiers[i]);
+ writer.ldelim();
+ }
+ if (message.random != null && Object.hasOwnProperty.call(message, "random"))
+ writer.uint32(/* id 8, wireType 0 =*/64).bool(message.random);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Part message, length delimited. Does not implicitly {@link google.spanner.v1.KeyRecipe.Part.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @static
+ * @param {google.spanner.v1.KeyRecipe.IPart} message Part message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Part.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Part message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.spanner.v1.KeyRecipe.Part} Part
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Part.decode = function decode(reader, length, error) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.KeyRecipe.Part();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ if (tag === error)
+ break;
+ switch (tag >>> 3) {
+ case 1: {
+ message.tag = reader.uint32();
+ break;
+ }
+ case 2: {
+ message.order = reader.int32();
+ break;
+ }
+ case 3: {
+ message.nullOrder = reader.int32();
+ break;
+ }
+ case 4: {
+ message.type = $root.google.spanner.v1.Type.decode(reader, reader.uint32());
+ break;
+ }
+ case 5: {
+ message.identifier = reader.string();
+ break;
+ }
+ case 6: {
+ message.value = $root.google.protobuf.Value.decode(reader, reader.uint32());
+ break;
+ }
+ case 8: {
+ message.random = reader.bool();
+ break;
+ }
+ case 7: {
+ if (!(message.structIdentifiers && message.structIdentifiers.length))
+ message.structIdentifiers = [];
+ if ((tag & 7) === 2) {
+ var end2 = reader.uint32() + reader.pos;
+ while (reader.pos < end2)
+ message.structIdentifiers.push(reader.int32());
+ } else
+ message.structIdentifiers.push(reader.int32());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
- /**
- * Encodes the specified MultiplexedSessionPrecommitToken message, length delimited. Does not implicitly {@link google.spanner.v1.MultiplexedSessionPrecommitToken.verify|verify} messages.
- * @function encodeDelimited
- * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
- * @static
- * @param {google.spanner.v1.IMultiplexedSessionPrecommitToken} message MultiplexedSessionPrecommitToken message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- MultiplexedSessionPrecommitToken.encodeDelimited = function encodeDelimited(message, writer) {
- return this.encode(message, writer).ldelim();
- };
+ /**
+ * Decodes a Part message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.spanner.v1.KeyRecipe.Part} Part
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Part.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
- /**
- * Decodes a MultiplexedSessionPrecommitToken message from the specified reader or buffer.
- * @function decode
- * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.MultiplexedSessionPrecommitToken} MultiplexedSessionPrecommitToken
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- MultiplexedSessionPrecommitToken.decode = function decode(reader, length, error) {
- if (!(reader instanceof $Reader))
- reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.MultiplexedSessionPrecommitToken();
- while (reader.pos < end) {
- var tag = reader.uint32();
- if (tag === error)
- break;
- switch (tag >>> 3) {
- case 1: {
- message.precommitToken = reader.bytes();
+ /**
+ * Verifies a Part message.
+ * @function verify
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Part.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.tag != null && message.hasOwnProperty("tag"))
+ if (!$util.isInteger(message.tag))
+ return "tag: integer expected";
+ if (message.order != null && message.hasOwnProperty("order"))
+ switch (message.order) {
+ default:
+ return "order: enum value expected";
+ case 0:
+ case 1:
+ case 2:
break;
}
- case 2: {
- message.seqNum = reader.int32();
+ if (message.nullOrder != null && message.hasOwnProperty("nullOrder"))
+ switch (message.nullOrder) {
+ default:
+ return "nullOrder: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ break;
+ }
+ if (message.type != null && message.hasOwnProperty("type")) {
+ var error = $root.google.spanner.v1.Type.verify(message.type);
+ if (error)
+ return "type." + error;
+ }
+ if (message.identifier != null && message.hasOwnProperty("identifier")) {
+ properties.valueType = 1;
+ if (!$util.isString(message.identifier))
+ return "identifier: string expected";
+ }
+ if (message.value != null && message.hasOwnProperty("value")) {
+ if (properties.valueType === 1)
+ return "valueType: multiple values";
+ properties.valueType = 1;
+ {
+ var error = $root.google.protobuf.Value.verify(message.value);
+ if (error)
+ return "value." + error;
+ }
+ }
+ if (message.random != null && message.hasOwnProperty("random")) {
+ if (properties.valueType === 1)
+ return "valueType: multiple values";
+ properties.valueType = 1;
+ if (typeof message.random !== "boolean")
+ return "random: boolean expected";
+ }
+ if (message.structIdentifiers != null && message.hasOwnProperty("structIdentifiers")) {
+ if (!Array.isArray(message.structIdentifiers))
+ return "structIdentifiers: array expected";
+ for (var i = 0; i < message.structIdentifiers.length; ++i)
+ if (!$util.isInteger(message.structIdentifiers[i]))
+ return "structIdentifiers: integer[] expected";
+ }
+ return null;
+ };
+
+ /**
+ * Creates a Part message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.spanner.v1.KeyRecipe.Part} Part
+ */
+ Part.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.KeyRecipe.Part)
+ return object;
+ var message = new $root.google.spanner.v1.KeyRecipe.Part();
+ if (object.tag != null)
+ message.tag = object.tag >>> 0;
+ switch (object.order) {
+ default:
+ if (typeof object.order === "number") {
+ message.order = object.order;
break;
}
+ break;
+ case "ORDER_UNSPECIFIED":
+ case 0:
+ message.order = 0;
+ break;
+ case "ASCENDING":
+ case 1:
+ message.order = 1;
+ break;
+ case "DESCENDING":
+ case 2:
+ message.order = 2;
+ break;
+ }
+ switch (object.nullOrder) {
default:
- reader.skipType(tag & 7);
+ if (typeof object.nullOrder === "number") {
+ message.nullOrder = object.nullOrder;
+ break;
+ }
+ break;
+ case "NULL_ORDER_UNSPECIFIED":
+ case 0:
+ message.nullOrder = 0;
+ break;
+ case "NULLS_FIRST":
+ case 1:
+ message.nullOrder = 1;
+ break;
+ case "NULLS_LAST":
+ case 2:
+ message.nullOrder = 2;
+ break;
+ case "NOT_NULL":
+ case 3:
+ message.nullOrder = 3;
break;
}
- }
- return message;
- };
-
- /**
- * Decodes a MultiplexedSessionPrecommitToken message from the specified reader or buffer, length delimited.
- * @function decodeDelimited
- * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.MultiplexedSessionPrecommitToken} MultiplexedSessionPrecommitToken
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- MultiplexedSessionPrecommitToken.decodeDelimited = function decodeDelimited(reader) {
- if (!(reader instanceof $Reader))
- reader = new $Reader(reader);
- return this.decode(reader, reader.uint32());
- };
-
- /**
- * Verifies a MultiplexedSessionPrecommitToken message.
- * @function verify
- * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
- * @static
- * @param {Object.} message Plain object to verify
- * @returns {string|null} `null` if valid, otherwise the reason why it is not
- */
- MultiplexedSessionPrecommitToken.verify = function verify(message) {
- if (typeof message !== "object" || message === null)
- return "object expected";
- if (message.precommitToken != null && message.hasOwnProperty("precommitToken"))
- if (!(message.precommitToken && typeof message.precommitToken.length === "number" || $util.isString(message.precommitToken)))
- return "precommitToken: buffer expected";
- if (message.seqNum != null && message.hasOwnProperty("seqNum"))
- if (!$util.isInteger(message.seqNum))
- return "seqNum: integer expected";
- return null;
- };
+ if (object.type != null) {
+ if (typeof object.type !== "object")
+ throw TypeError(".google.spanner.v1.KeyRecipe.Part.type: object expected");
+ message.type = $root.google.spanner.v1.Type.fromObject(object.type);
+ }
+ if (object.identifier != null)
+ message.identifier = String(object.identifier);
+ if (object.value != null) {
+ if (typeof object.value !== "object")
+ throw TypeError(".google.spanner.v1.KeyRecipe.Part.value: object expected");
+ message.value = $root.google.protobuf.Value.fromObject(object.value);
+ }
+ if (object.random != null)
+ message.random = Boolean(object.random);
+ if (object.structIdentifiers) {
+ if (!Array.isArray(object.structIdentifiers))
+ throw TypeError(".google.spanner.v1.KeyRecipe.Part.structIdentifiers: array expected");
+ message.structIdentifiers = [];
+ for (var i = 0; i < object.structIdentifiers.length; ++i)
+ message.structIdentifiers[i] = object.structIdentifiers[i] | 0;
+ }
+ return message;
+ };
- /**
- * Creates a MultiplexedSessionPrecommitToken message from a plain object. Also converts values to their respective internal types.
- * @function fromObject
- * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
- * @static
- * @param {Object.} object Plain object
- * @returns {google.spanner.v1.MultiplexedSessionPrecommitToken} MultiplexedSessionPrecommitToken
- */
- MultiplexedSessionPrecommitToken.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.MultiplexedSessionPrecommitToken)
+ /**
+ * Creates a plain object from a Part message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @static
+ * @param {google.spanner.v1.KeyRecipe.Part} message Part
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Part.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.structIdentifiers = [];
+ if (options.defaults) {
+ object.tag = 0;
+ object.order = options.enums === String ? "ORDER_UNSPECIFIED" : 0;
+ object.nullOrder = options.enums === String ? "NULL_ORDER_UNSPECIFIED" : 0;
+ object.type = null;
+ }
+ if (message.tag != null && message.hasOwnProperty("tag"))
+ object.tag = message.tag;
+ if (message.order != null && message.hasOwnProperty("order"))
+ object.order = options.enums === String ? $root.google.spanner.v1.KeyRecipe.Part.Order[message.order] === undefined ? message.order : $root.google.spanner.v1.KeyRecipe.Part.Order[message.order] : message.order;
+ if (message.nullOrder != null && message.hasOwnProperty("nullOrder"))
+ object.nullOrder = options.enums === String ? $root.google.spanner.v1.KeyRecipe.Part.NullOrder[message.nullOrder] === undefined ? message.nullOrder : $root.google.spanner.v1.KeyRecipe.Part.NullOrder[message.nullOrder] : message.nullOrder;
+ if (message.type != null && message.hasOwnProperty("type"))
+ object.type = $root.google.spanner.v1.Type.toObject(message.type, options);
+ if (message.identifier != null && message.hasOwnProperty("identifier")) {
+ object.identifier = message.identifier;
+ if (options.oneofs)
+ object.valueType = "identifier";
+ }
+ if (message.value != null && message.hasOwnProperty("value")) {
+ object.value = $root.google.protobuf.Value.toObject(message.value, options);
+ if (options.oneofs)
+ object.valueType = "value";
+ }
+ if (message.structIdentifiers && message.structIdentifiers.length) {
+ object.structIdentifiers = [];
+ for (var j = 0; j < message.structIdentifiers.length; ++j)
+ object.structIdentifiers[j] = message.structIdentifiers[j];
+ }
+ if (message.random != null && message.hasOwnProperty("random")) {
+ object.random = message.random;
+ if (options.oneofs)
+ object.valueType = "random";
+ }
return object;
- var message = new $root.google.spanner.v1.MultiplexedSessionPrecommitToken();
- if (object.precommitToken != null)
- if (typeof object.precommitToken === "string")
- $util.base64.decode(object.precommitToken, message.precommitToken = $util.newBuffer($util.base64.length(object.precommitToken)), 0);
- else if (object.precommitToken.length >= 0)
- message.precommitToken = object.precommitToken;
- if (object.seqNum != null)
- message.seqNum = object.seqNum | 0;
- return message;
- };
+ };
- /**
- * Creates a plain object from a MultiplexedSessionPrecommitToken message. Also converts values to other types if specified.
- * @function toObject
- * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
- * @static
- * @param {google.spanner.v1.MultiplexedSessionPrecommitToken} message MultiplexedSessionPrecommitToken
- * @param {$protobuf.IConversionOptions} [options] Conversion options
- * @returns {Object.} Plain object
- */
- MultiplexedSessionPrecommitToken.toObject = function toObject(message, options) {
- if (!options)
- options = {};
- var object = {};
- if (options.defaults) {
- if (options.bytes === String)
- object.precommitToken = "";
- else {
- object.precommitToken = [];
- if (options.bytes !== Array)
- object.precommitToken = $util.newBuffer(object.precommitToken);
+ /**
+ * Converts this Part to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Part.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for Part
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.KeyRecipe.Part
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Part.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
}
- object.seqNum = 0;
- }
- if (message.precommitToken != null && message.hasOwnProperty("precommitToken"))
- object.precommitToken = options.bytes === String ? $util.base64.encode(message.precommitToken, 0, message.precommitToken.length) : options.bytes === Array ? Array.prototype.slice.call(message.precommitToken) : message.precommitToken;
- if (message.seqNum != null && message.hasOwnProperty("seqNum"))
- object.seqNum = message.seqNum;
- return object;
- };
+ return typeUrlPrefix + "/google.spanner.v1.KeyRecipe.Part";
+ };
- /**
- * Converts this MultiplexedSessionPrecommitToken to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
- * @instance
- * @returns {Object.} JSON object
- */
- MultiplexedSessionPrecommitToken.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
- };
+ /**
+ * Order enum.
+ * @name google.spanner.v1.KeyRecipe.Part.Order
+ * @enum {number}
+ * @property {number} ORDER_UNSPECIFIED=0 ORDER_UNSPECIFIED value
+ * @property {number} ASCENDING=1 ASCENDING value
+ * @property {number} DESCENDING=2 DESCENDING value
+ */
+ Part.Order = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "ORDER_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "ASCENDING"] = 1;
+ values[valuesById[2] = "DESCENDING"] = 2;
+ return values;
+ })();
- /**
- * Gets the default type url for MultiplexedSessionPrecommitToken
- * @function getTypeUrl
- * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
- * @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
- */
- MultiplexedSessionPrecommitToken.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
- }
- return typeUrlPrefix + "/google.spanner.v1.MultiplexedSessionPrecommitToken";
- };
+ /**
+ * NullOrder enum.
+ * @name google.spanner.v1.KeyRecipe.Part.NullOrder
+ * @enum {number}
+ * @property {number} NULL_ORDER_UNSPECIFIED=0 NULL_ORDER_UNSPECIFIED value
+ * @property {number} NULLS_FIRST=1 NULLS_FIRST value
+ * @property {number} NULLS_LAST=2 NULLS_LAST value
+ * @property {number} NOT_NULL=3 NOT_NULL value
+ */
+ Part.NullOrder = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "NULL_ORDER_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "NULLS_FIRST"] = 1;
+ values[valuesById[2] = "NULLS_LAST"] = 2;
+ values[valuesById[3] = "NOT_NULL"] = 3;
+ return values;
+ })();
- return MultiplexedSessionPrecommitToken;
- })();
+ return Part;
+ })();
- v1.KeyRange = (function() {
+ return KeyRecipe;
+ })();
- /**
- * Properties of a KeyRange.
- * @memberof google.spanner.v1
- * @interface IKeyRange
- * @property {google.protobuf.IListValue|null} [startClosed] KeyRange startClosed
- * @property {google.protobuf.IListValue|null} [startOpen] KeyRange startOpen
- * @property {google.protobuf.IListValue|null} [endClosed] KeyRange endClosed
- * @property {google.protobuf.IListValue|null} [endOpen] KeyRange endOpen
- */
+ v1.RecipeList = (function() {
/**
- * Constructs a new KeyRange.
+ * Properties of a RecipeList.
* @memberof google.spanner.v1
- * @classdesc Represents a KeyRange.
- * @implements IKeyRange
- * @constructor
- * @param {google.spanner.v1.IKeyRange=} [properties] Properties to set
- */
- function KeyRange(properties) {
- if (properties)
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
- if (properties[keys[i]] != null)
- this[keys[i]] = properties[keys[i]];
- }
-
- /**
- * KeyRange startClosed.
- * @member {google.protobuf.IListValue|null|undefined} startClosed
- * @memberof google.spanner.v1.KeyRange
- * @instance
- */
- KeyRange.prototype.startClosed = null;
-
- /**
- * KeyRange startOpen.
- * @member {google.protobuf.IListValue|null|undefined} startOpen
- * @memberof google.spanner.v1.KeyRange
- * @instance
- */
- KeyRange.prototype.startOpen = null;
-
- /**
- * KeyRange endClosed.
- * @member {google.protobuf.IListValue|null|undefined} endClosed
- * @memberof google.spanner.v1.KeyRange
- * @instance
- */
- KeyRange.prototype.endClosed = null;
-
- /**
- * KeyRange endOpen.
- * @member {google.protobuf.IListValue|null|undefined} endOpen
- * @memberof google.spanner.v1.KeyRange
- * @instance
+ * @interface IRecipeList
+ * @property {Uint8Array|null} [schemaGeneration] RecipeList schemaGeneration
+ * @property {Array.|null} [recipe] RecipeList recipe
*/
- KeyRange.prototype.endOpen = null;
- // OneOf field names bound to virtual getters and setters
- var $oneOfFields;
+ /**
+ * Constructs a new RecipeList.
+ * @memberof google.spanner.v1
+ * @classdesc Represents a RecipeList.
+ * @implements IRecipeList
+ * @constructor
+ * @param {google.spanner.v1.IRecipeList=} [properties] Properties to set
+ */
+ function RecipeList(properties) {
+ this.recipe = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
/**
- * KeyRange startKeyType.
- * @member {"startClosed"|"startOpen"|undefined} startKeyType
- * @memberof google.spanner.v1.KeyRange
+ * RecipeList schemaGeneration.
+ * @member {Uint8Array} schemaGeneration
+ * @memberof google.spanner.v1.RecipeList
* @instance
*/
- Object.defineProperty(KeyRange.prototype, "startKeyType", {
- get: $util.oneOfGetter($oneOfFields = ["startClosed", "startOpen"]),
- set: $util.oneOfSetter($oneOfFields)
- });
+ RecipeList.prototype.schemaGeneration = $util.newBuffer([]);
/**
- * KeyRange endKeyType.
- * @member {"endClosed"|"endOpen"|undefined} endKeyType
- * @memberof google.spanner.v1.KeyRange
+ * RecipeList recipe.
+ * @member {Array.} recipe
+ * @memberof google.spanner.v1.RecipeList
* @instance
*/
- Object.defineProperty(KeyRange.prototype, "endKeyType", {
- get: $util.oneOfGetter($oneOfFields = ["endClosed", "endOpen"]),
- set: $util.oneOfSetter($oneOfFields)
- });
+ RecipeList.prototype.recipe = $util.emptyArray;
/**
- * Creates a new KeyRange instance using the specified properties.
+ * Creates a new RecipeList instance using the specified properties.
* @function create
- * @memberof google.spanner.v1.KeyRange
+ * @memberof google.spanner.v1.RecipeList
* @static
- * @param {google.spanner.v1.IKeyRange=} [properties] Properties to set
- * @returns {google.spanner.v1.KeyRange} KeyRange instance
+ * @param {google.spanner.v1.IRecipeList=} [properties] Properties to set
+ * @returns {google.spanner.v1.RecipeList} RecipeList instance
*/
- KeyRange.create = function create(properties) {
- return new KeyRange(properties);
+ RecipeList.create = function create(properties) {
+ return new RecipeList(properties);
};
/**
- * Encodes the specified KeyRange message. Does not implicitly {@link google.spanner.v1.KeyRange.verify|verify} messages.
+ * Encodes the specified RecipeList message. Does not implicitly {@link google.spanner.v1.RecipeList.verify|verify} messages.
* @function encode
- * @memberof google.spanner.v1.KeyRange
+ * @memberof google.spanner.v1.RecipeList
* @static
- * @param {google.spanner.v1.IKeyRange} message KeyRange message or plain object to encode
+ * @param {google.spanner.v1.IRecipeList} message RecipeList message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- KeyRange.encode = function encode(message, writer) {
+ RecipeList.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
- if (message.startClosed != null && Object.hasOwnProperty.call(message, "startClosed"))
- $root.google.protobuf.ListValue.encode(message.startClosed, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
- if (message.startOpen != null && Object.hasOwnProperty.call(message, "startOpen"))
- $root.google.protobuf.ListValue.encode(message.startOpen, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
- if (message.endClosed != null && Object.hasOwnProperty.call(message, "endClosed"))
- $root.google.protobuf.ListValue.encode(message.endClosed, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
- if (message.endOpen != null && Object.hasOwnProperty.call(message, "endOpen"))
- $root.google.protobuf.ListValue.encode(message.endOpen, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ if (message.schemaGeneration != null && Object.hasOwnProperty.call(message, "schemaGeneration"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.schemaGeneration);
+ if (message.recipe != null && message.recipe.length)
+ for (var i = 0; i < message.recipe.length; ++i)
+ $root.google.spanner.v1.KeyRecipe.encode(message.recipe[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
return writer;
};
/**
- * Encodes the specified KeyRange message, length delimited. Does not implicitly {@link google.spanner.v1.KeyRange.verify|verify} messages.
+ * Encodes the specified RecipeList message, length delimited. Does not implicitly {@link google.spanner.v1.RecipeList.verify|verify} messages.
* @function encodeDelimited
- * @memberof google.spanner.v1.KeyRange
+ * @memberof google.spanner.v1.RecipeList
* @static
- * @param {google.spanner.v1.IKeyRange} message KeyRange message or plain object to encode
+ * @param {google.spanner.v1.IRecipeList} message RecipeList message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- KeyRange.encodeDelimited = function encodeDelimited(message, writer) {
+ RecipeList.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
- * Decodes a KeyRange message from the specified reader or buffer.
+ * Decodes a RecipeList message from the specified reader or buffer.
* @function decode
- * @memberof google.spanner.v1.KeyRange
+ * @memberof google.spanner.v1.RecipeList
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.KeyRange} KeyRange
+ * @returns {google.spanner.v1.RecipeList} RecipeList
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- KeyRange.decode = function decode(reader, length, error) {
+ RecipeList.decode = function decode(reader, length, error) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.KeyRange();
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.RecipeList();
while (reader.pos < end) {
var tag = reader.uint32();
if (tag === error)
break;
switch (tag >>> 3) {
case 1: {
- message.startClosed = $root.google.protobuf.ListValue.decode(reader, reader.uint32());
- break;
- }
- case 2: {
- message.startOpen = $root.google.protobuf.ListValue.decode(reader, reader.uint32());
+ message.schemaGeneration = reader.bytes();
break;
}
case 3: {
- message.endClosed = $root.google.protobuf.ListValue.decode(reader, reader.uint32());
- break;
- }
- case 4: {
- message.endOpen = $root.google.protobuf.ListValue.decode(reader, reader.uint32());
+ if (!(message.recipe && message.recipe.length))
+ message.recipe = [];
+ message.recipe.push($root.google.spanner.v1.KeyRecipe.decode(reader, reader.uint32()));
break;
}
default:
@@ -88970,194 +89000,162 @@
};
/**
- * Decodes a KeyRange message from the specified reader or buffer, length delimited.
+ * Decodes a RecipeList message from the specified reader or buffer, length delimited.
* @function decodeDelimited
- * @memberof google.spanner.v1.KeyRange
+ * @memberof google.spanner.v1.RecipeList
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.KeyRange} KeyRange
+ * @returns {google.spanner.v1.RecipeList} RecipeList
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- KeyRange.decodeDelimited = function decodeDelimited(reader) {
+ RecipeList.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
- * Verifies a KeyRange message.
+ * Verifies a RecipeList message.
* @function verify
- * @memberof google.spanner.v1.KeyRange
+ * @memberof google.spanner.v1.RecipeList
* @static
* @param {Object.} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
- KeyRange.verify = function verify(message) {
+ RecipeList.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
- var properties = {};
- if (message.startClosed != null && message.hasOwnProperty("startClosed")) {
- properties.startKeyType = 1;
- {
- var error = $root.google.protobuf.ListValue.verify(message.startClosed);
- if (error)
- return "startClosed." + error;
- }
- }
- if (message.startOpen != null && message.hasOwnProperty("startOpen")) {
- if (properties.startKeyType === 1)
- return "startKeyType: multiple values";
- properties.startKeyType = 1;
- {
- var error = $root.google.protobuf.ListValue.verify(message.startOpen);
- if (error)
- return "startOpen." + error;
- }
- }
- if (message.endClosed != null && message.hasOwnProperty("endClosed")) {
- properties.endKeyType = 1;
- {
- var error = $root.google.protobuf.ListValue.verify(message.endClosed);
- if (error)
- return "endClosed." + error;
- }
- }
- if (message.endOpen != null && message.hasOwnProperty("endOpen")) {
- if (properties.endKeyType === 1)
- return "endKeyType: multiple values";
- properties.endKeyType = 1;
- {
- var error = $root.google.protobuf.ListValue.verify(message.endOpen);
+ if (message.schemaGeneration != null && message.hasOwnProperty("schemaGeneration"))
+ if (!(message.schemaGeneration && typeof message.schemaGeneration.length === "number" || $util.isString(message.schemaGeneration)))
+ return "schemaGeneration: buffer expected";
+ if (message.recipe != null && message.hasOwnProperty("recipe")) {
+ if (!Array.isArray(message.recipe))
+ return "recipe: array expected";
+ for (var i = 0; i < message.recipe.length; ++i) {
+ var error = $root.google.spanner.v1.KeyRecipe.verify(message.recipe[i]);
if (error)
- return "endOpen." + error;
+ return "recipe." + error;
}
}
return null;
};
/**
- * Creates a KeyRange message from a plain object. Also converts values to their respective internal types.
+ * Creates a RecipeList message from a plain object. Also converts values to their respective internal types.
* @function fromObject
- * @memberof google.spanner.v1.KeyRange
+ * @memberof google.spanner.v1.RecipeList
* @static
* @param {Object.} object Plain object
- * @returns {google.spanner.v1.KeyRange} KeyRange
+ * @returns {google.spanner.v1.RecipeList} RecipeList
*/
- KeyRange.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.KeyRange)
+ RecipeList.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.RecipeList)
return object;
- var message = new $root.google.spanner.v1.KeyRange();
- if (object.startClosed != null) {
- if (typeof object.startClosed !== "object")
- throw TypeError(".google.spanner.v1.KeyRange.startClosed: object expected");
- message.startClosed = $root.google.protobuf.ListValue.fromObject(object.startClosed);
- }
- if (object.startOpen != null) {
- if (typeof object.startOpen !== "object")
- throw TypeError(".google.spanner.v1.KeyRange.startOpen: object expected");
- message.startOpen = $root.google.protobuf.ListValue.fromObject(object.startOpen);
- }
- if (object.endClosed != null) {
- if (typeof object.endClosed !== "object")
- throw TypeError(".google.spanner.v1.KeyRange.endClosed: object expected");
- message.endClosed = $root.google.protobuf.ListValue.fromObject(object.endClosed);
- }
- if (object.endOpen != null) {
- if (typeof object.endOpen !== "object")
- throw TypeError(".google.spanner.v1.KeyRange.endOpen: object expected");
- message.endOpen = $root.google.protobuf.ListValue.fromObject(object.endOpen);
+ var message = new $root.google.spanner.v1.RecipeList();
+ if (object.schemaGeneration != null)
+ if (typeof object.schemaGeneration === "string")
+ $util.base64.decode(object.schemaGeneration, message.schemaGeneration = $util.newBuffer($util.base64.length(object.schemaGeneration)), 0);
+ else if (object.schemaGeneration.length >= 0)
+ message.schemaGeneration = object.schemaGeneration;
+ if (object.recipe) {
+ if (!Array.isArray(object.recipe))
+ throw TypeError(".google.spanner.v1.RecipeList.recipe: array expected");
+ message.recipe = [];
+ for (var i = 0; i < object.recipe.length; ++i) {
+ if (typeof object.recipe[i] !== "object")
+ throw TypeError(".google.spanner.v1.RecipeList.recipe: object expected");
+ message.recipe[i] = $root.google.spanner.v1.KeyRecipe.fromObject(object.recipe[i]);
+ }
}
return message;
};
/**
- * Creates a plain object from a KeyRange message. Also converts values to other types if specified.
+ * Creates a plain object from a RecipeList message. Also converts values to other types if specified.
* @function toObject
- * @memberof google.spanner.v1.KeyRange
+ * @memberof google.spanner.v1.RecipeList
* @static
- * @param {google.spanner.v1.KeyRange} message KeyRange
+ * @param {google.spanner.v1.RecipeList} message RecipeList
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.} Plain object
*/
- KeyRange.toObject = function toObject(message, options) {
+ RecipeList.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
- if (message.startClosed != null && message.hasOwnProperty("startClosed")) {
- object.startClosed = $root.google.protobuf.ListValue.toObject(message.startClosed, options);
- if (options.oneofs)
- object.startKeyType = "startClosed";
- }
- if (message.startOpen != null && message.hasOwnProperty("startOpen")) {
- object.startOpen = $root.google.protobuf.ListValue.toObject(message.startOpen, options);
- if (options.oneofs)
- object.startKeyType = "startOpen";
- }
- if (message.endClosed != null && message.hasOwnProperty("endClosed")) {
- object.endClosed = $root.google.protobuf.ListValue.toObject(message.endClosed, options);
- if (options.oneofs)
- object.endKeyType = "endClosed";
- }
- if (message.endOpen != null && message.hasOwnProperty("endOpen")) {
- object.endOpen = $root.google.protobuf.ListValue.toObject(message.endOpen, options);
- if (options.oneofs)
- object.endKeyType = "endOpen";
+ if (options.arrays || options.defaults)
+ object.recipe = [];
+ if (options.defaults)
+ if (options.bytes === String)
+ object.schemaGeneration = "";
+ else {
+ object.schemaGeneration = [];
+ if (options.bytes !== Array)
+ object.schemaGeneration = $util.newBuffer(object.schemaGeneration);
+ }
+ if (message.schemaGeneration != null && message.hasOwnProperty("schemaGeneration"))
+ object.schemaGeneration = options.bytes === String ? $util.base64.encode(message.schemaGeneration, 0, message.schemaGeneration.length) : options.bytes === Array ? Array.prototype.slice.call(message.schemaGeneration) : message.schemaGeneration;
+ if (message.recipe && message.recipe.length) {
+ object.recipe = [];
+ for (var j = 0; j < message.recipe.length; ++j)
+ object.recipe[j] = $root.google.spanner.v1.KeyRecipe.toObject(message.recipe[j], options);
}
return object;
};
/**
- * Converts this KeyRange to JSON.
+ * Converts this RecipeList to JSON.
* @function toJSON
- * @memberof google.spanner.v1.KeyRange
+ * @memberof google.spanner.v1.RecipeList
* @instance
* @returns {Object.} JSON object
*/
- KeyRange.prototype.toJSON = function toJSON() {
+ RecipeList.prototype.toJSON = function toJSON() {
return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};
/**
- * Gets the default type url for KeyRange
+ * Gets the default type url for RecipeList
* @function getTypeUrl
- * @memberof google.spanner.v1.KeyRange
+ * @memberof google.spanner.v1.RecipeList
* @static
* @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns {string} The default type url
*/
- KeyRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ RecipeList.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
if (typeUrlPrefix === undefined) {
typeUrlPrefix = "type.googleapis.com";
}
- return typeUrlPrefix + "/google.spanner.v1.KeyRange";
+ return typeUrlPrefix + "/google.spanner.v1.RecipeList";
};
- return KeyRange;
+ return RecipeList;
})();
- v1.KeySet = (function() {
+ v1.CacheUpdate = (function() {
/**
- * Properties of a KeySet.
+ * Properties of a CacheUpdate.
* @memberof google.spanner.v1
- * @interface IKeySet
- * @property {Array.|null} [keys] KeySet keys
- * @property {Array.|null} [ranges] KeySet ranges
- * @property {boolean|null} [all] KeySet all
+ * @interface ICacheUpdate
+ * @property {number|Long|null} [databaseId] CacheUpdate databaseId
+ * @property {Array.|null} [range] CacheUpdate range
+ * @property {Array.|null} [group] CacheUpdate group
+ * @property {google.spanner.v1.IRecipeList|null} [keyRecipes] CacheUpdate keyRecipes
*/
/**
- * Constructs a new KeySet.
+ * Constructs a new CacheUpdate.
* @memberof google.spanner.v1
- * @classdesc Represents a KeySet.
- * @implements IKeySet
+ * @classdesc Represents a CacheUpdate.
+ * @implements ICacheUpdate
* @constructor
- * @param {google.spanner.v1.IKeySet=} [properties] Properties to set
+ * @param {google.spanner.v1.ICacheUpdate=} [properties] Properties to set
*/
- function KeySet(properties) {
- this.keys = [];
- this.ranges = [];
+ function CacheUpdate(properties) {
+ this.range = [];
+ this.group = [];
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
@@ -89165,111 +89163,125 @@
}
/**
- * KeySet keys.
- * @member {Array.} keys
- * @memberof google.spanner.v1.KeySet
+ * CacheUpdate databaseId.
+ * @member {number|Long} databaseId
+ * @memberof google.spanner.v1.CacheUpdate
* @instance
*/
- KeySet.prototype.keys = $util.emptyArray;
+ CacheUpdate.prototype.databaseId = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
/**
- * KeySet ranges.
- * @member {Array.} ranges
- * @memberof google.spanner.v1.KeySet
+ * CacheUpdate range.
+ * @member {Array.} range
+ * @memberof google.spanner.v1.CacheUpdate
* @instance
*/
- KeySet.prototype.ranges = $util.emptyArray;
+ CacheUpdate.prototype.range = $util.emptyArray;
/**
- * KeySet all.
- * @member {boolean} all
- * @memberof google.spanner.v1.KeySet
+ * CacheUpdate group.
+ * @member {Array.} group
+ * @memberof google.spanner.v1.CacheUpdate
* @instance
*/
- KeySet.prototype.all = false;
+ CacheUpdate.prototype.group = $util.emptyArray;
/**
- * Creates a new KeySet instance using the specified properties.
+ * CacheUpdate keyRecipes.
+ * @member {google.spanner.v1.IRecipeList|null|undefined} keyRecipes
+ * @memberof google.spanner.v1.CacheUpdate
+ * @instance
+ */
+ CacheUpdate.prototype.keyRecipes = null;
+
+ /**
+ * Creates a new CacheUpdate instance using the specified properties.
* @function create
- * @memberof google.spanner.v1.KeySet
+ * @memberof google.spanner.v1.CacheUpdate
* @static
- * @param {google.spanner.v1.IKeySet=} [properties] Properties to set
- * @returns {google.spanner.v1.KeySet} KeySet instance
+ * @param {google.spanner.v1.ICacheUpdate=} [properties] Properties to set
+ * @returns {google.spanner.v1.CacheUpdate} CacheUpdate instance
*/
- KeySet.create = function create(properties) {
- return new KeySet(properties);
+ CacheUpdate.create = function create(properties) {
+ return new CacheUpdate(properties);
};
/**
- * Encodes the specified KeySet message. Does not implicitly {@link google.spanner.v1.KeySet.verify|verify} messages.
+ * Encodes the specified CacheUpdate message. Does not implicitly {@link google.spanner.v1.CacheUpdate.verify|verify} messages.
* @function encode
- * @memberof google.spanner.v1.KeySet
+ * @memberof google.spanner.v1.CacheUpdate
* @static
- * @param {google.spanner.v1.IKeySet} message KeySet message or plain object to encode
+ * @param {google.spanner.v1.ICacheUpdate} message CacheUpdate message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- KeySet.encode = function encode(message, writer) {
+ CacheUpdate.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
- if (message.keys != null && message.keys.length)
- for (var i = 0; i < message.keys.length; ++i)
- $root.google.protobuf.ListValue.encode(message.keys[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
- if (message.ranges != null && message.ranges.length)
- for (var i = 0; i < message.ranges.length; ++i)
- $root.google.spanner.v1.KeyRange.encode(message.ranges[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
- if (message.all != null && Object.hasOwnProperty.call(message, "all"))
- writer.uint32(/* id 3, wireType 0 =*/24).bool(message.all);
+ if (message.databaseId != null && Object.hasOwnProperty.call(message, "databaseId"))
+ writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.databaseId);
+ if (message.range != null && message.range.length)
+ for (var i = 0; i < message.range.length; ++i)
+ $root.google.spanner.v1.Range.encode(message.range[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.group != null && message.group.length)
+ for (var i = 0; i < message.group.length; ++i)
+ $root.google.spanner.v1.Group.encode(message.group[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.keyRecipes != null && Object.hasOwnProperty.call(message, "keyRecipes"))
+ $root.google.spanner.v1.RecipeList.encode(message.keyRecipes, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
return writer;
};
/**
- * Encodes the specified KeySet message, length delimited. Does not implicitly {@link google.spanner.v1.KeySet.verify|verify} messages.
+ * Encodes the specified CacheUpdate message, length delimited. Does not implicitly {@link google.spanner.v1.CacheUpdate.verify|verify} messages.
* @function encodeDelimited
- * @memberof google.spanner.v1.KeySet
+ * @memberof google.spanner.v1.CacheUpdate
* @static
- * @param {google.spanner.v1.IKeySet} message KeySet message or plain object to encode
+ * @param {google.spanner.v1.ICacheUpdate} message CacheUpdate message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- KeySet.encodeDelimited = function encodeDelimited(message, writer) {
+ CacheUpdate.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
- * Decodes a KeySet message from the specified reader or buffer.
+ * Decodes a CacheUpdate message from the specified reader or buffer.
* @function decode
- * @memberof google.spanner.v1.KeySet
+ * @memberof google.spanner.v1.CacheUpdate
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.KeySet} KeySet
+ * @returns {google.spanner.v1.CacheUpdate} CacheUpdate
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- KeySet.decode = function decode(reader, length, error) {
+ CacheUpdate.decode = function decode(reader, length, error) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.KeySet();
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.CacheUpdate();
while (reader.pos < end) {
var tag = reader.uint32();
if (tag === error)
break;
switch (tag >>> 3) {
case 1: {
- if (!(message.keys && message.keys.length))
- message.keys = [];
- message.keys.push($root.google.protobuf.ListValue.decode(reader, reader.uint32()));
+ message.databaseId = reader.uint64();
break;
}
case 2: {
- if (!(message.ranges && message.ranges.length))
- message.ranges = [];
- message.ranges.push($root.google.spanner.v1.KeyRange.decode(reader, reader.uint32()));
+ if (!(message.range && message.range.length))
+ message.range = [];
+ message.range.push($root.google.spanner.v1.Range.decode(reader, reader.uint32()));
break;
}
case 3: {
- message.all = reader.bool();
+ if (!(message.group && message.group.length))
+ message.group = [];
+ message.group.push($root.google.spanner.v1.Group.decode(reader, reader.uint32()));
+ break;
+ }
+ case 5: {
+ message.keyRecipes = $root.google.spanner.v1.RecipeList.decode(reader, reader.uint32());
break;
}
default:
@@ -89281,178 +89293,212 @@
};
/**
- * Decodes a KeySet message from the specified reader or buffer, length delimited.
+ * Decodes a CacheUpdate message from the specified reader or buffer, length delimited.
* @function decodeDelimited
- * @memberof google.spanner.v1.KeySet
+ * @memberof google.spanner.v1.CacheUpdate
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.KeySet} KeySet
+ * @returns {google.spanner.v1.CacheUpdate} CacheUpdate
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- KeySet.decodeDelimited = function decodeDelimited(reader) {
+ CacheUpdate.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
- * Verifies a KeySet message.
+ * Verifies a CacheUpdate message.
* @function verify
- * @memberof google.spanner.v1.KeySet
+ * @memberof google.spanner.v1.CacheUpdate
* @static
* @param {Object.} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
- KeySet.verify = function verify(message) {
+ CacheUpdate.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
- if (message.keys != null && message.hasOwnProperty("keys")) {
- if (!Array.isArray(message.keys))
- return "keys: array expected";
- for (var i = 0; i < message.keys.length; ++i) {
- var error = $root.google.protobuf.ListValue.verify(message.keys[i]);
+ if (message.databaseId != null && message.hasOwnProperty("databaseId"))
+ if (!$util.isInteger(message.databaseId) && !(message.databaseId && $util.isInteger(message.databaseId.low) && $util.isInteger(message.databaseId.high)))
+ return "databaseId: integer|Long expected";
+ if (message.range != null && message.hasOwnProperty("range")) {
+ if (!Array.isArray(message.range))
+ return "range: array expected";
+ for (var i = 0; i < message.range.length; ++i) {
+ var error = $root.google.spanner.v1.Range.verify(message.range[i]);
if (error)
- return "keys." + error;
+ return "range." + error;
}
}
- if (message.ranges != null && message.hasOwnProperty("ranges")) {
- if (!Array.isArray(message.ranges))
- return "ranges: array expected";
- for (var i = 0; i < message.ranges.length; ++i) {
- var error = $root.google.spanner.v1.KeyRange.verify(message.ranges[i]);
+ if (message.group != null && message.hasOwnProperty("group")) {
+ if (!Array.isArray(message.group))
+ return "group: array expected";
+ for (var i = 0; i < message.group.length; ++i) {
+ var error = $root.google.spanner.v1.Group.verify(message.group[i]);
if (error)
- return "ranges." + error;
+ return "group." + error;
}
}
- if (message.all != null && message.hasOwnProperty("all"))
- if (typeof message.all !== "boolean")
- return "all: boolean expected";
+ if (message.keyRecipes != null && message.hasOwnProperty("keyRecipes")) {
+ var error = $root.google.spanner.v1.RecipeList.verify(message.keyRecipes);
+ if (error)
+ return "keyRecipes." + error;
+ }
return null;
};
/**
- * Creates a KeySet message from a plain object. Also converts values to their respective internal types.
+ * Creates a CacheUpdate message from a plain object. Also converts values to their respective internal types.
* @function fromObject
- * @memberof google.spanner.v1.KeySet
+ * @memberof google.spanner.v1.CacheUpdate
* @static
* @param {Object.} object Plain object
- * @returns {google.spanner.v1.KeySet} KeySet
+ * @returns {google.spanner.v1.CacheUpdate} CacheUpdate
*/
- KeySet.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.KeySet)
+ CacheUpdate.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.CacheUpdate)
return object;
- var message = new $root.google.spanner.v1.KeySet();
- if (object.keys) {
- if (!Array.isArray(object.keys))
- throw TypeError(".google.spanner.v1.KeySet.keys: array expected");
- message.keys = [];
- for (var i = 0; i < object.keys.length; ++i) {
- if (typeof object.keys[i] !== "object")
- throw TypeError(".google.spanner.v1.KeySet.keys: object expected");
- message.keys[i] = $root.google.protobuf.ListValue.fromObject(object.keys[i]);
+ var message = new $root.google.spanner.v1.CacheUpdate();
+ if (object.databaseId != null)
+ if ($util.Long)
+ (message.databaseId = $util.Long.fromValue(object.databaseId)).unsigned = true;
+ else if (typeof object.databaseId === "string")
+ message.databaseId = parseInt(object.databaseId, 10);
+ else if (typeof object.databaseId === "number")
+ message.databaseId = object.databaseId;
+ else if (typeof object.databaseId === "object")
+ message.databaseId = new $util.LongBits(object.databaseId.low >>> 0, object.databaseId.high >>> 0).toNumber(true);
+ if (object.range) {
+ if (!Array.isArray(object.range))
+ throw TypeError(".google.spanner.v1.CacheUpdate.range: array expected");
+ message.range = [];
+ for (var i = 0; i < object.range.length; ++i) {
+ if (typeof object.range[i] !== "object")
+ throw TypeError(".google.spanner.v1.CacheUpdate.range: object expected");
+ message.range[i] = $root.google.spanner.v1.Range.fromObject(object.range[i]);
}
}
- if (object.ranges) {
- if (!Array.isArray(object.ranges))
- throw TypeError(".google.spanner.v1.KeySet.ranges: array expected");
- message.ranges = [];
- for (var i = 0; i < object.ranges.length; ++i) {
- if (typeof object.ranges[i] !== "object")
- throw TypeError(".google.spanner.v1.KeySet.ranges: object expected");
- message.ranges[i] = $root.google.spanner.v1.KeyRange.fromObject(object.ranges[i]);
+ if (object.group) {
+ if (!Array.isArray(object.group))
+ throw TypeError(".google.spanner.v1.CacheUpdate.group: array expected");
+ message.group = [];
+ for (var i = 0; i < object.group.length; ++i) {
+ if (typeof object.group[i] !== "object")
+ throw TypeError(".google.spanner.v1.CacheUpdate.group: object expected");
+ message.group[i] = $root.google.spanner.v1.Group.fromObject(object.group[i]);
}
}
- if (object.all != null)
- message.all = Boolean(object.all);
+ if (object.keyRecipes != null) {
+ if (typeof object.keyRecipes !== "object")
+ throw TypeError(".google.spanner.v1.CacheUpdate.keyRecipes: object expected");
+ message.keyRecipes = $root.google.spanner.v1.RecipeList.fromObject(object.keyRecipes);
+ }
return message;
};
/**
- * Creates a plain object from a KeySet message. Also converts values to other types if specified.
+ * Creates a plain object from a CacheUpdate message. Also converts values to other types if specified.
* @function toObject
- * @memberof google.spanner.v1.KeySet
+ * @memberof google.spanner.v1.CacheUpdate
* @static
- * @param {google.spanner.v1.KeySet} message KeySet
+ * @param {google.spanner.v1.CacheUpdate} message CacheUpdate
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.} Plain object
*/
- KeySet.toObject = function toObject(message, options) {
+ CacheUpdate.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
if (options.arrays || options.defaults) {
- object.keys = [];
- object.ranges = [];
+ object.range = [];
+ object.group = [];
}
- if (options.defaults)
- object.all = false;
- if (message.keys && message.keys.length) {
- object.keys = [];
- for (var j = 0; j < message.keys.length; ++j)
- object.keys[j] = $root.google.protobuf.ListValue.toObject(message.keys[j], options);
+ if (options.defaults) {
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.databaseId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.databaseId = options.longs === String ? "0" : 0;
+ object.keyRecipes = null;
}
- if (message.ranges && message.ranges.length) {
- object.ranges = [];
- for (var j = 0; j < message.ranges.length; ++j)
- object.ranges[j] = $root.google.spanner.v1.KeyRange.toObject(message.ranges[j], options);
+ if (message.databaseId != null && message.hasOwnProperty("databaseId"))
+ if (typeof message.databaseId === "number")
+ object.databaseId = options.longs === String ? String(message.databaseId) : message.databaseId;
+ else
+ object.databaseId = options.longs === String ? $util.Long.prototype.toString.call(message.databaseId) : options.longs === Number ? new $util.LongBits(message.databaseId.low >>> 0, message.databaseId.high >>> 0).toNumber(true) : message.databaseId;
+ if (message.range && message.range.length) {
+ object.range = [];
+ for (var j = 0; j < message.range.length; ++j)
+ object.range[j] = $root.google.spanner.v1.Range.toObject(message.range[j], options);
}
- if (message.all != null && message.hasOwnProperty("all"))
- object.all = message.all;
+ if (message.group && message.group.length) {
+ object.group = [];
+ for (var j = 0; j < message.group.length; ++j)
+ object.group[j] = $root.google.spanner.v1.Group.toObject(message.group[j], options);
+ }
+ if (message.keyRecipes != null && message.hasOwnProperty("keyRecipes"))
+ object.keyRecipes = $root.google.spanner.v1.RecipeList.toObject(message.keyRecipes, options);
return object;
};
/**
- * Converts this KeySet to JSON.
+ * Converts this CacheUpdate to JSON.
* @function toJSON
- * @memberof google.spanner.v1.KeySet
+ * @memberof google.spanner.v1.CacheUpdate
* @instance
* @returns {Object.} JSON object
*/
- KeySet.prototype.toJSON = function toJSON() {
+ CacheUpdate.prototype.toJSON = function toJSON() {
return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};
/**
- * Gets the default type url for KeySet
+ * Gets the default type url for CacheUpdate
* @function getTypeUrl
- * @memberof google.spanner.v1.KeySet
+ * @memberof google.spanner.v1.CacheUpdate
* @static
* @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns {string} The default type url
*/
- KeySet.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ CacheUpdate.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
if (typeUrlPrefix === undefined) {
typeUrlPrefix = "type.googleapis.com";
}
- return typeUrlPrefix + "/google.spanner.v1.KeySet";
+ return typeUrlPrefix + "/google.spanner.v1.CacheUpdate";
};
- return KeySet;
+ return CacheUpdate;
})();
- v1.Range = (function() {
+ v1.RoutingHint = (function() {
/**
- * Properties of a Range.
+ * Properties of a RoutingHint.
* @memberof google.spanner.v1
- * @interface IRange
- * @property {Uint8Array|null} [startKey] Range startKey
- * @property {Uint8Array|null} [limitKey] Range limitKey
- * @property {number|Long|null} [groupUid] Range groupUid
- * @property {number|Long|null} [splitId] Range splitId
- * @property {Uint8Array|null} [generation] Range generation
+ * @interface IRoutingHint
+ * @property {number|Long|null} [operationUid] RoutingHint operationUid
+ * @property {number|Long|null} [databaseId] RoutingHint databaseId
+ * @property {Uint8Array|null} [schemaGeneration] RoutingHint schemaGeneration
+ * @property {Uint8Array|null} [key] RoutingHint key
+ * @property {Uint8Array|null} [limitKey] RoutingHint limitKey
+ * @property {number|Long|null} [groupUid] RoutingHint groupUid
+ * @property {number|Long|null} [splitId] RoutingHint splitId
+ * @property {number|Long|null} [tabletUid] RoutingHint tabletUid
+ * @property {Array.|null} [skippedTabletUid] RoutingHint skippedTabletUid
+ * @property {string|null} [clientLocation] RoutingHint clientLocation
*/
/**
- * Constructs a new Range.
+ * Constructs a new RoutingHint.
* @memberof google.spanner.v1
- * @classdesc Represents a Range.
- * @implements IRange
+ * @classdesc Represents a RoutingHint.
+ * @implements IRoutingHint
* @constructor
- * @param {google.spanner.v1.IRange=} [properties] Properties to set
+ * @param {google.spanner.v1.IRoutingHint=} [properties] Properties to set
*/
- function Range(properties) {
+ function RoutingHint(properties) {
+ this.skippedTabletUid = [];
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
@@ -89460,133 +89506,206 @@
}
/**
- * Range startKey.
- * @member {Uint8Array} startKey
- * @memberof google.spanner.v1.Range
+ * RoutingHint operationUid.
+ * @member {number|Long} operationUid
+ * @memberof google.spanner.v1.RoutingHint
* @instance
*/
- Range.prototype.startKey = $util.newBuffer([]);
+ RoutingHint.prototype.operationUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
/**
- * Range limitKey.
+ * RoutingHint databaseId.
+ * @member {number|Long} databaseId
+ * @memberof google.spanner.v1.RoutingHint
+ * @instance
+ */
+ RoutingHint.prototype.databaseId = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
+
+ /**
+ * RoutingHint schemaGeneration.
+ * @member {Uint8Array} schemaGeneration
+ * @memberof google.spanner.v1.RoutingHint
+ * @instance
+ */
+ RoutingHint.prototype.schemaGeneration = $util.newBuffer([]);
+
+ /**
+ * RoutingHint key.
+ * @member {Uint8Array} key
+ * @memberof google.spanner.v1.RoutingHint
+ * @instance
+ */
+ RoutingHint.prototype.key = $util.newBuffer([]);
+
+ /**
+ * RoutingHint limitKey.
* @member {Uint8Array} limitKey
- * @memberof google.spanner.v1.Range
+ * @memberof google.spanner.v1.RoutingHint
* @instance
*/
- Range.prototype.limitKey = $util.newBuffer([]);
+ RoutingHint.prototype.limitKey = $util.newBuffer([]);
/**
- * Range groupUid.
+ * RoutingHint groupUid.
* @member {number|Long} groupUid
- * @memberof google.spanner.v1.Range
+ * @memberof google.spanner.v1.RoutingHint
* @instance
*/
- Range.prototype.groupUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
+ RoutingHint.prototype.groupUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
/**
- * Range splitId.
+ * RoutingHint splitId.
* @member {number|Long} splitId
- * @memberof google.spanner.v1.Range
+ * @memberof google.spanner.v1.RoutingHint
* @instance
*/
- Range.prototype.splitId = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
+ RoutingHint.prototype.splitId = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
/**
- * Range generation.
- * @member {Uint8Array} generation
- * @memberof google.spanner.v1.Range
+ * RoutingHint tabletUid.
+ * @member {number|Long} tabletUid
+ * @memberof google.spanner.v1.RoutingHint
* @instance
*/
- Range.prototype.generation = $util.newBuffer([]);
+ RoutingHint.prototype.tabletUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
/**
- * Creates a new Range instance using the specified properties.
+ * RoutingHint skippedTabletUid.
+ * @member {Array.} skippedTabletUid
+ * @memberof google.spanner.v1.RoutingHint
+ * @instance
+ */
+ RoutingHint.prototype.skippedTabletUid = $util.emptyArray;
+
+ /**
+ * RoutingHint clientLocation.
+ * @member {string} clientLocation
+ * @memberof google.spanner.v1.RoutingHint
+ * @instance
+ */
+ RoutingHint.prototype.clientLocation = "";
+
+ /**
+ * Creates a new RoutingHint instance using the specified properties.
* @function create
- * @memberof google.spanner.v1.Range
+ * @memberof google.spanner.v1.RoutingHint
* @static
- * @param {google.spanner.v1.IRange=} [properties] Properties to set
- * @returns {google.spanner.v1.Range} Range instance
+ * @param {google.spanner.v1.IRoutingHint=} [properties] Properties to set
+ * @returns {google.spanner.v1.RoutingHint} RoutingHint instance
*/
- Range.create = function create(properties) {
- return new Range(properties);
+ RoutingHint.create = function create(properties) {
+ return new RoutingHint(properties);
};
/**
- * Encodes the specified Range message. Does not implicitly {@link google.spanner.v1.Range.verify|verify} messages.
+ * Encodes the specified RoutingHint message. Does not implicitly {@link google.spanner.v1.RoutingHint.verify|verify} messages.
* @function encode
- * @memberof google.spanner.v1.Range
+ * @memberof google.spanner.v1.RoutingHint
* @static
- * @param {google.spanner.v1.IRange} message Range message or plain object to encode
+ * @param {google.spanner.v1.IRoutingHint} message RoutingHint message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- Range.encode = function encode(message, writer) {
+ RoutingHint.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
- if (message.startKey != null && Object.hasOwnProperty.call(message, "startKey"))
- writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startKey);
+ if (message.operationUid != null && Object.hasOwnProperty.call(message, "operationUid"))
+ writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.operationUid);
+ if (message.databaseId != null && Object.hasOwnProperty.call(message, "databaseId"))
+ writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.databaseId);
+ if (message.schemaGeneration != null && Object.hasOwnProperty.call(message, "schemaGeneration"))
+ writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.schemaGeneration);
+ if (message.key != null && Object.hasOwnProperty.call(message, "key"))
+ writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.key);
if (message.limitKey != null && Object.hasOwnProperty.call(message, "limitKey"))
- writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.limitKey);
+ writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.limitKey);
if (message.groupUid != null && Object.hasOwnProperty.call(message, "groupUid"))
- writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.groupUid);
+ writer.uint32(/* id 6, wireType 0 =*/48).uint64(message.groupUid);
if (message.splitId != null && Object.hasOwnProperty.call(message, "splitId"))
- writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.splitId);
- if (message.generation != null && Object.hasOwnProperty.call(message, "generation"))
- writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.generation);
+ writer.uint32(/* id 7, wireType 0 =*/56).uint64(message.splitId);
+ if (message.tabletUid != null && Object.hasOwnProperty.call(message, "tabletUid"))
+ writer.uint32(/* id 8, wireType 0 =*/64).uint64(message.tabletUid);
+ if (message.skippedTabletUid != null && message.skippedTabletUid.length)
+ for (var i = 0; i < message.skippedTabletUid.length; ++i)
+ $root.google.spanner.v1.RoutingHint.SkippedTablet.encode(message.skippedTabletUid[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();
+ if (message.clientLocation != null && Object.hasOwnProperty.call(message, "clientLocation"))
+ writer.uint32(/* id 10, wireType 2 =*/82).string(message.clientLocation);
return writer;
};
/**
- * Encodes the specified Range message, length delimited. Does not implicitly {@link google.spanner.v1.Range.verify|verify} messages.
+ * Encodes the specified RoutingHint message, length delimited. Does not implicitly {@link google.spanner.v1.RoutingHint.verify|verify} messages.
* @function encodeDelimited
- * @memberof google.spanner.v1.Range
+ * @memberof google.spanner.v1.RoutingHint
* @static
- * @param {google.spanner.v1.IRange} message Range message or plain object to encode
+ * @param {google.spanner.v1.IRoutingHint} message RoutingHint message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- Range.encodeDelimited = function encodeDelimited(message, writer) {
+ RoutingHint.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
- * Decodes a Range message from the specified reader or buffer.
+ * Decodes a RoutingHint message from the specified reader or buffer.
* @function decode
- * @memberof google.spanner.v1.Range
+ * @memberof google.spanner.v1.RoutingHint
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.Range} Range
+ * @returns {google.spanner.v1.RoutingHint} RoutingHint
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- Range.decode = function decode(reader, length, error) {
+ RoutingHint.decode = function decode(reader, length, error) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.Range();
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.RoutingHint();
while (reader.pos < end) {
var tag = reader.uint32();
if (tag === error)
break;
switch (tag >>> 3) {
case 1: {
- message.startKey = reader.bytes();
+ message.operationUid = reader.uint64();
break;
}
case 2: {
- message.limitKey = reader.bytes();
+ message.databaseId = reader.uint64();
break;
}
case 3: {
- message.groupUid = reader.uint64();
+ message.schemaGeneration = reader.bytes();
break;
}
case 4: {
+ message.key = reader.bytes();
+ break;
+ }
+ case 5: {
+ message.limitKey = reader.bytes();
+ break;
+ }
+ case 6: {
+ message.groupUid = reader.uint64();
+ break;
+ }
+ case 7: {
message.splitId = reader.uint64();
break;
}
- case 5: {
- message.generation = reader.bytes();
+ case 8: {
+ message.tabletUid = reader.uint64();
+ break;
+ }
+ case 9: {
+ if (!(message.skippedTabletUid && message.skippedTabletUid.length))
+ message.skippedTabletUid = [];
+ message.skippedTabletUid.push($root.google.spanner.v1.RoutingHint.SkippedTablet.decode(reader, reader.uint32()));
+ break;
+ }
+ case 10: {
+ message.clientLocation = reader.string();
break;
}
default:
@@ -89598,216 +89717,566 @@
};
/**
- * Decodes a Range message from the specified reader or buffer, length delimited.
+ * Decodes a RoutingHint message from the specified reader or buffer, length delimited.
* @function decodeDelimited
- * @memberof google.spanner.v1.Range
+ * @memberof google.spanner.v1.RoutingHint
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.Range} Range
+ * @returns {google.spanner.v1.RoutingHint} RoutingHint
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- Range.decodeDelimited = function decodeDelimited(reader) {
+ RoutingHint.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
- * Verifies a Range message.
- * @function verify
- * @memberof google.spanner.v1.Range
- * @static
- * @param {Object.} message Plain object to verify
- * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ * Verifies a RoutingHint message.
+ * @function verify
+ * @memberof google.spanner.v1.RoutingHint
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ RoutingHint.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.operationUid != null && message.hasOwnProperty("operationUid"))
+ if (!$util.isInteger(message.operationUid) && !(message.operationUid && $util.isInteger(message.operationUid.low) && $util.isInteger(message.operationUid.high)))
+ return "operationUid: integer|Long expected";
+ if (message.databaseId != null && message.hasOwnProperty("databaseId"))
+ if (!$util.isInteger(message.databaseId) && !(message.databaseId && $util.isInteger(message.databaseId.low) && $util.isInteger(message.databaseId.high)))
+ return "databaseId: integer|Long expected";
+ if (message.schemaGeneration != null && message.hasOwnProperty("schemaGeneration"))
+ if (!(message.schemaGeneration && typeof message.schemaGeneration.length === "number" || $util.isString(message.schemaGeneration)))
+ return "schemaGeneration: buffer expected";
+ if (message.key != null && message.hasOwnProperty("key"))
+ if (!(message.key && typeof message.key.length === "number" || $util.isString(message.key)))
+ return "key: buffer expected";
+ if (message.limitKey != null && message.hasOwnProperty("limitKey"))
+ if (!(message.limitKey && typeof message.limitKey.length === "number" || $util.isString(message.limitKey)))
+ return "limitKey: buffer expected";
+ if (message.groupUid != null && message.hasOwnProperty("groupUid"))
+ if (!$util.isInteger(message.groupUid) && !(message.groupUid && $util.isInteger(message.groupUid.low) && $util.isInteger(message.groupUid.high)))
+ return "groupUid: integer|Long expected";
+ if (message.splitId != null && message.hasOwnProperty("splitId"))
+ if (!$util.isInteger(message.splitId) && !(message.splitId && $util.isInteger(message.splitId.low) && $util.isInteger(message.splitId.high)))
+ return "splitId: integer|Long expected";
+ if (message.tabletUid != null && message.hasOwnProperty("tabletUid"))
+ if (!$util.isInteger(message.tabletUid) && !(message.tabletUid && $util.isInteger(message.tabletUid.low) && $util.isInteger(message.tabletUid.high)))
+ return "tabletUid: integer|Long expected";
+ if (message.skippedTabletUid != null && message.hasOwnProperty("skippedTabletUid")) {
+ if (!Array.isArray(message.skippedTabletUid))
+ return "skippedTabletUid: array expected";
+ for (var i = 0; i < message.skippedTabletUid.length; ++i) {
+ var error = $root.google.spanner.v1.RoutingHint.SkippedTablet.verify(message.skippedTabletUid[i]);
+ if (error)
+ return "skippedTabletUid." + error;
+ }
+ }
+ if (message.clientLocation != null && message.hasOwnProperty("clientLocation"))
+ if (!$util.isString(message.clientLocation))
+ return "clientLocation: string expected";
+ return null;
+ };
+
+ /**
+ * Creates a RoutingHint message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.spanner.v1.RoutingHint
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.spanner.v1.RoutingHint} RoutingHint
+ */
+ RoutingHint.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.RoutingHint)
+ return object;
+ var message = new $root.google.spanner.v1.RoutingHint();
+ if (object.operationUid != null)
+ if ($util.Long)
+ (message.operationUid = $util.Long.fromValue(object.operationUid)).unsigned = true;
+ else if (typeof object.operationUid === "string")
+ message.operationUid = parseInt(object.operationUid, 10);
+ else if (typeof object.operationUid === "number")
+ message.operationUid = object.operationUid;
+ else if (typeof object.operationUid === "object")
+ message.operationUid = new $util.LongBits(object.operationUid.low >>> 0, object.operationUid.high >>> 0).toNumber(true);
+ if (object.databaseId != null)
+ if ($util.Long)
+ (message.databaseId = $util.Long.fromValue(object.databaseId)).unsigned = true;
+ else if (typeof object.databaseId === "string")
+ message.databaseId = parseInt(object.databaseId, 10);
+ else if (typeof object.databaseId === "number")
+ message.databaseId = object.databaseId;
+ else if (typeof object.databaseId === "object")
+ message.databaseId = new $util.LongBits(object.databaseId.low >>> 0, object.databaseId.high >>> 0).toNumber(true);
+ if (object.schemaGeneration != null)
+ if (typeof object.schemaGeneration === "string")
+ $util.base64.decode(object.schemaGeneration, message.schemaGeneration = $util.newBuffer($util.base64.length(object.schemaGeneration)), 0);
+ else if (object.schemaGeneration.length >= 0)
+ message.schemaGeneration = object.schemaGeneration;
+ if (object.key != null)
+ if (typeof object.key === "string")
+ $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);
+ else if (object.key.length >= 0)
+ message.key = object.key;
+ if (object.limitKey != null)
+ if (typeof object.limitKey === "string")
+ $util.base64.decode(object.limitKey, message.limitKey = $util.newBuffer($util.base64.length(object.limitKey)), 0);
+ else if (object.limitKey.length >= 0)
+ message.limitKey = object.limitKey;
+ if (object.groupUid != null)
+ if ($util.Long)
+ (message.groupUid = $util.Long.fromValue(object.groupUid)).unsigned = true;
+ else if (typeof object.groupUid === "string")
+ message.groupUid = parseInt(object.groupUid, 10);
+ else if (typeof object.groupUid === "number")
+ message.groupUid = object.groupUid;
+ else if (typeof object.groupUid === "object")
+ message.groupUid = new $util.LongBits(object.groupUid.low >>> 0, object.groupUid.high >>> 0).toNumber(true);
+ if (object.splitId != null)
+ if ($util.Long)
+ (message.splitId = $util.Long.fromValue(object.splitId)).unsigned = true;
+ else if (typeof object.splitId === "string")
+ message.splitId = parseInt(object.splitId, 10);
+ else if (typeof object.splitId === "number")
+ message.splitId = object.splitId;
+ else if (typeof object.splitId === "object")
+ message.splitId = new $util.LongBits(object.splitId.low >>> 0, object.splitId.high >>> 0).toNumber(true);
+ if (object.tabletUid != null)
+ if ($util.Long)
+ (message.tabletUid = $util.Long.fromValue(object.tabletUid)).unsigned = true;
+ else if (typeof object.tabletUid === "string")
+ message.tabletUid = parseInt(object.tabletUid, 10);
+ else if (typeof object.tabletUid === "number")
+ message.tabletUid = object.tabletUid;
+ else if (typeof object.tabletUid === "object")
+ message.tabletUid = new $util.LongBits(object.tabletUid.low >>> 0, object.tabletUid.high >>> 0).toNumber(true);
+ if (object.skippedTabletUid) {
+ if (!Array.isArray(object.skippedTabletUid))
+ throw TypeError(".google.spanner.v1.RoutingHint.skippedTabletUid: array expected");
+ message.skippedTabletUid = [];
+ for (var i = 0; i < object.skippedTabletUid.length; ++i) {
+ if (typeof object.skippedTabletUid[i] !== "object")
+ throw TypeError(".google.spanner.v1.RoutingHint.skippedTabletUid: object expected");
+ message.skippedTabletUid[i] = $root.google.spanner.v1.RoutingHint.SkippedTablet.fromObject(object.skippedTabletUid[i]);
+ }
+ }
+ if (object.clientLocation != null)
+ message.clientLocation = String(object.clientLocation);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a RoutingHint message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.spanner.v1.RoutingHint
+ * @static
+ * @param {google.spanner.v1.RoutingHint} message RoutingHint
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ RoutingHint.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.skippedTabletUid = [];
+ if (options.defaults) {
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.operationUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.operationUid = options.longs === String ? "0" : 0;
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.databaseId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.databaseId = options.longs === String ? "0" : 0;
+ if (options.bytes === String)
+ object.schemaGeneration = "";
+ else {
+ object.schemaGeneration = [];
+ if (options.bytes !== Array)
+ object.schemaGeneration = $util.newBuffer(object.schemaGeneration);
+ }
+ if (options.bytes === String)
+ object.key = "";
+ else {
+ object.key = [];
+ if (options.bytes !== Array)
+ object.key = $util.newBuffer(object.key);
+ }
+ if (options.bytes === String)
+ object.limitKey = "";
+ else {
+ object.limitKey = [];
+ if (options.bytes !== Array)
+ object.limitKey = $util.newBuffer(object.limitKey);
+ }
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.groupUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.groupUid = options.longs === String ? "0" : 0;
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.splitId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.splitId = options.longs === String ? "0" : 0;
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.tabletUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.tabletUid = options.longs === String ? "0" : 0;
+ object.clientLocation = "";
+ }
+ if (message.operationUid != null && message.hasOwnProperty("operationUid"))
+ if (typeof message.operationUid === "number")
+ object.operationUid = options.longs === String ? String(message.operationUid) : message.operationUid;
+ else
+ object.operationUid = options.longs === String ? $util.Long.prototype.toString.call(message.operationUid) : options.longs === Number ? new $util.LongBits(message.operationUid.low >>> 0, message.operationUid.high >>> 0).toNumber(true) : message.operationUid;
+ if (message.databaseId != null && message.hasOwnProperty("databaseId"))
+ if (typeof message.databaseId === "number")
+ object.databaseId = options.longs === String ? String(message.databaseId) : message.databaseId;
+ else
+ object.databaseId = options.longs === String ? $util.Long.prototype.toString.call(message.databaseId) : options.longs === Number ? new $util.LongBits(message.databaseId.low >>> 0, message.databaseId.high >>> 0).toNumber(true) : message.databaseId;
+ if (message.schemaGeneration != null && message.hasOwnProperty("schemaGeneration"))
+ object.schemaGeneration = options.bytes === String ? $util.base64.encode(message.schemaGeneration, 0, message.schemaGeneration.length) : options.bytes === Array ? Array.prototype.slice.call(message.schemaGeneration) : message.schemaGeneration;
+ if (message.key != null && message.hasOwnProperty("key"))
+ object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;
+ if (message.limitKey != null && message.hasOwnProperty("limitKey"))
+ object.limitKey = options.bytes === String ? $util.base64.encode(message.limitKey, 0, message.limitKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.limitKey) : message.limitKey;
+ if (message.groupUid != null && message.hasOwnProperty("groupUid"))
+ if (typeof message.groupUid === "number")
+ object.groupUid = options.longs === String ? String(message.groupUid) : message.groupUid;
+ else
+ object.groupUid = options.longs === String ? $util.Long.prototype.toString.call(message.groupUid) : options.longs === Number ? new $util.LongBits(message.groupUid.low >>> 0, message.groupUid.high >>> 0).toNumber(true) : message.groupUid;
+ if (message.splitId != null && message.hasOwnProperty("splitId"))
+ if (typeof message.splitId === "number")
+ object.splitId = options.longs === String ? String(message.splitId) : message.splitId;
+ else
+ object.splitId = options.longs === String ? $util.Long.prototype.toString.call(message.splitId) : options.longs === Number ? new $util.LongBits(message.splitId.low >>> 0, message.splitId.high >>> 0).toNumber(true) : message.splitId;
+ if (message.tabletUid != null && message.hasOwnProperty("tabletUid"))
+ if (typeof message.tabletUid === "number")
+ object.tabletUid = options.longs === String ? String(message.tabletUid) : message.tabletUid;
+ else
+ object.tabletUid = options.longs === String ? $util.Long.prototype.toString.call(message.tabletUid) : options.longs === Number ? new $util.LongBits(message.tabletUid.low >>> 0, message.tabletUid.high >>> 0).toNumber(true) : message.tabletUid;
+ if (message.skippedTabletUid && message.skippedTabletUid.length) {
+ object.skippedTabletUid = [];
+ for (var j = 0; j < message.skippedTabletUid.length; ++j)
+ object.skippedTabletUid[j] = $root.google.spanner.v1.RoutingHint.SkippedTablet.toObject(message.skippedTabletUid[j], options);
+ }
+ if (message.clientLocation != null && message.hasOwnProperty("clientLocation"))
+ object.clientLocation = message.clientLocation;
+ return object;
+ };
+
+ /**
+ * Converts this RoutingHint to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.RoutingHint
+ * @instance
+ * @returns {Object.} JSON object
*/
- Range.verify = function verify(message) {
- if (typeof message !== "object" || message === null)
- return "object expected";
- if (message.startKey != null && message.hasOwnProperty("startKey"))
- if (!(message.startKey && typeof message.startKey.length === "number" || $util.isString(message.startKey)))
- return "startKey: buffer expected";
- if (message.limitKey != null && message.hasOwnProperty("limitKey"))
- if (!(message.limitKey && typeof message.limitKey.length === "number" || $util.isString(message.limitKey)))
- return "limitKey: buffer expected";
- if (message.groupUid != null && message.hasOwnProperty("groupUid"))
- if (!$util.isInteger(message.groupUid) && !(message.groupUid && $util.isInteger(message.groupUid.low) && $util.isInteger(message.groupUid.high)))
- return "groupUid: integer|Long expected";
- if (message.splitId != null && message.hasOwnProperty("splitId"))
- if (!$util.isInteger(message.splitId) && !(message.splitId && $util.isInteger(message.splitId.low) && $util.isInteger(message.splitId.high)))
- return "splitId: integer|Long expected";
- if (message.generation != null && message.hasOwnProperty("generation"))
- if (!(message.generation && typeof message.generation.length === "number" || $util.isString(message.generation)))
- return "generation: buffer expected";
- return null;
+ RoutingHint.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};
/**
- * Creates a Range message from a plain object. Also converts values to their respective internal types.
- * @function fromObject
- * @memberof google.spanner.v1.Range
+ * Gets the default type url for RoutingHint
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.RoutingHint
* @static
- * @param {Object.} object Plain object
- * @returns {google.spanner.v1.Range} Range
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
*/
- Range.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.Range)
- return object;
- var message = new $root.google.spanner.v1.Range();
- if (object.startKey != null)
- if (typeof object.startKey === "string")
- $util.base64.decode(object.startKey, message.startKey = $util.newBuffer($util.base64.length(object.startKey)), 0);
- else if (object.startKey.length >= 0)
- message.startKey = object.startKey;
- if (object.limitKey != null)
- if (typeof object.limitKey === "string")
- $util.base64.decode(object.limitKey, message.limitKey = $util.newBuffer($util.base64.length(object.limitKey)), 0);
- else if (object.limitKey.length >= 0)
- message.limitKey = object.limitKey;
- if (object.groupUid != null)
- if ($util.Long)
- (message.groupUid = $util.Long.fromValue(object.groupUid)).unsigned = true;
- else if (typeof object.groupUid === "string")
- message.groupUid = parseInt(object.groupUid, 10);
- else if (typeof object.groupUid === "number")
- message.groupUid = object.groupUid;
- else if (typeof object.groupUid === "object")
- message.groupUid = new $util.LongBits(object.groupUid.low >>> 0, object.groupUid.high >>> 0).toNumber(true);
- if (object.splitId != null)
- if ($util.Long)
- (message.splitId = $util.Long.fromValue(object.splitId)).unsigned = true;
- else if (typeof object.splitId === "string")
- message.splitId = parseInt(object.splitId, 10);
- else if (typeof object.splitId === "number")
- message.splitId = object.splitId;
- else if (typeof object.splitId === "object")
- message.splitId = new $util.LongBits(object.splitId.low >>> 0, object.splitId.high >>> 0).toNumber(true);
- if (object.generation != null)
- if (typeof object.generation === "string")
- $util.base64.decode(object.generation, message.generation = $util.newBuffer($util.base64.length(object.generation)), 0);
- else if (object.generation.length >= 0)
- message.generation = object.generation;
- return message;
+ RoutingHint.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.spanner.v1.RoutingHint";
};
- /**
- * Creates a plain object from a Range message. Also converts values to other types if specified.
- * @function toObject
- * @memberof google.spanner.v1.Range
- * @static
- * @param {google.spanner.v1.Range} message Range
- * @param {$protobuf.IConversionOptions} [options] Conversion options
- * @returns {Object.} Plain object
- */
- Range.toObject = function toObject(message, options) {
- if (!options)
- options = {};
- var object = {};
- if (options.defaults) {
- if (options.bytes === String)
- object.startKey = "";
- else {
- object.startKey = [];
- if (options.bytes !== Array)
- object.startKey = $util.newBuffer(object.startKey);
- }
- if (options.bytes === String)
- object.limitKey = "";
- else {
- object.limitKey = [];
- if (options.bytes !== Array)
- object.limitKey = $util.newBuffer(object.limitKey);
- }
- if ($util.Long) {
- var long = new $util.Long(0, 0, true);
- object.groupUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
- } else
- object.groupUid = options.longs === String ? "0" : 0;
- if ($util.Long) {
- var long = new $util.Long(0, 0, true);
- object.splitId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
- } else
- object.splitId = options.longs === String ? "0" : 0;
- if (options.bytes === String)
- object.generation = "";
- else {
- object.generation = [];
- if (options.bytes !== Array)
- object.generation = $util.newBuffer(object.generation);
+ RoutingHint.SkippedTablet = (function() {
+
+ /**
+ * Properties of a SkippedTablet.
+ * @memberof google.spanner.v1.RoutingHint
+ * @interface ISkippedTablet
+ * @property {number|Long|null} [tabletUid] SkippedTablet tabletUid
+ * @property {Uint8Array|null} [incarnation] SkippedTablet incarnation
+ */
+
+ /**
+ * Constructs a new SkippedTablet.
+ * @memberof google.spanner.v1.RoutingHint
+ * @classdesc Represents a SkippedTablet.
+ * @implements ISkippedTablet
+ * @constructor
+ * @param {google.spanner.v1.RoutingHint.ISkippedTablet=} [properties] Properties to set
+ */
+ function SkippedTablet(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * SkippedTablet tabletUid.
+ * @member {number|Long} tabletUid
+ * @memberof google.spanner.v1.RoutingHint.SkippedTablet
+ * @instance
+ */
+ SkippedTablet.prototype.tabletUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
+
+ /**
+ * SkippedTablet incarnation.
+ * @member {Uint8Array} incarnation
+ * @memberof google.spanner.v1.RoutingHint.SkippedTablet
+ * @instance
+ */
+ SkippedTablet.prototype.incarnation = $util.newBuffer([]);
+
+ /**
+ * Creates a new SkippedTablet instance using the specified properties.
+ * @function create
+ * @memberof google.spanner.v1.RoutingHint.SkippedTablet
+ * @static
+ * @param {google.spanner.v1.RoutingHint.ISkippedTablet=} [properties] Properties to set
+ * @returns {google.spanner.v1.RoutingHint.SkippedTablet} SkippedTablet instance
+ */
+ SkippedTablet.create = function create(properties) {
+ return new SkippedTablet(properties);
+ };
+
+ /**
+ * Encodes the specified SkippedTablet message. Does not implicitly {@link google.spanner.v1.RoutingHint.SkippedTablet.verify|verify} messages.
+ * @function encode
+ * @memberof google.spanner.v1.RoutingHint.SkippedTablet
+ * @static
+ * @param {google.spanner.v1.RoutingHint.ISkippedTablet} message SkippedTablet message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ SkippedTablet.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.tabletUid != null && Object.hasOwnProperty.call(message, "tabletUid"))
+ writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.tabletUid);
+ if (message.incarnation != null && Object.hasOwnProperty.call(message, "incarnation"))
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.incarnation);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified SkippedTablet message, length delimited. Does not implicitly {@link google.spanner.v1.RoutingHint.SkippedTablet.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.spanner.v1.RoutingHint.SkippedTablet
+ * @static
+ * @param {google.spanner.v1.RoutingHint.ISkippedTablet} message SkippedTablet message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ SkippedTablet.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a SkippedTablet message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.spanner.v1.RoutingHint.SkippedTablet
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.spanner.v1.RoutingHint.SkippedTablet} SkippedTablet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ SkippedTablet.decode = function decode(reader, length, error) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.RoutingHint.SkippedTablet();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ if (tag === error)
+ break;
+ switch (tag >>> 3) {
+ case 1: {
+ message.tabletUid = reader.uint64();
+ break;
+ }
+ case 2: {
+ message.incarnation = reader.bytes();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a SkippedTablet message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.spanner.v1.RoutingHint.SkippedTablet
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.spanner.v1.RoutingHint.SkippedTablet} SkippedTablet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ SkippedTablet.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a SkippedTablet message.
+ * @function verify
+ * @memberof google.spanner.v1.RoutingHint.SkippedTablet
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ SkippedTablet.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.tabletUid != null && message.hasOwnProperty("tabletUid"))
+ if (!$util.isInteger(message.tabletUid) && !(message.tabletUid && $util.isInteger(message.tabletUid.low) && $util.isInteger(message.tabletUid.high)))
+ return "tabletUid: integer|Long expected";
+ if (message.incarnation != null && message.hasOwnProperty("incarnation"))
+ if (!(message.incarnation && typeof message.incarnation.length === "number" || $util.isString(message.incarnation)))
+ return "incarnation: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a SkippedTablet message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.spanner.v1.RoutingHint.SkippedTablet
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.spanner.v1.RoutingHint.SkippedTablet} SkippedTablet
+ */
+ SkippedTablet.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.RoutingHint.SkippedTablet)
+ return object;
+ var message = new $root.google.spanner.v1.RoutingHint.SkippedTablet();
+ if (object.tabletUid != null)
+ if ($util.Long)
+ (message.tabletUid = $util.Long.fromValue(object.tabletUid)).unsigned = true;
+ else if (typeof object.tabletUid === "string")
+ message.tabletUid = parseInt(object.tabletUid, 10);
+ else if (typeof object.tabletUid === "number")
+ message.tabletUid = object.tabletUid;
+ else if (typeof object.tabletUid === "object")
+ message.tabletUid = new $util.LongBits(object.tabletUid.low >>> 0, object.tabletUid.high >>> 0).toNumber(true);
+ if (object.incarnation != null)
+ if (typeof object.incarnation === "string")
+ $util.base64.decode(object.incarnation, message.incarnation = $util.newBuffer($util.base64.length(object.incarnation)), 0);
+ else if (object.incarnation.length >= 0)
+ message.incarnation = object.incarnation;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a SkippedTablet message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.spanner.v1.RoutingHint.SkippedTablet
+ * @static
+ * @param {google.spanner.v1.RoutingHint.SkippedTablet} message SkippedTablet
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ SkippedTablet.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.tabletUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.tabletUid = options.longs === String ? "0" : 0;
+ if (options.bytes === String)
+ object.incarnation = "";
+ else {
+ object.incarnation = [];
+ if (options.bytes !== Array)
+ object.incarnation = $util.newBuffer(object.incarnation);
+ }
}
- }
- if (message.startKey != null && message.hasOwnProperty("startKey"))
- object.startKey = options.bytes === String ? $util.base64.encode(message.startKey, 0, message.startKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.startKey) : message.startKey;
- if (message.limitKey != null && message.hasOwnProperty("limitKey"))
- object.limitKey = options.bytes === String ? $util.base64.encode(message.limitKey, 0, message.limitKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.limitKey) : message.limitKey;
- if (message.groupUid != null && message.hasOwnProperty("groupUid"))
- if (typeof message.groupUid === "number")
- object.groupUid = options.longs === String ? String(message.groupUid) : message.groupUid;
- else
- object.groupUid = options.longs === String ? $util.Long.prototype.toString.call(message.groupUid) : options.longs === Number ? new $util.LongBits(message.groupUid.low >>> 0, message.groupUid.high >>> 0).toNumber(true) : message.groupUid;
- if (message.splitId != null && message.hasOwnProperty("splitId"))
- if (typeof message.splitId === "number")
- object.splitId = options.longs === String ? String(message.splitId) : message.splitId;
- else
- object.splitId = options.longs === String ? $util.Long.prototype.toString.call(message.splitId) : options.longs === Number ? new $util.LongBits(message.splitId.low >>> 0, message.splitId.high >>> 0).toNumber(true) : message.splitId;
- if (message.generation != null && message.hasOwnProperty("generation"))
- object.generation = options.bytes === String ? $util.base64.encode(message.generation, 0, message.generation.length) : options.bytes === Array ? Array.prototype.slice.call(message.generation) : message.generation;
- return object;
- };
+ if (message.tabletUid != null && message.hasOwnProperty("tabletUid"))
+ if (typeof message.tabletUid === "number")
+ object.tabletUid = options.longs === String ? String(message.tabletUid) : message.tabletUid;
+ else
+ object.tabletUid = options.longs === String ? $util.Long.prototype.toString.call(message.tabletUid) : options.longs === Number ? new $util.LongBits(message.tabletUid.low >>> 0, message.tabletUid.high >>> 0).toNumber(true) : message.tabletUid;
+ if (message.incarnation != null && message.hasOwnProperty("incarnation"))
+ object.incarnation = options.bytes === String ? $util.base64.encode(message.incarnation, 0, message.incarnation.length) : options.bytes === Array ? Array.prototype.slice.call(message.incarnation) : message.incarnation;
+ return object;
+ };
- /**
- * Converts this Range to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.Range
- * @instance
- * @returns {Object.} JSON object
- */
- Range.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
- };
+ /**
+ * Converts this SkippedTablet to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.RoutingHint.SkippedTablet
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ SkippedTablet.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
- /**
- * Gets the default type url for Range
- * @function getTypeUrl
- * @memberof google.spanner.v1.Range
- * @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
- */
- Range.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
- }
- return typeUrlPrefix + "/google.spanner.v1.Range";
- };
+ /**
+ * Gets the default type url for SkippedTablet
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.RoutingHint.SkippedTablet
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ SkippedTablet.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.spanner.v1.RoutingHint.SkippedTablet";
+ };
- return Range;
+ return SkippedTablet;
+ })();
+
+ return RoutingHint;
})();
- v1.Tablet = (function() {
+ v1.Type = (function() {
/**
- * Properties of a Tablet.
+ * Properties of a Type.
* @memberof google.spanner.v1
- * @interface ITablet
- * @property {number|Long|null} [tabletUid] Tablet tabletUid
- * @property {string|null} [serverAddress] Tablet serverAddress
- * @property {string|null} [location] Tablet location
- * @property {google.spanner.v1.Tablet.Role|null} [role] Tablet role
- * @property {Uint8Array|null} [incarnation] Tablet incarnation
- * @property {number|null} [distance] Tablet distance
- * @property {boolean|null} [skip] Tablet skip
+ * @interface IType
+ * @property {google.spanner.v1.TypeCode|null} [code] Type code
+ * @property {google.spanner.v1.IType|null} [arrayElementType] Type arrayElementType
+ * @property {google.spanner.v1.IStructType|null} [structType] Type structType
+ * @property {google.spanner.v1.TypeAnnotationCode|null} [typeAnnotation] Type typeAnnotation
+ * @property {string|null} [protoTypeFqn] Type protoTypeFqn
*/
/**
- * Constructs a new Tablet.
+ * Constructs a new Type.
* @memberof google.spanner.v1
- * @classdesc Represents a Tablet.
- * @implements ITablet
+ * @classdesc Represents a Type.
+ * @implements IType
* @constructor
- * @param {google.spanner.v1.ITablet=} [properties] Properties to set
+ * @param {google.spanner.v1.IType=} [properties] Properties to set
*/
- function Tablet(properties) {
+ function Type(properties) {
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
@@ -89815,161 +90284,133 @@
}
/**
- * Tablet tabletUid.
- * @member {number|Long} tabletUid
- * @memberof google.spanner.v1.Tablet
- * @instance
- */
- Tablet.prototype.tabletUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
-
- /**
- * Tablet serverAddress.
- * @member {string} serverAddress
- * @memberof google.spanner.v1.Tablet
- * @instance
- */
- Tablet.prototype.serverAddress = "";
-
- /**
- * Tablet location.
- * @member {string} location
- * @memberof google.spanner.v1.Tablet
+ * Type code.
+ * @member {google.spanner.v1.TypeCode} code
+ * @memberof google.spanner.v1.Type
* @instance
*/
- Tablet.prototype.location = "";
+ Type.prototype.code = 0;
/**
- * Tablet role.
- * @member {google.spanner.v1.Tablet.Role} role
- * @memberof google.spanner.v1.Tablet
+ * Type arrayElementType.
+ * @member {google.spanner.v1.IType|null|undefined} arrayElementType
+ * @memberof google.spanner.v1.Type
* @instance
*/
- Tablet.prototype.role = 0;
+ Type.prototype.arrayElementType = null;
/**
- * Tablet incarnation.
- * @member {Uint8Array} incarnation
- * @memberof google.spanner.v1.Tablet
+ * Type structType.
+ * @member {google.spanner.v1.IStructType|null|undefined} structType
+ * @memberof google.spanner.v1.Type
* @instance
*/
- Tablet.prototype.incarnation = $util.newBuffer([]);
+ Type.prototype.structType = null;
/**
- * Tablet distance.
- * @member {number} distance
- * @memberof google.spanner.v1.Tablet
+ * Type typeAnnotation.
+ * @member {google.spanner.v1.TypeAnnotationCode} typeAnnotation
+ * @memberof google.spanner.v1.Type
* @instance
*/
- Tablet.prototype.distance = 0;
+ Type.prototype.typeAnnotation = 0;
/**
- * Tablet skip.
- * @member {boolean} skip
- * @memberof google.spanner.v1.Tablet
+ * Type protoTypeFqn.
+ * @member {string} protoTypeFqn
+ * @memberof google.spanner.v1.Type
* @instance
*/
- Tablet.prototype.skip = false;
+ Type.prototype.protoTypeFqn = "";
/**
- * Creates a new Tablet instance using the specified properties.
+ * Creates a new Type instance using the specified properties.
* @function create
- * @memberof google.spanner.v1.Tablet
+ * @memberof google.spanner.v1.Type
* @static
- * @param {google.spanner.v1.ITablet=} [properties] Properties to set
- * @returns {google.spanner.v1.Tablet} Tablet instance
+ * @param {google.spanner.v1.IType=} [properties] Properties to set
+ * @returns {google.spanner.v1.Type} Type instance
*/
- Tablet.create = function create(properties) {
- return new Tablet(properties);
+ Type.create = function create(properties) {
+ return new Type(properties);
};
/**
- * Encodes the specified Tablet message. Does not implicitly {@link google.spanner.v1.Tablet.verify|verify} messages.
+ * Encodes the specified Type message. Does not implicitly {@link google.spanner.v1.Type.verify|verify} messages.
* @function encode
- * @memberof google.spanner.v1.Tablet
+ * @memberof google.spanner.v1.Type
* @static
- * @param {google.spanner.v1.ITablet} message Tablet message or plain object to encode
+ * @param {google.spanner.v1.IType} message Type message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- Tablet.encode = function encode(message, writer) {
+ Type.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
- if (message.tabletUid != null && Object.hasOwnProperty.call(message, "tabletUid"))
- writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.tabletUid);
- if (message.serverAddress != null && Object.hasOwnProperty.call(message, "serverAddress"))
- writer.uint32(/* id 2, wireType 2 =*/18).string(message.serverAddress);
- if (message.location != null && Object.hasOwnProperty.call(message, "location"))
- writer.uint32(/* id 3, wireType 2 =*/26).string(message.location);
- if (message.role != null && Object.hasOwnProperty.call(message, "role"))
- writer.uint32(/* id 4, wireType 0 =*/32).int32(message.role);
- if (message.incarnation != null && Object.hasOwnProperty.call(message, "incarnation"))
- writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.incarnation);
- if (message.distance != null && Object.hasOwnProperty.call(message, "distance"))
- writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.distance);
- if (message.skip != null && Object.hasOwnProperty.call(message, "skip"))
- writer.uint32(/* id 7, wireType 0 =*/56).bool(message.skip);
+ if (message.code != null && Object.hasOwnProperty.call(message, "code"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.code);
+ if (message.arrayElementType != null && Object.hasOwnProperty.call(message, "arrayElementType"))
+ $root.google.spanner.v1.Type.encode(message.arrayElementType, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.structType != null && Object.hasOwnProperty.call(message, "structType"))
+ $root.google.spanner.v1.StructType.encode(message.structType, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.typeAnnotation != null && Object.hasOwnProperty.call(message, "typeAnnotation"))
+ writer.uint32(/* id 4, wireType 0 =*/32).int32(message.typeAnnotation);
+ if (message.protoTypeFqn != null && Object.hasOwnProperty.call(message, "protoTypeFqn"))
+ writer.uint32(/* id 5, wireType 2 =*/42).string(message.protoTypeFqn);
return writer;
};
/**
- * Encodes the specified Tablet message, length delimited. Does not implicitly {@link google.spanner.v1.Tablet.verify|verify} messages.
+ * Encodes the specified Type message, length delimited. Does not implicitly {@link google.spanner.v1.Type.verify|verify} messages.
* @function encodeDelimited
- * @memberof google.spanner.v1.Tablet
+ * @memberof google.spanner.v1.Type
* @static
- * @param {google.spanner.v1.ITablet} message Tablet message or plain object to encode
+ * @param {google.spanner.v1.IType} message Type message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- Tablet.encodeDelimited = function encodeDelimited(message, writer) {
+ Type.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
- * Decodes a Tablet message from the specified reader or buffer.
+ * Decodes a Type message from the specified reader or buffer.
* @function decode
- * @memberof google.spanner.v1.Tablet
+ * @memberof google.spanner.v1.Type
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.Tablet} Tablet
+ * @returns {google.spanner.v1.Type} Type
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- Tablet.decode = function decode(reader, length, error) {
+ Type.decode = function decode(reader, length, error) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.Tablet();
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.Type();
while (reader.pos < end) {
var tag = reader.uint32();
if (tag === error)
break;
switch (tag >>> 3) {
case 1: {
- message.tabletUid = reader.uint64();
+ message.code = reader.int32();
break;
}
case 2: {
- message.serverAddress = reader.string();
+ message.arrayElementType = $root.google.spanner.v1.Type.decode(reader, reader.uint32());
break;
}
case 3: {
- message.location = reader.string();
+ message.structType = $root.google.spanner.v1.StructType.decode(reader, reader.uint32());
break;
}
case 4: {
- message.role = reader.int32();
+ message.typeAnnotation = reader.int32();
break;
}
case 5: {
- message.incarnation = reader.bytes();
- break;
- }
- case 6: {
- message.distance = reader.uint32();
- break;
- }
- case 7: {
- message.skip = reader.bool();
+ message.protoTypeFqn = reader.string();
break;
}
default:
@@ -89981,238 +90422,289 @@
};
/**
- * Decodes a Tablet message from the specified reader or buffer, length delimited.
+ * Decodes a Type message from the specified reader or buffer, length delimited.
* @function decodeDelimited
- * @memberof google.spanner.v1.Tablet
+ * @memberof google.spanner.v1.Type
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.Tablet} Tablet
+ * @returns {google.spanner.v1.Type} Type
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- Tablet.decodeDelimited = function decodeDelimited(reader) {
+ Type.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
- * Verifies a Tablet message.
+ * Verifies a Type message.
* @function verify
- * @memberof google.spanner.v1.Tablet
+ * @memberof google.spanner.v1.Type
* @static
* @param {Object.} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
- Tablet.verify = function verify(message) {
+ Type.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
- if (message.tabletUid != null && message.hasOwnProperty("tabletUid"))
- if (!$util.isInteger(message.tabletUid) && !(message.tabletUid && $util.isInteger(message.tabletUid.low) && $util.isInteger(message.tabletUid.high)))
- return "tabletUid: integer|Long expected";
- if (message.serverAddress != null && message.hasOwnProperty("serverAddress"))
- if (!$util.isString(message.serverAddress))
- return "serverAddress: string expected";
- if (message.location != null && message.hasOwnProperty("location"))
- if (!$util.isString(message.location))
- return "location: string expected";
- if (message.role != null && message.hasOwnProperty("role"))
- switch (message.role) {
+ if (message.code != null && message.hasOwnProperty("code"))
+ switch (message.code) {
default:
- return "role: enum value expected";
+ return "code: enum value expected";
case 0:
case 1:
case 2:
+ case 3:
+ case 15:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 13:
+ case 14:
+ case 16:
+ case 17:
break;
}
- if (message.incarnation != null && message.hasOwnProperty("incarnation"))
- if (!(message.incarnation && typeof message.incarnation.length === "number" || $util.isString(message.incarnation)))
- return "incarnation: buffer expected";
- if (message.distance != null && message.hasOwnProperty("distance"))
- if (!$util.isInteger(message.distance))
- return "distance: integer expected";
- if (message.skip != null && message.hasOwnProperty("skip"))
- if (typeof message.skip !== "boolean")
- return "skip: boolean expected";
+ if (message.arrayElementType != null && message.hasOwnProperty("arrayElementType")) {
+ var error = $root.google.spanner.v1.Type.verify(message.arrayElementType);
+ if (error)
+ return "arrayElementType." + error;
+ }
+ if (message.structType != null && message.hasOwnProperty("structType")) {
+ var error = $root.google.spanner.v1.StructType.verify(message.structType);
+ if (error)
+ return "structType." + error;
+ }
+ if (message.typeAnnotation != null && message.hasOwnProperty("typeAnnotation"))
+ switch (message.typeAnnotation) {
+ default:
+ return "typeAnnotation: enum value expected";
+ case 0:
+ case 2:
+ case 3:
+ case 4:
+ break;
+ }
+ if (message.protoTypeFqn != null && message.hasOwnProperty("protoTypeFqn"))
+ if (!$util.isString(message.protoTypeFqn))
+ return "protoTypeFqn: string expected";
return null;
};
/**
- * Creates a Tablet message from a plain object. Also converts values to their respective internal types.
+ * Creates a Type message from a plain object. Also converts values to their respective internal types.
* @function fromObject
- * @memberof google.spanner.v1.Tablet
+ * @memberof google.spanner.v1.Type
* @static
* @param {Object.} object Plain object
- * @returns {google.spanner.v1.Tablet} Tablet
+ * @returns {google.spanner.v1.Type} Type
*/
- Tablet.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.Tablet)
+ Type.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.Type)
return object;
- var message = new $root.google.spanner.v1.Tablet();
- if (object.tabletUid != null)
- if ($util.Long)
- (message.tabletUid = $util.Long.fromValue(object.tabletUid)).unsigned = true;
- else if (typeof object.tabletUid === "string")
- message.tabletUid = parseInt(object.tabletUid, 10);
- else if (typeof object.tabletUid === "number")
- message.tabletUid = object.tabletUid;
- else if (typeof object.tabletUid === "object")
- message.tabletUid = new $util.LongBits(object.tabletUid.low >>> 0, object.tabletUid.high >>> 0).toNumber(true);
- if (object.serverAddress != null)
- message.serverAddress = String(object.serverAddress);
- if (object.location != null)
- message.location = String(object.location);
- switch (object.role) {
+ var message = new $root.google.spanner.v1.Type();
+ switch (object.code) {
+ default:
+ if (typeof object.code === "number") {
+ message.code = object.code;
+ break;
+ }
+ break;
+ case "TYPE_CODE_UNSPECIFIED":
+ case 0:
+ message.code = 0;
+ break;
+ case "BOOL":
+ case 1:
+ message.code = 1;
+ break;
+ case "INT64":
+ case 2:
+ message.code = 2;
+ break;
+ case "FLOAT64":
+ case 3:
+ message.code = 3;
+ break;
+ case "FLOAT32":
+ case 15:
+ message.code = 15;
+ break;
+ case "TIMESTAMP":
+ case 4:
+ message.code = 4;
+ break;
+ case "DATE":
+ case 5:
+ message.code = 5;
+ break;
+ case "STRING":
+ case 6:
+ message.code = 6;
+ break;
+ case "BYTES":
+ case 7:
+ message.code = 7;
+ break;
+ case "ARRAY":
+ case 8:
+ message.code = 8;
+ break;
+ case "STRUCT":
+ case 9:
+ message.code = 9;
+ break;
+ case "NUMERIC":
+ case 10:
+ message.code = 10;
+ break;
+ case "JSON":
+ case 11:
+ message.code = 11;
+ break;
+ case "PROTO":
+ case 13:
+ message.code = 13;
+ break;
+ case "ENUM":
+ case 14:
+ message.code = 14;
+ break;
+ case "INTERVAL":
+ case 16:
+ message.code = 16;
+ break;
+ case "UUID":
+ case 17:
+ message.code = 17;
+ break;
+ }
+ if (object.arrayElementType != null) {
+ if (typeof object.arrayElementType !== "object")
+ throw TypeError(".google.spanner.v1.Type.arrayElementType: object expected");
+ message.arrayElementType = $root.google.spanner.v1.Type.fromObject(object.arrayElementType);
+ }
+ if (object.structType != null) {
+ if (typeof object.structType !== "object")
+ throw TypeError(".google.spanner.v1.Type.structType: object expected");
+ message.structType = $root.google.spanner.v1.StructType.fromObject(object.structType);
+ }
+ switch (object.typeAnnotation) {
default:
- if (typeof object.role === "number") {
- message.role = object.role;
+ if (typeof object.typeAnnotation === "number") {
+ message.typeAnnotation = object.typeAnnotation;
break;
}
break;
- case "ROLE_UNSPECIFIED":
+ case "TYPE_ANNOTATION_CODE_UNSPECIFIED":
case 0:
- message.role = 0;
- break;
- case "READ_WRITE":
- case 1:
- message.role = 1;
+ message.typeAnnotation = 0;
break;
- case "READ_ONLY":
+ case "PG_NUMERIC":
case 2:
- message.role = 2;
+ message.typeAnnotation = 2;
+ break;
+ case "PG_JSONB":
+ case 3:
+ message.typeAnnotation = 3;
+ break;
+ case "PG_OID":
+ case 4:
+ message.typeAnnotation = 4;
break;
}
- if (object.incarnation != null)
- if (typeof object.incarnation === "string")
- $util.base64.decode(object.incarnation, message.incarnation = $util.newBuffer($util.base64.length(object.incarnation)), 0);
- else if (object.incarnation.length >= 0)
- message.incarnation = object.incarnation;
- if (object.distance != null)
- message.distance = object.distance >>> 0;
- if (object.skip != null)
- message.skip = Boolean(object.skip);
+ if (object.protoTypeFqn != null)
+ message.protoTypeFqn = String(object.protoTypeFqn);
return message;
};
/**
- * Creates a plain object from a Tablet message. Also converts values to other types if specified.
+ * Creates a plain object from a Type message. Also converts values to other types if specified.
* @function toObject
- * @memberof google.spanner.v1.Tablet
+ * @memberof google.spanner.v1.Type
* @static
- * @param {google.spanner.v1.Tablet} message Tablet
+ * @param {google.spanner.v1.Type} message Type
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.} Plain object
*/
- Tablet.toObject = function toObject(message, options) {
+ Type.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
if (options.defaults) {
- if ($util.Long) {
- var long = new $util.Long(0, 0, true);
- object.tabletUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
- } else
- object.tabletUid = options.longs === String ? "0" : 0;
- object.serverAddress = "";
- object.location = "";
- object.role = options.enums === String ? "ROLE_UNSPECIFIED" : 0;
- if (options.bytes === String)
- object.incarnation = "";
- else {
- object.incarnation = [];
- if (options.bytes !== Array)
- object.incarnation = $util.newBuffer(object.incarnation);
- }
- object.distance = 0;
- object.skip = false;
+ object.code = options.enums === String ? "TYPE_CODE_UNSPECIFIED" : 0;
+ object.arrayElementType = null;
+ object.structType = null;
+ object.typeAnnotation = options.enums === String ? "TYPE_ANNOTATION_CODE_UNSPECIFIED" : 0;
+ object.protoTypeFqn = "";
}
- if (message.tabletUid != null && message.hasOwnProperty("tabletUid"))
- if (typeof message.tabletUid === "number")
- object.tabletUid = options.longs === String ? String(message.tabletUid) : message.tabletUid;
- else
- object.tabletUid = options.longs === String ? $util.Long.prototype.toString.call(message.tabletUid) : options.longs === Number ? new $util.LongBits(message.tabletUid.low >>> 0, message.tabletUid.high >>> 0).toNumber(true) : message.tabletUid;
- if (message.serverAddress != null && message.hasOwnProperty("serverAddress"))
- object.serverAddress = message.serverAddress;
- if (message.location != null && message.hasOwnProperty("location"))
- object.location = message.location;
- if (message.role != null && message.hasOwnProperty("role"))
- object.role = options.enums === String ? $root.google.spanner.v1.Tablet.Role[message.role] === undefined ? message.role : $root.google.spanner.v1.Tablet.Role[message.role] : message.role;
- if (message.incarnation != null && message.hasOwnProperty("incarnation"))
- object.incarnation = options.bytes === String ? $util.base64.encode(message.incarnation, 0, message.incarnation.length) : options.bytes === Array ? Array.prototype.slice.call(message.incarnation) : message.incarnation;
- if (message.distance != null && message.hasOwnProperty("distance"))
- object.distance = message.distance;
- if (message.skip != null && message.hasOwnProperty("skip"))
- object.skip = message.skip;
+ if (message.code != null && message.hasOwnProperty("code"))
+ object.code = options.enums === String ? $root.google.spanner.v1.TypeCode[message.code] === undefined ? message.code : $root.google.spanner.v1.TypeCode[message.code] : message.code;
+ if (message.arrayElementType != null && message.hasOwnProperty("arrayElementType"))
+ object.arrayElementType = $root.google.spanner.v1.Type.toObject(message.arrayElementType, options);
+ if (message.structType != null && message.hasOwnProperty("structType"))
+ object.structType = $root.google.spanner.v1.StructType.toObject(message.structType, options);
+ if (message.typeAnnotation != null && message.hasOwnProperty("typeAnnotation"))
+ object.typeAnnotation = options.enums === String ? $root.google.spanner.v1.TypeAnnotationCode[message.typeAnnotation] === undefined ? message.typeAnnotation : $root.google.spanner.v1.TypeAnnotationCode[message.typeAnnotation] : message.typeAnnotation;
+ if (message.protoTypeFqn != null && message.hasOwnProperty("protoTypeFqn"))
+ object.protoTypeFqn = message.protoTypeFqn;
return object;
};
/**
- * Converts this Tablet to JSON.
+ * Converts this Type to JSON.
* @function toJSON
- * @memberof google.spanner.v1.Tablet
+ * @memberof google.spanner.v1.Type
* @instance
* @returns {Object.} JSON object
*/
- Tablet.prototype.toJSON = function toJSON() {
+ Type.prototype.toJSON = function toJSON() {
return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};
/**
- * Gets the default type url for Tablet
+ * Gets the default type url for Type
* @function getTypeUrl
- * @memberof google.spanner.v1.Tablet
+ * @memberof google.spanner.v1.Type
* @static
* @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns {string} The default type url
*/
- Tablet.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ Type.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
if (typeUrlPrefix === undefined) {
typeUrlPrefix = "type.googleapis.com";
}
- return typeUrlPrefix + "/google.spanner.v1.Tablet";
+ return typeUrlPrefix + "/google.spanner.v1.Type";
};
- /**
- * Role enum.
- * @name google.spanner.v1.Tablet.Role
- * @enum {number}
- * @property {number} ROLE_UNSPECIFIED=0 ROLE_UNSPECIFIED value
- * @property {number} READ_WRITE=1 READ_WRITE value
- * @property {number} READ_ONLY=2 READ_ONLY value
- */
- Tablet.Role = (function() {
- var valuesById = {}, values = Object.create(valuesById);
- values[valuesById[0] = "ROLE_UNSPECIFIED"] = 0;
- values[valuesById[1] = "READ_WRITE"] = 1;
- values[valuesById[2] = "READ_ONLY"] = 2;
- return values;
- })();
-
- return Tablet;
+ return Type;
})();
- v1.Group = (function() {
+ v1.StructType = (function() {
/**
- * Properties of a Group.
+ * Properties of a StructType.
* @memberof google.spanner.v1
- * @interface IGroup
- * @property {number|Long|null} [groupUid] Group groupUid
- * @property {Array.|null} [tablets] Group tablets
- * @property {number|null} [leaderIndex] Group leaderIndex
- * @property {Uint8Array|null} [generation] Group generation
+ * @interface IStructType
+ * @property {Array.|null} [fields] StructType fields
*/
/**
- * Constructs a new Group.
+ * Constructs a new StructType.
* @memberof google.spanner.v1
- * @classdesc Represents a Group.
- * @implements IGroup
+ * @classdesc Represents a StructType.
+ * @implements IStructType
* @constructor
- * @param {google.spanner.v1.IGroup=} [properties] Properties to set
+ * @param {google.spanner.v1.IStructType=} [properties] Properties to set
*/
- function Group(properties) {
- this.tablets = [];
+ function StructType(properties) {
+ this.fields = [];
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
@@ -90220,122 +90712,80 @@
}
/**
- * Group groupUid.
- * @member {number|Long} groupUid
- * @memberof google.spanner.v1.Group
- * @instance
- */
- Group.prototype.groupUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
-
- /**
- * Group tablets.
- * @member {Array.} tablets
- * @memberof google.spanner.v1.Group
- * @instance
- */
- Group.prototype.tablets = $util.emptyArray;
-
- /**
- * Group leaderIndex.
- * @member {number} leaderIndex
- * @memberof google.spanner.v1.Group
- * @instance
- */
- Group.prototype.leaderIndex = 0;
-
- /**
- * Group generation.
- * @member {Uint8Array} generation
- * @memberof google.spanner.v1.Group
+ * StructType fields.
+ * @member {Array.} fields
+ * @memberof google.spanner.v1.StructType
* @instance
*/
- Group.prototype.generation = $util.newBuffer([]);
+ StructType.prototype.fields = $util.emptyArray;
/**
- * Creates a new Group instance using the specified properties.
+ * Creates a new StructType instance using the specified properties.
* @function create
- * @memberof google.spanner.v1.Group
+ * @memberof google.spanner.v1.StructType
* @static
- * @param {google.spanner.v1.IGroup=} [properties] Properties to set
- * @returns {google.spanner.v1.Group} Group instance
+ * @param {google.spanner.v1.IStructType=} [properties] Properties to set
+ * @returns {google.spanner.v1.StructType} StructType instance
*/
- Group.create = function create(properties) {
- return new Group(properties);
+ StructType.create = function create(properties) {
+ return new StructType(properties);
};
/**
- * Encodes the specified Group message. Does not implicitly {@link google.spanner.v1.Group.verify|verify} messages.
+ * Encodes the specified StructType message. Does not implicitly {@link google.spanner.v1.StructType.verify|verify} messages.
* @function encode
- * @memberof google.spanner.v1.Group
+ * @memberof google.spanner.v1.StructType
* @static
- * @param {google.spanner.v1.IGroup} message Group message or plain object to encode
+ * @param {google.spanner.v1.IStructType} message StructType message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- Group.encode = function encode(message, writer) {
+ StructType.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
- if (message.groupUid != null && Object.hasOwnProperty.call(message, "groupUid"))
- writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.groupUid);
- if (message.tablets != null && message.tablets.length)
- for (var i = 0; i < message.tablets.length; ++i)
- $root.google.spanner.v1.Tablet.encode(message.tablets[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
- if (message.leaderIndex != null && Object.hasOwnProperty.call(message, "leaderIndex"))
- writer.uint32(/* id 3, wireType 0 =*/24).int32(message.leaderIndex);
- if (message.generation != null && Object.hasOwnProperty.call(message, "generation"))
- writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.generation);
+ if (message.fields != null && message.fields.length)
+ for (var i = 0; i < message.fields.length; ++i)
+ $root.google.spanner.v1.StructType.Field.encode(message.fields[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
return writer;
};
/**
- * Encodes the specified Group message, length delimited. Does not implicitly {@link google.spanner.v1.Group.verify|verify} messages.
+ * Encodes the specified StructType message, length delimited. Does not implicitly {@link google.spanner.v1.StructType.verify|verify} messages.
* @function encodeDelimited
- * @memberof google.spanner.v1.Group
+ * @memberof google.spanner.v1.StructType
* @static
- * @param {google.spanner.v1.IGroup} message Group message or plain object to encode
+ * @param {google.spanner.v1.IStructType} message StructType message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- Group.encodeDelimited = function encodeDelimited(message, writer) {
+ StructType.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
- * Decodes a Group message from the specified reader or buffer.
+ * Decodes a StructType message from the specified reader or buffer.
* @function decode
- * @memberof google.spanner.v1.Group
+ * @memberof google.spanner.v1.StructType
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.Group} Group
+ * @returns {google.spanner.v1.StructType} StructType
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- Group.decode = function decode(reader, length, error) {
+ StructType.decode = function decode(reader, length, error) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.Group();
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.StructType();
while (reader.pos < end) {
var tag = reader.uint32();
if (tag === error)
break;
switch (tag >>> 3) {
case 1: {
- message.groupUid = reader.uint64();
- break;
- }
- case 2: {
- if (!(message.tablets && message.tablets.length))
- message.tablets = [];
- message.tablets.push($root.google.spanner.v1.Tablet.decode(reader, reader.uint32()));
- break;
- }
- case 3: {
- message.leaderIndex = reader.int32();
- break;
- }
- case 4: {
- message.generation = reader.bytes();
+ if (!(message.fields && message.fields.length))
+ message.fields = [];
+ message.fields.push($root.google.spanner.v1.StructType.Field.decode(reader, reader.uint32()));
break;
}
default:
@@ -90347,192 +90797,439 @@
};
/**
- * Decodes a Group message from the specified reader or buffer, length delimited.
+ * Decodes a StructType message from the specified reader or buffer, length delimited.
* @function decodeDelimited
- * @memberof google.spanner.v1.Group
+ * @memberof google.spanner.v1.StructType
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.Group} Group
+ * @returns {google.spanner.v1.StructType} StructType
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- Group.decodeDelimited = function decodeDelimited(reader) {
+ StructType.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
- * Verifies a Group message.
+ * Verifies a StructType message.
* @function verify
- * @memberof google.spanner.v1.Group
+ * @memberof google.spanner.v1.StructType
* @static
* @param {Object.} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
- Group.verify = function verify(message) {
+ StructType.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
- if (message.groupUid != null && message.hasOwnProperty("groupUid"))
- if (!$util.isInteger(message.groupUid) && !(message.groupUid && $util.isInteger(message.groupUid.low) && $util.isInteger(message.groupUid.high)))
- return "groupUid: integer|Long expected";
- if (message.tablets != null && message.hasOwnProperty("tablets")) {
- if (!Array.isArray(message.tablets))
- return "tablets: array expected";
- for (var i = 0; i < message.tablets.length; ++i) {
- var error = $root.google.spanner.v1.Tablet.verify(message.tablets[i]);
+ if (message.fields != null && message.hasOwnProperty("fields")) {
+ if (!Array.isArray(message.fields))
+ return "fields: array expected";
+ for (var i = 0; i < message.fields.length; ++i) {
+ var error = $root.google.spanner.v1.StructType.Field.verify(message.fields[i]);
+ if (error)
+ return "fields." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a StructType message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.spanner.v1.StructType
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.spanner.v1.StructType} StructType
+ */
+ StructType.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.StructType)
+ return object;
+ var message = new $root.google.spanner.v1.StructType();
+ if (object.fields) {
+ if (!Array.isArray(object.fields))
+ throw TypeError(".google.spanner.v1.StructType.fields: array expected");
+ message.fields = [];
+ for (var i = 0; i < object.fields.length; ++i) {
+ if (typeof object.fields[i] !== "object")
+ throw TypeError(".google.spanner.v1.StructType.fields: object expected");
+ message.fields[i] = $root.google.spanner.v1.StructType.Field.fromObject(object.fields[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a StructType message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.spanner.v1.StructType
+ * @static
+ * @param {google.spanner.v1.StructType} message StructType
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ StructType.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.fields = [];
+ if (message.fields && message.fields.length) {
+ object.fields = [];
+ for (var j = 0; j < message.fields.length; ++j)
+ object.fields[j] = $root.google.spanner.v1.StructType.Field.toObject(message.fields[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this StructType to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.StructType
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ StructType.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for StructType
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.StructType
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ StructType.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.spanner.v1.StructType";
+ };
+
+ StructType.Field = (function() {
+
+ /**
+ * Properties of a Field.
+ * @memberof google.spanner.v1.StructType
+ * @interface IField
+ * @property {string|null} [name] Field name
+ * @property {google.spanner.v1.IType|null} [type] Field type
+ */
+
+ /**
+ * Constructs a new Field.
+ * @memberof google.spanner.v1.StructType
+ * @classdesc Represents a Field.
+ * @implements IField
+ * @constructor
+ * @param {google.spanner.v1.StructType.IField=} [properties] Properties to set
+ */
+ function Field(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * Field name.
+ * @member {string} name
+ * @memberof google.spanner.v1.StructType.Field
+ * @instance
+ */
+ Field.prototype.name = "";
+
+ /**
+ * Field type.
+ * @member {google.spanner.v1.IType|null|undefined} type
+ * @memberof google.spanner.v1.StructType.Field
+ * @instance
+ */
+ Field.prototype.type = null;
+
+ /**
+ * Creates a new Field instance using the specified properties.
+ * @function create
+ * @memberof google.spanner.v1.StructType.Field
+ * @static
+ * @param {google.spanner.v1.StructType.IField=} [properties] Properties to set
+ * @returns {google.spanner.v1.StructType.Field} Field instance
+ */
+ Field.create = function create(properties) {
+ return new Field(properties);
+ };
+
+ /**
+ * Encodes the specified Field message. Does not implicitly {@link google.spanner.v1.StructType.Field.verify|verify} messages.
+ * @function encode
+ * @memberof google.spanner.v1.StructType.Field
+ * @static
+ * @param {google.spanner.v1.StructType.IField} message Field message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Field.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.name != null && Object.hasOwnProperty.call(message, "name"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);
+ if (message.type != null && Object.hasOwnProperty.call(message, "type"))
+ $root.google.spanner.v1.Type.encode(message.type, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Field message, length delimited. Does not implicitly {@link google.spanner.v1.StructType.Field.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.spanner.v1.StructType.Field
+ * @static
+ * @param {google.spanner.v1.StructType.IField} message Field message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Field.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Field message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.spanner.v1.StructType.Field
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.spanner.v1.StructType.Field} Field
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Field.decode = function decode(reader, length, error) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.StructType.Field();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ if (tag === error)
+ break;
+ switch (tag >>> 3) {
+ case 1: {
+ message.name = reader.string();
+ break;
+ }
+ case 2: {
+ message.type = $root.google.spanner.v1.Type.decode(reader, reader.uint32());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Field message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.spanner.v1.StructType.Field
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.spanner.v1.StructType.Field} Field
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Field.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Field message.
+ * @function verify
+ * @memberof google.spanner.v1.StructType.Field
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Field.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.name != null && message.hasOwnProperty("name"))
+ if (!$util.isString(message.name))
+ return "name: string expected";
+ if (message.type != null && message.hasOwnProperty("type")) {
+ var error = $root.google.spanner.v1.Type.verify(message.type);
if (error)
- return "tablets." + error;
+ return "type." + error;
}
- }
- if (message.leaderIndex != null && message.hasOwnProperty("leaderIndex"))
- if (!$util.isInteger(message.leaderIndex))
- return "leaderIndex: integer expected";
- if (message.generation != null && message.hasOwnProperty("generation"))
- if (!(message.generation && typeof message.generation.length === "number" || $util.isString(message.generation)))
- return "generation: buffer expected";
- return null;
- };
+ return null;
+ };
- /**
- * Creates a Group message from a plain object. Also converts values to their respective internal types.
- * @function fromObject
- * @memberof google.spanner.v1.Group
- * @static
- * @param {Object.} object Plain object
- * @returns {google.spanner.v1.Group} Group
- */
- Group.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.Group)
- return object;
- var message = new $root.google.spanner.v1.Group();
- if (object.groupUid != null)
- if ($util.Long)
- (message.groupUid = $util.Long.fromValue(object.groupUid)).unsigned = true;
- else if (typeof object.groupUid === "string")
- message.groupUid = parseInt(object.groupUid, 10);
- else if (typeof object.groupUid === "number")
- message.groupUid = object.groupUid;
- else if (typeof object.groupUid === "object")
- message.groupUid = new $util.LongBits(object.groupUid.low >>> 0, object.groupUid.high >>> 0).toNumber(true);
- if (object.tablets) {
- if (!Array.isArray(object.tablets))
- throw TypeError(".google.spanner.v1.Group.tablets: array expected");
- message.tablets = [];
- for (var i = 0; i < object.tablets.length; ++i) {
- if (typeof object.tablets[i] !== "object")
- throw TypeError(".google.spanner.v1.Group.tablets: object expected");
- message.tablets[i] = $root.google.spanner.v1.Tablet.fromObject(object.tablets[i]);
+ /**
+ * Creates a Field message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.spanner.v1.StructType.Field
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.spanner.v1.StructType.Field} Field
+ */
+ Field.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.StructType.Field)
+ return object;
+ var message = new $root.google.spanner.v1.StructType.Field();
+ if (object.name != null)
+ message.name = String(object.name);
+ if (object.type != null) {
+ if (typeof object.type !== "object")
+ throw TypeError(".google.spanner.v1.StructType.Field.type: object expected");
+ message.type = $root.google.spanner.v1.Type.fromObject(object.type);
}
- }
- if (object.leaderIndex != null)
- message.leaderIndex = object.leaderIndex | 0;
- if (object.generation != null)
- if (typeof object.generation === "string")
- $util.base64.decode(object.generation, message.generation = $util.newBuffer($util.base64.length(object.generation)), 0);
- else if (object.generation.length >= 0)
- message.generation = object.generation;
- return message;
- };
+ return message;
+ };
- /**
- * Creates a plain object from a Group message. Also converts values to other types if specified.
- * @function toObject
- * @memberof google.spanner.v1.Group
- * @static
- * @param {google.spanner.v1.Group} message Group
- * @param {$protobuf.IConversionOptions} [options] Conversion options
- * @returns {Object.} Plain object
- */
- Group.toObject = function toObject(message, options) {
- if (!options)
- options = {};
- var object = {};
- if (options.arrays || options.defaults)
- object.tablets = [];
- if (options.defaults) {
- if ($util.Long) {
- var long = new $util.Long(0, 0, true);
- object.groupUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
- } else
- object.groupUid = options.longs === String ? "0" : 0;
- object.leaderIndex = 0;
- if (options.bytes === String)
- object.generation = "";
- else {
- object.generation = [];
- if (options.bytes !== Array)
- object.generation = $util.newBuffer(object.generation);
+ /**
+ * Creates a plain object from a Field message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.spanner.v1.StructType.Field
+ * @static
+ * @param {google.spanner.v1.StructType.Field} message Field
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Field.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.name = "";
+ object.type = null;
}
- }
- if (message.groupUid != null && message.hasOwnProperty("groupUid"))
- if (typeof message.groupUid === "number")
- object.groupUid = options.longs === String ? String(message.groupUid) : message.groupUid;
- else
- object.groupUid = options.longs === String ? $util.Long.prototype.toString.call(message.groupUid) : options.longs === Number ? new $util.LongBits(message.groupUid.low >>> 0, message.groupUid.high >>> 0).toNumber(true) : message.groupUid;
- if (message.tablets && message.tablets.length) {
- object.tablets = [];
- for (var j = 0; j < message.tablets.length; ++j)
- object.tablets[j] = $root.google.spanner.v1.Tablet.toObject(message.tablets[j], options);
- }
- if (message.leaderIndex != null && message.hasOwnProperty("leaderIndex"))
- object.leaderIndex = message.leaderIndex;
- if (message.generation != null && message.hasOwnProperty("generation"))
- object.generation = options.bytes === String ? $util.base64.encode(message.generation, 0, message.generation.length) : options.bytes === Array ? Array.prototype.slice.call(message.generation) : message.generation;
- return object;
- };
+ if (message.name != null && message.hasOwnProperty("name"))
+ object.name = message.name;
+ if (message.type != null && message.hasOwnProperty("type"))
+ object.type = $root.google.spanner.v1.Type.toObject(message.type, options);
+ return object;
+ };
- /**
- * Converts this Group to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.Group
- * @instance
- * @returns {Object.} JSON object
- */
- Group.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
- };
+ /**
+ * Converts this Field to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.StructType.Field
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Field.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
- /**
- * Gets the default type url for Group
- * @function getTypeUrl
- * @memberof google.spanner.v1.Group
- * @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
- */
- Group.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
- }
- return typeUrlPrefix + "/google.spanner.v1.Group";
- };
+ /**
+ * Gets the default type url for Field
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.StructType.Field
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Field.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.spanner.v1.StructType.Field";
+ };
- return Group;
+ return Field;
+ })();
+
+ return StructType;
+ })();
+
+ /**
+ * TypeCode enum.
+ * @name google.spanner.v1.TypeCode
+ * @enum {number}
+ * @property {number} TYPE_CODE_UNSPECIFIED=0 TYPE_CODE_UNSPECIFIED value
+ * @property {number} BOOL=1 BOOL value
+ * @property {number} INT64=2 INT64 value
+ * @property {number} FLOAT64=3 FLOAT64 value
+ * @property {number} FLOAT32=15 FLOAT32 value
+ * @property {number} TIMESTAMP=4 TIMESTAMP value
+ * @property {number} DATE=5 DATE value
+ * @property {number} STRING=6 STRING value
+ * @property {number} BYTES=7 BYTES value
+ * @property {number} ARRAY=8 ARRAY value
+ * @property {number} STRUCT=9 STRUCT value
+ * @property {number} NUMERIC=10 NUMERIC value
+ * @property {number} JSON=11 JSON value
+ * @property {number} PROTO=13 PROTO value
+ * @property {number} ENUM=14 ENUM value
+ * @property {number} INTERVAL=16 INTERVAL value
+ * @property {number} UUID=17 UUID value
+ */
+ v1.TypeCode = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "TYPE_CODE_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "BOOL"] = 1;
+ values[valuesById[2] = "INT64"] = 2;
+ values[valuesById[3] = "FLOAT64"] = 3;
+ values[valuesById[15] = "FLOAT32"] = 15;
+ values[valuesById[4] = "TIMESTAMP"] = 4;
+ values[valuesById[5] = "DATE"] = 5;
+ values[valuesById[6] = "STRING"] = 6;
+ values[valuesById[7] = "BYTES"] = 7;
+ values[valuesById[8] = "ARRAY"] = 8;
+ values[valuesById[9] = "STRUCT"] = 9;
+ values[valuesById[10] = "NUMERIC"] = 10;
+ values[valuesById[11] = "JSON"] = 11;
+ values[valuesById[13] = "PROTO"] = 13;
+ values[valuesById[14] = "ENUM"] = 14;
+ values[valuesById[16] = "INTERVAL"] = 16;
+ values[valuesById[17] = "UUID"] = 17;
+ return values;
+ })();
+
+ /**
+ * TypeAnnotationCode enum.
+ * @name google.spanner.v1.TypeAnnotationCode
+ * @enum {number}
+ * @property {number} TYPE_ANNOTATION_CODE_UNSPECIFIED=0 TYPE_ANNOTATION_CODE_UNSPECIFIED value
+ * @property {number} PG_NUMERIC=2 PG_NUMERIC value
+ * @property {number} PG_JSONB=3 PG_JSONB value
+ * @property {number} PG_OID=4 PG_OID value
+ */
+ v1.TypeAnnotationCode = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "TYPE_ANNOTATION_CODE_UNSPECIFIED"] = 0;
+ values[valuesById[2] = "PG_NUMERIC"] = 2;
+ values[valuesById[3] = "PG_JSONB"] = 3;
+ values[valuesById[4] = "PG_OID"] = 4;
+ return values;
})();
- v1.KeyRecipe = (function() {
+ v1.TransactionOptions = (function() {
/**
- * Properties of a KeyRecipe.
+ * Properties of a TransactionOptions.
* @memberof google.spanner.v1
- * @interface IKeyRecipe
- * @property {string|null} [tableName] KeyRecipe tableName
- * @property {string|null} [indexName] KeyRecipe indexName
- * @property {number|Long|null} [operationUid] KeyRecipe operationUid
- * @property {Array.|null} [part] KeyRecipe part
+ * @interface ITransactionOptions
+ * @property {google.spanner.v1.TransactionOptions.IReadWrite|null} [readWrite] TransactionOptions readWrite
+ * @property {google.spanner.v1.TransactionOptions.IPartitionedDml|null} [partitionedDml] TransactionOptions partitionedDml
+ * @property {google.spanner.v1.TransactionOptions.IReadOnly|null} [readOnly] TransactionOptions readOnly
+ * @property {boolean|null} [excludeTxnFromChangeStreams] TransactionOptions excludeTxnFromChangeStreams
+ * @property {google.spanner.v1.TransactionOptions.IsolationLevel|null} [isolationLevel] TransactionOptions isolationLevel
*/
/**
- * Constructs a new KeyRecipe.
+ * Constructs a new TransactionOptions.
* @memberof google.spanner.v1
- * @classdesc Represents a KeyRecipe.
- * @implements IKeyRecipe
+ * @classdesc Represents a TransactionOptions.
+ * @implements ITransactionOptions
* @constructor
- * @param {google.spanner.v1.IKeyRecipe=} [properties] Properties to set
+ * @param {google.spanner.v1.ITransactionOptions=} [properties] Properties to set
*/
- function KeyRecipe(properties) {
- this.part = [];
+ function TransactionOptions(properties) {
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
@@ -90540,136 +91237,147 @@
}
/**
- * KeyRecipe tableName.
- * @member {string|null|undefined} tableName
- * @memberof google.spanner.v1.KeyRecipe
+ * TransactionOptions readWrite.
+ * @member {google.spanner.v1.TransactionOptions.IReadWrite|null|undefined} readWrite
+ * @memberof google.spanner.v1.TransactionOptions
* @instance
*/
- KeyRecipe.prototype.tableName = null;
+ TransactionOptions.prototype.readWrite = null;
/**
- * KeyRecipe indexName.
- * @member {string|null|undefined} indexName
- * @memberof google.spanner.v1.KeyRecipe
+ * TransactionOptions partitionedDml.
+ * @member {google.spanner.v1.TransactionOptions.IPartitionedDml|null|undefined} partitionedDml
+ * @memberof google.spanner.v1.TransactionOptions
* @instance
*/
- KeyRecipe.prototype.indexName = null;
+ TransactionOptions.prototype.partitionedDml = null;
/**
- * KeyRecipe operationUid.
- * @member {number|Long|null|undefined} operationUid
- * @memberof google.spanner.v1.KeyRecipe
+ * TransactionOptions readOnly.
+ * @member {google.spanner.v1.TransactionOptions.IReadOnly|null|undefined} readOnly
+ * @memberof google.spanner.v1.TransactionOptions
* @instance
*/
- KeyRecipe.prototype.operationUid = null;
+ TransactionOptions.prototype.readOnly = null;
/**
- * KeyRecipe part.
- * @member {Array.} part
- * @memberof google.spanner.v1.KeyRecipe
+ * TransactionOptions excludeTxnFromChangeStreams.
+ * @member {boolean} excludeTxnFromChangeStreams
+ * @memberof google.spanner.v1.TransactionOptions
* @instance
*/
- KeyRecipe.prototype.part = $util.emptyArray;
+ TransactionOptions.prototype.excludeTxnFromChangeStreams = false;
+
+ /**
+ * TransactionOptions isolationLevel.
+ * @member {google.spanner.v1.TransactionOptions.IsolationLevel} isolationLevel
+ * @memberof google.spanner.v1.TransactionOptions
+ * @instance
+ */
+ TransactionOptions.prototype.isolationLevel = 0;
// OneOf field names bound to virtual getters and setters
var $oneOfFields;
/**
- * KeyRecipe target.
- * @member {"tableName"|"indexName"|"operationUid"|undefined} target
- * @memberof google.spanner.v1.KeyRecipe
+ * TransactionOptions mode.
+ * @member {"readWrite"|"partitionedDml"|"readOnly"|undefined} mode
+ * @memberof google.spanner.v1.TransactionOptions
* @instance
*/
- Object.defineProperty(KeyRecipe.prototype, "target", {
- get: $util.oneOfGetter($oneOfFields = ["tableName", "indexName", "operationUid"]),
+ Object.defineProperty(TransactionOptions.prototype, "mode", {
+ get: $util.oneOfGetter($oneOfFields = ["readWrite", "partitionedDml", "readOnly"]),
set: $util.oneOfSetter($oneOfFields)
});
/**
- * Creates a new KeyRecipe instance using the specified properties.
+ * Creates a new TransactionOptions instance using the specified properties.
* @function create
- * @memberof google.spanner.v1.KeyRecipe
+ * @memberof google.spanner.v1.TransactionOptions
* @static
- * @param {google.spanner.v1.IKeyRecipe=} [properties] Properties to set
- * @returns {google.spanner.v1.KeyRecipe} KeyRecipe instance
+ * @param {google.spanner.v1.ITransactionOptions=} [properties] Properties to set
+ * @returns {google.spanner.v1.TransactionOptions} TransactionOptions instance
*/
- KeyRecipe.create = function create(properties) {
- return new KeyRecipe(properties);
+ TransactionOptions.create = function create(properties) {
+ return new TransactionOptions(properties);
};
/**
- * Encodes the specified KeyRecipe message. Does not implicitly {@link google.spanner.v1.KeyRecipe.verify|verify} messages.
+ * Encodes the specified TransactionOptions message. Does not implicitly {@link google.spanner.v1.TransactionOptions.verify|verify} messages.
* @function encode
- * @memberof google.spanner.v1.KeyRecipe
+ * @memberof google.spanner.v1.TransactionOptions
* @static
- * @param {google.spanner.v1.IKeyRecipe} message KeyRecipe message or plain object to encode
+ * @param {google.spanner.v1.ITransactionOptions} message TransactionOptions message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- KeyRecipe.encode = function encode(message, writer) {
+ TransactionOptions.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
- if (message.tableName != null && Object.hasOwnProperty.call(message, "tableName"))
- writer.uint32(/* id 1, wireType 2 =*/10).string(message.tableName);
- if (message.indexName != null && Object.hasOwnProperty.call(message, "indexName"))
- writer.uint32(/* id 2, wireType 2 =*/18).string(message.indexName);
- if (message.operationUid != null && Object.hasOwnProperty.call(message, "operationUid"))
- writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.operationUid);
- if (message.part != null && message.part.length)
- for (var i = 0; i < message.part.length; ++i)
- $root.google.spanner.v1.KeyRecipe.Part.encode(message.part[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ if (message.readWrite != null && Object.hasOwnProperty.call(message, "readWrite"))
+ $root.google.spanner.v1.TransactionOptions.ReadWrite.encode(message.readWrite, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.readOnly != null && Object.hasOwnProperty.call(message, "readOnly"))
+ $root.google.spanner.v1.TransactionOptions.ReadOnly.encode(message.readOnly, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.partitionedDml != null && Object.hasOwnProperty.call(message, "partitionedDml"))
+ $root.google.spanner.v1.TransactionOptions.PartitionedDml.encode(message.partitionedDml, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.excludeTxnFromChangeStreams != null && Object.hasOwnProperty.call(message, "excludeTxnFromChangeStreams"))
+ writer.uint32(/* id 5, wireType 0 =*/40).bool(message.excludeTxnFromChangeStreams);
+ if (message.isolationLevel != null && Object.hasOwnProperty.call(message, "isolationLevel"))
+ writer.uint32(/* id 6, wireType 0 =*/48).int32(message.isolationLevel);
return writer;
};
/**
- * Encodes the specified KeyRecipe message, length delimited. Does not implicitly {@link google.spanner.v1.KeyRecipe.verify|verify} messages.
+ * Encodes the specified TransactionOptions message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.verify|verify} messages.
* @function encodeDelimited
- * @memberof google.spanner.v1.KeyRecipe
+ * @memberof google.spanner.v1.TransactionOptions
* @static
- * @param {google.spanner.v1.IKeyRecipe} message KeyRecipe message or plain object to encode
+ * @param {google.spanner.v1.ITransactionOptions} message TransactionOptions message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- KeyRecipe.encodeDelimited = function encodeDelimited(message, writer) {
+ TransactionOptions.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
- * Decodes a KeyRecipe message from the specified reader or buffer.
+ * Decodes a TransactionOptions message from the specified reader or buffer.
* @function decode
- * @memberof google.spanner.v1.KeyRecipe
+ * @memberof google.spanner.v1.TransactionOptions
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.KeyRecipe} KeyRecipe
+ * @returns {google.spanner.v1.TransactionOptions} TransactionOptions
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- KeyRecipe.decode = function decode(reader, length, error) {
+ TransactionOptions.decode = function decode(reader, length, error) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.KeyRecipe();
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.TransactionOptions();
while (reader.pos < end) {
var tag = reader.uint32();
if (tag === error)
break;
switch (tag >>> 3) {
case 1: {
- message.tableName = reader.string();
+ message.readWrite = $root.google.spanner.v1.TransactionOptions.ReadWrite.decode(reader, reader.uint32());
+ break;
+ }
+ case 3: {
+ message.partitionedDml = $root.google.spanner.v1.TransactionOptions.PartitionedDml.decode(reader, reader.uint32());
break;
}
case 2: {
- message.indexName = reader.string();
+ message.readOnly = $root.google.spanner.v1.TransactionOptions.ReadOnly.decode(reader, reader.uint32());
break;
}
- case 3: {
- message.operationUid = reader.uint64();
+ case 5: {
+ message.excludeTxnFromChangeStreams = reader.bool();
break;
}
- case 4: {
- if (!(message.part && message.part.length))
- message.part = [];
- message.part.push($root.google.spanner.v1.KeyRecipe.Part.decode(reader, reader.uint32()));
+ case 6: {
+ message.isolationLevel = reader.int32();
break;
}
default:
@@ -90681,195 +91389,212 @@
};
/**
- * Decodes a KeyRecipe message from the specified reader or buffer, length delimited.
+ * Decodes a TransactionOptions message from the specified reader or buffer, length delimited.
* @function decodeDelimited
- * @memberof google.spanner.v1.KeyRecipe
+ * @memberof google.spanner.v1.TransactionOptions
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.KeyRecipe} KeyRecipe
+ * @returns {google.spanner.v1.TransactionOptions} TransactionOptions
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- KeyRecipe.decodeDelimited = function decodeDelimited(reader) {
+ TransactionOptions.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
- * Verifies a KeyRecipe message.
+ * Verifies a TransactionOptions message.
* @function verify
- * @memberof google.spanner.v1.KeyRecipe
+ * @memberof google.spanner.v1.TransactionOptions
* @static
* @param {Object.} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
- KeyRecipe.verify = function verify(message) {
+ TransactionOptions.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
var properties = {};
- if (message.tableName != null && message.hasOwnProperty("tableName")) {
- properties.target = 1;
- if (!$util.isString(message.tableName))
- return "tableName: string expected";
- }
- if (message.indexName != null && message.hasOwnProperty("indexName")) {
- if (properties.target === 1)
- return "target: multiple values";
- properties.target = 1;
- if (!$util.isString(message.indexName))
- return "indexName: string expected";
+ if (message.readWrite != null && message.hasOwnProperty("readWrite")) {
+ properties.mode = 1;
+ {
+ var error = $root.google.spanner.v1.TransactionOptions.ReadWrite.verify(message.readWrite);
+ if (error)
+ return "readWrite." + error;
+ }
}
- if (message.operationUid != null && message.hasOwnProperty("operationUid")) {
- if (properties.target === 1)
- return "target: multiple values";
- properties.target = 1;
- if (!$util.isInteger(message.operationUid) && !(message.operationUid && $util.isInteger(message.operationUid.low) && $util.isInteger(message.operationUid.high)))
- return "operationUid: integer|Long expected";
+ if (message.partitionedDml != null && message.hasOwnProperty("partitionedDml")) {
+ if (properties.mode === 1)
+ return "mode: multiple values";
+ properties.mode = 1;
+ {
+ var error = $root.google.spanner.v1.TransactionOptions.PartitionedDml.verify(message.partitionedDml);
+ if (error)
+ return "partitionedDml." + error;
+ }
}
- if (message.part != null && message.hasOwnProperty("part")) {
- if (!Array.isArray(message.part))
- return "part: array expected";
- for (var i = 0; i < message.part.length; ++i) {
- var error = $root.google.spanner.v1.KeyRecipe.Part.verify(message.part[i]);
+ if (message.readOnly != null && message.hasOwnProperty("readOnly")) {
+ if (properties.mode === 1)
+ return "mode: multiple values";
+ properties.mode = 1;
+ {
+ var error = $root.google.spanner.v1.TransactionOptions.ReadOnly.verify(message.readOnly);
if (error)
- return "part." + error;
+ return "readOnly." + error;
}
}
+ if (message.excludeTxnFromChangeStreams != null && message.hasOwnProperty("excludeTxnFromChangeStreams"))
+ if (typeof message.excludeTxnFromChangeStreams !== "boolean")
+ return "excludeTxnFromChangeStreams: boolean expected";
+ if (message.isolationLevel != null && message.hasOwnProperty("isolationLevel"))
+ switch (message.isolationLevel) {
+ default:
+ return "isolationLevel: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
return null;
};
/**
- * Creates a KeyRecipe message from a plain object. Also converts values to their respective internal types.
- * @function fromObject
- * @memberof google.spanner.v1.KeyRecipe
- * @static
- * @param {Object.} object Plain object
- * @returns {google.spanner.v1.KeyRecipe} KeyRecipe
- */
- KeyRecipe.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.KeyRecipe)
- return object;
- var message = new $root.google.spanner.v1.KeyRecipe();
- if (object.tableName != null)
- message.tableName = String(object.tableName);
- if (object.indexName != null)
- message.indexName = String(object.indexName);
- if (object.operationUid != null)
- if ($util.Long)
- (message.operationUid = $util.Long.fromValue(object.operationUid)).unsigned = true;
- else if (typeof object.operationUid === "string")
- message.operationUid = parseInt(object.operationUid, 10);
- else if (typeof object.operationUid === "number")
- message.operationUid = object.operationUid;
- else if (typeof object.operationUid === "object")
- message.operationUid = new $util.LongBits(object.operationUid.low >>> 0, object.operationUid.high >>> 0).toNumber(true);
- if (object.part) {
- if (!Array.isArray(object.part))
- throw TypeError(".google.spanner.v1.KeyRecipe.part: array expected");
- message.part = [];
- for (var i = 0; i < object.part.length; ++i) {
- if (typeof object.part[i] !== "object")
- throw TypeError(".google.spanner.v1.KeyRecipe.part: object expected");
- message.part[i] = $root.google.spanner.v1.KeyRecipe.Part.fromObject(object.part[i]);
+ * Creates a TransactionOptions message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.spanner.v1.TransactionOptions
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.spanner.v1.TransactionOptions} TransactionOptions
+ */
+ TransactionOptions.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.TransactionOptions)
+ return object;
+ var message = new $root.google.spanner.v1.TransactionOptions();
+ if (object.readWrite != null) {
+ if (typeof object.readWrite !== "object")
+ throw TypeError(".google.spanner.v1.TransactionOptions.readWrite: object expected");
+ message.readWrite = $root.google.spanner.v1.TransactionOptions.ReadWrite.fromObject(object.readWrite);
+ }
+ if (object.partitionedDml != null) {
+ if (typeof object.partitionedDml !== "object")
+ throw TypeError(".google.spanner.v1.TransactionOptions.partitionedDml: object expected");
+ message.partitionedDml = $root.google.spanner.v1.TransactionOptions.PartitionedDml.fromObject(object.partitionedDml);
+ }
+ if (object.readOnly != null) {
+ if (typeof object.readOnly !== "object")
+ throw TypeError(".google.spanner.v1.TransactionOptions.readOnly: object expected");
+ message.readOnly = $root.google.spanner.v1.TransactionOptions.ReadOnly.fromObject(object.readOnly);
+ }
+ if (object.excludeTxnFromChangeStreams != null)
+ message.excludeTxnFromChangeStreams = Boolean(object.excludeTxnFromChangeStreams);
+ switch (object.isolationLevel) {
+ default:
+ if (typeof object.isolationLevel === "number") {
+ message.isolationLevel = object.isolationLevel;
+ break;
}
+ break;
+ case "ISOLATION_LEVEL_UNSPECIFIED":
+ case 0:
+ message.isolationLevel = 0;
+ break;
+ case "SERIALIZABLE":
+ case 1:
+ message.isolationLevel = 1;
+ break;
+ case "REPEATABLE_READ":
+ case 2:
+ message.isolationLevel = 2;
+ break;
}
return message;
};
/**
- * Creates a plain object from a KeyRecipe message. Also converts values to other types if specified.
+ * Creates a plain object from a TransactionOptions message. Also converts values to other types if specified.
* @function toObject
- * @memberof google.spanner.v1.KeyRecipe
+ * @memberof google.spanner.v1.TransactionOptions
* @static
- * @param {google.spanner.v1.KeyRecipe} message KeyRecipe
+ * @param {google.spanner.v1.TransactionOptions} message TransactionOptions
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.} Plain object
*/
- KeyRecipe.toObject = function toObject(message, options) {
+ TransactionOptions.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
- if (options.arrays || options.defaults)
- object.part = [];
- if (message.tableName != null && message.hasOwnProperty("tableName")) {
- object.tableName = message.tableName;
- if (options.oneofs)
- object.target = "tableName";
+ if (options.defaults) {
+ object.excludeTxnFromChangeStreams = false;
+ object.isolationLevel = options.enums === String ? "ISOLATION_LEVEL_UNSPECIFIED" : 0;
}
- if (message.indexName != null && message.hasOwnProperty("indexName")) {
- object.indexName = message.indexName;
+ if (message.readWrite != null && message.hasOwnProperty("readWrite")) {
+ object.readWrite = $root.google.spanner.v1.TransactionOptions.ReadWrite.toObject(message.readWrite, options);
if (options.oneofs)
- object.target = "indexName";
+ object.mode = "readWrite";
}
- if (message.operationUid != null && message.hasOwnProperty("operationUid")) {
- if (typeof message.operationUid === "number")
- object.operationUid = options.longs === String ? String(message.operationUid) : message.operationUid;
- else
- object.operationUid = options.longs === String ? $util.Long.prototype.toString.call(message.operationUid) : options.longs === Number ? new $util.LongBits(message.operationUid.low >>> 0, message.operationUid.high >>> 0).toNumber(true) : message.operationUid;
+ if (message.readOnly != null && message.hasOwnProperty("readOnly")) {
+ object.readOnly = $root.google.spanner.v1.TransactionOptions.ReadOnly.toObject(message.readOnly, options);
if (options.oneofs)
- object.target = "operationUid";
+ object.mode = "readOnly";
}
- if (message.part && message.part.length) {
- object.part = [];
- for (var j = 0; j < message.part.length; ++j)
- object.part[j] = $root.google.spanner.v1.KeyRecipe.Part.toObject(message.part[j], options);
+ if (message.partitionedDml != null && message.hasOwnProperty("partitionedDml")) {
+ object.partitionedDml = $root.google.spanner.v1.TransactionOptions.PartitionedDml.toObject(message.partitionedDml, options);
+ if (options.oneofs)
+ object.mode = "partitionedDml";
}
+ if (message.excludeTxnFromChangeStreams != null && message.hasOwnProperty("excludeTxnFromChangeStreams"))
+ object.excludeTxnFromChangeStreams = message.excludeTxnFromChangeStreams;
+ if (message.isolationLevel != null && message.hasOwnProperty("isolationLevel"))
+ object.isolationLevel = options.enums === String ? $root.google.spanner.v1.TransactionOptions.IsolationLevel[message.isolationLevel] === undefined ? message.isolationLevel : $root.google.spanner.v1.TransactionOptions.IsolationLevel[message.isolationLevel] : message.isolationLevel;
return object;
};
/**
- * Converts this KeyRecipe to JSON.
+ * Converts this TransactionOptions to JSON.
* @function toJSON
- * @memberof google.spanner.v1.KeyRecipe
+ * @memberof google.spanner.v1.TransactionOptions
* @instance
* @returns {Object.} JSON object
*/
- KeyRecipe.prototype.toJSON = function toJSON() {
+ TransactionOptions.prototype.toJSON = function toJSON() {
return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};
/**
- * Gets the default type url for KeyRecipe
+ * Gets the default type url for TransactionOptions
* @function getTypeUrl
- * @memberof google.spanner.v1.KeyRecipe
+ * @memberof google.spanner.v1.TransactionOptions
* @static
* @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns {string} The default type url
*/
- KeyRecipe.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ TransactionOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
if (typeUrlPrefix === undefined) {
typeUrlPrefix = "type.googleapis.com";
}
- return typeUrlPrefix + "/google.spanner.v1.KeyRecipe";
+ return typeUrlPrefix + "/google.spanner.v1.TransactionOptions";
};
- KeyRecipe.Part = (function() {
+ TransactionOptions.ReadWrite = (function() {
/**
- * Properties of a Part.
- * @memberof google.spanner.v1.KeyRecipe
- * @interface IPart
- * @property {number|null} [tag] Part tag
- * @property {google.spanner.v1.KeyRecipe.Part.Order|null} [order] Part order
- * @property {google.spanner.v1.KeyRecipe.Part.NullOrder|null} [nullOrder] Part nullOrder
- * @property {google.spanner.v1.IType|null} [type] Part type
- * @property {string|null} [identifier] Part identifier
- * @property {google.protobuf.IValue|null} [value] Part value
- * @property {boolean|null} [random] Part random
- * @property {Array.|null} [structIdentifiers] Part structIdentifiers
+ * Properties of a ReadWrite.
+ * @memberof google.spanner.v1.TransactionOptions
+ * @interface IReadWrite
+ * @property {google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode|null} [readLockMode] ReadWrite readLockMode
+ * @property {Uint8Array|null} [multiplexedSessionPreviousTransactionId] ReadWrite multiplexedSessionPreviousTransactionId
*/
/**
- * Constructs a new Part.
- * @memberof google.spanner.v1.KeyRecipe
- * @classdesc Represents a Part.
- * @implements IPart
+ * Constructs a new ReadWrite.
+ * @memberof google.spanner.v1.TransactionOptions
+ * @classdesc Represents a ReadWrite.
+ * @implements IReadWrite
* @constructor
- * @param {google.spanner.v1.KeyRecipe.IPart=} [properties] Properties to set
+ * @param {google.spanner.v1.TransactionOptions.IReadWrite=} [properties] Properties to set
*/
- function Part(properties) {
- this.structIdentifiers = [];
+ function ReadWrite(properties) {
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
@@ -90877,200 +91602,91 @@
}
/**
- * Part tag.
- * @member {number} tag
- * @memberof google.spanner.v1.KeyRecipe.Part
- * @instance
- */
- Part.prototype.tag = 0;
-
- /**
- * Part order.
- * @member {google.spanner.v1.KeyRecipe.Part.Order} order
- * @memberof google.spanner.v1.KeyRecipe.Part
- * @instance
- */
- Part.prototype.order = 0;
-
- /**
- * Part nullOrder.
- * @member {google.spanner.v1.KeyRecipe.Part.NullOrder} nullOrder
- * @memberof google.spanner.v1.KeyRecipe.Part
- * @instance
- */
- Part.prototype.nullOrder = 0;
-
- /**
- * Part type.
- * @member {google.spanner.v1.IType|null|undefined} type
- * @memberof google.spanner.v1.KeyRecipe.Part
- * @instance
- */
- Part.prototype.type = null;
-
- /**
- * Part identifier.
- * @member {string|null|undefined} identifier
- * @memberof google.spanner.v1.KeyRecipe.Part
- * @instance
- */
- Part.prototype.identifier = null;
-
- /**
- * Part value.
- * @member {google.protobuf.IValue|null|undefined} value
- * @memberof google.spanner.v1.KeyRecipe.Part
- * @instance
- */
- Part.prototype.value = null;
-
- /**
- * Part random.
- * @member {boolean|null|undefined} random
- * @memberof google.spanner.v1.KeyRecipe.Part
- * @instance
- */
- Part.prototype.random = null;
-
- /**
- * Part structIdentifiers.
- * @member {Array.} structIdentifiers
- * @memberof google.spanner.v1.KeyRecipe.Part
+ * ReadWrite readLockMode.
+ * @member {google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode} readLockMode
+ * @memberof google.spanner.v1.TransactionOptions.ReadWrite
* @instance
*/
- Part.prototype.structIdentifiers = $util.emptyArray;
-
- // OneOf field names bound to virtual getters and setters
- var $oneOfFields;
+ ReadWrite.prototype.readLockMode = 0;
/**
- * Part valueType.
- * @member {"identifier"|"value"|"random"|undefined} valueType
- * @memberof google.spanner.v1.KeyRecipe.Part
+ * ReadWrite multiplexedSessionPreviousTransactionId.
+ * @member {Uint8Array} multiplexedSessionPreviousTransactionId
+ * @memberof google.spanner.v1.TransactionOptions.ReadWrite
* @instance
*/
- Object.defineProperty(Part.prototype, "valueType", {
- get: $util.oneOfGetter($oneOfFields = ["identifier", "value", "random"]),
- set: $util.oneOfSetter($oneOfFields)
- });
+ ReadWrite.prototype.multiplexedSessionPreviousTransactionId = $util.newBuffer([]);
/**
- * Creates a new Part instance using the specified properties.
+ * Creates a new ReadWrite instance using the specified properties.
* @function create
- * @memberof google.spanner.v1.KeyRecipe.Part
+ * @memberof google.spanner.v1.TransactionOptions.ReadWrite
* @static
- * @param {google.spanner.v1.KeyRecipe.IPart=} [properties] Properties to set
- * @returns {google.spanner.v1.KeyRecipe.Part} Part instance
+ * @param {google.spanner.v1.TransactionOptions.IReadWrite=} [properties] Properties to set
+ * @returns {google.spanner.v1.TransactionOptions.ReadWrite} ReadWrite instance
*/
- Part.create = function create(properties) {
- return new Part(properties);
+ ReadWrite.create = function create(properties) {
+ return new ReadWrite(properties);
};
/**
- * Encodes the specified Part message. Does not implicitly {@link google.spanner.v1.KeyRecipe.Part.verify|verify} messages.
+ * Encodes the specified ReadWrite message. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadWrite.verify|verify} messages.
* @function encode
- * @memberof google.spanner.v1.KeyRecipe.Part
+ * @memberof google.spanner.v1.TransactionOptions.ReadWrite
* @static
- * @param {google.spanner.v1.KeyRecipe.IPart} message Part message or plain object to encode
+ * @param {google.spanner.v1.TransactionOptions.IReadWrite} message ReadWrite message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- Part.encode = function encode(message, writer) {
+ ReadWrite.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
- if (message.tag != null && Object.hasOwnProperty.call(message, "tag"))
- writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.tag);
- if (message.order != null && Object.hasOwnProperty.call(message, "order"))
- writer.uint32(/* id 2, wireType 0 =*/16).int32(message.order);
- if (message.nullOrder != null && Object.hasOwnProperty.call(message, "nullOrder"))
- writer.uint32(/* id 3, wireType 0 =*/24).int32(message.nullOrder);
- if (message.type != null && Object.hasOwnProperty.call(message, "type"))
- $root.google.spanner.v1.Type.encode(message.type, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
- if (message.identifier != null && Object.hasOwnProperty.call(message, "identifier"))
- writer.uint32(/* id 5, wireType 2 =*/42).string(message.identifier);
- if (message.value != null && Object.hasOwnProperty.call(message, "value"))
- $root.google.protobuf.Value.encode(message.value, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();
- if (message.structIdentifiers != null && message.structIdentifiers.length) {
- writer.uint32(/* id 7, wireType 2 =*/58).fork();
- for (var i = 0; i < message.structIdentifiers.length; ++i)
- writer.int32(message.structIdentifiers[i]);
- writer.ldelim();
- }
- if (message.random != null && Object.hasOwnProperty.call(message, "random"))
- writer.uint32(/* id 8, wireType 0 =*/64).bool(message.random);
+ if (message.readLockMode != null && Object.hasOwnProperty.call(message, "readLockMode"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.readLockMode);
+ if (message.multiplexedSessionPreviousTransactionId != null && Object.hasOwnProperty.call(message, "multiplexedSessionPreviousTransactionId"))
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.multiplexedSessionPreviousTransactionId);
return writer;
};
/**
- * Encodes the specified Part message, length delimited. Does not implicitly {@link google.spanner.v1.KeyRecipe.Part.verify|verify} messages.
+ * Encodes the specified ReadWrite message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadWrite.verify|verify} messages.
* @function encodeDelimited
- * @memberof google.spanner.v1.KeyRecipe.Part
+ * @memberof google.spanner.v1.TransactionOptions.ReadWrite
* @static
- * @param {google.spanner.v1.KeyRecipe.IPart} message Part message or plain object to encode
+ * @param {google.spanner.v1.TransactionOptions.IReadWrite} message ReadWrite message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- Part.encodeDelimited = function encodeDelimited(message, writer) {
+ ReadWrite.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
- * Decodes a Part message from the specified reader or buffer.
+ * Decodes a ReadWrite message from the specified reader or buffer.
* @function decode
- * @memberof google.spanner.v1.KeyRecipe.Part
+ * @memberof google.spanner.v1.TransactionOptions.ReadWrite
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.KeyRecipe.Part} Part
+ * @returns {google.spanner.v1.TransactionOptions.ReadWrite} ReadWrite
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- Part.decode = function decode(reader, length, error) {
+ ReadWrite.decode = function decode(reader, length, error) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.KeyRecipe.Part();
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.TransactionOptions.ReadWrite();
while (reader.pos < end) {
var tag = reader.uint32();
if (tag === error)
break;
switch (tag >>> 3) {
case 1: {
- message.tag = reader.uint32();
+ message.readLockMode = reader.int32();
break;
}
case 2: {
- message.order = reader.int32();
- break;
- }
- case 3: {
- message.nullOrder = reader.int32();
- break;
- }
- case 4: {
- message.type = $root.google.spanner.v1.Type.decode(reader, reader.uint32());
- break;
- }
- case 5: {
- message.identifier = reader.string();
- break;
- }
- case 6: {
- message.value = $root.google.protobuf.Value.decode(reader, reader.uint32());
- break;
- }
- case 8: {
- message.random = reader.bool();
- break;
- }
- case 7: {
- if (!(message.structIdentifiers && message.structIdentifiers.length))
- message.structIdentifiers = [];
- if ((tag & 7) === 2) {
- var end2 = reader.uint32() + reader.pos;
- while (reader.pos < end2)
- message.structIdentifiers.push(reader.int32());
- } else
- message.structIdentifiers.push(reader.int32());
+ message.multiplexedSessionPreviousTransactionId = reader.bytes();
break;
}
default:
@@ -91082,917 +91698,766 @@
};
/**
- * Decodes a Part message from the specified reader or buffer, length delimited.
+ * Decodes a ReadWrite message from the specified reader or buffer, length delimited.
* @function decodeDelimited
- * @memberof google.spanner.v1.KeyRecipe.Part
+ * @memberof google.spanner.v1.TransactionOptions.ReadWrite
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.KeyRecipe.Part} Part
+ * @returns {google.spanner.v1.TransactionOptions.ReadWrite} ReadWrite
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- Part.decodeDelimited = function decodeDelimited(reader) {
+ ReadWrite.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
- * Verifies a Part message.
+ * Verifies a ReadWrite message.
* @function verify
- * @memberof google.spanner.v1.KeyRecipe.Part
+ * @memberof google.spanner.v1.TransactionOptions.ReadWrite
* @static
* @param {Object.} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
- Part.verify = function verify(message) {
+ ReadWrite.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
- var properties = {};
- if (message.tag != null && message.hasOwnProperty("tag"))
- if (!$util.isInteger(message.tag))
- return "tag: integer expected";
- if (message.order != null && message.hasOwnProperty("order"))
- switch (message.order) {
- default:
- return "order: enum value expected";
- case 0:
- case 1:
- case 2:
- break;
- }
- if (message.nullOrder != null && message.hasOwnProperty("nullOrder"))
- switch (message.nullOrder) {
+ if (message.readLockMode != null && message.hasOwnProperty("readLockMode"))
+ switch (message.readLockMode) {
default:
- return "nullOrder: enum value expected";
+ return "readLockMode: enum value expected";
case 0:
case 1:
case 2:
- case 3:
break;
}
- if (message.type != null && message.hasOwnProperty("type")) {
- var error = $root.google.spanner.v1.Type.verify(message.type);
- if (error)
- return "type." + error;
- }
- if (message.identifier != null && message.hasOwnProperty("identifier")) {
- properties.valueType = 1;
- if (!$util.isString(message.identifier))
- return "identifier: string expected";
- }
- if (message.value != null && message.hasOwnProperty("value")) {
- if (properties.valueType === 1)
- return "valueType: multiple values";
- properties.valueType = 1;
- {
- var error = $root.google.protobuf.Value.verify(message.value);
- if (error)
- return "value." + error;
- }
- }
- if (message.random != null && message.hasOwnProperty("random")) {
- if (properties.valueType === 1)
- return "valueType: multiple values";
- properties.valueType = 1;
- if (typeof message.random !== "boolean")
- return "random: boolean expected";
- }
- if (message.structIdentifiers != null && message.hasOwnProperty("structIdentifiers")) {
- if (!Array.isArray(message.structIdentifiers))
- return "structIdentifiers: array expected";
- for (var i = 0; i < message.structIdentifiers.length; ++i)
- if (!$util.isInteger(message.structIdentifiers[i]))
- return "structIdentifiers: integer[] expected";
- }
+ if (message.multiplexedSessionPreviousTransactionId != null && message.hasOwnProperty("multiplexedSessionPreviousTransactionId"))
+ if (!(message.multiplexedSessionPreviousTransactionId && typeof message.multiplexedSessionPreviousTransactionId.length === "number" || $util.isString(message.multiplexedSessionPreviousTransactionId)))
+ return "multiplexedSessionPreviousTransactionId: buffer expected";
return null;
};
/**
- * Creates a Part message from a plain object. Also converts values to their respective internal types.
+ * Creates a ReadWrite message from a plain object. Also converts values to their respective internal types.
* @function fromObject
- * @memberof google.spanner.v1.KeyRecipe.Part
+ * @memberof google.spanner.v1.TransactionOptions.ReadWrite
* @static
* @param {Object.} object Plain object
- * @returns {google.spanner.v1.KeyRecipe.Part} Part
+ * @returns {google.spanner.v1.TransactionOptions.ReadWrite} ReadWrite
*/
- Part.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.KeyRecipe.Part)
+ ReadWrite.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.TransactionOptions.ReadWrite)
return object;
- var message = new $root.google.spanner.v1.KeyRecipe.Part();
- if (object.tag != null)
- message.tag = object.tag >>> 0;
- switch (object.order) {
- default:
- if (typeof object.order === "number") {
- message.order = object.order;
- break;
- }
- break;
- case "ORDER_UNSPECIFIED":
- case 0:
- message.order = 0;
- break;
- case "ASCENDING":
- case 1:
- message.order = 1;
- break;
- case "DESCENDING":
- case 2:
- message.order = 2;
- break;
- }
- switch (object.nullOrder) {
+ var message = new $root.google.spanner.v1.TransactionOptions.ReadWrite();
+ switch (object.readLockMode) {
default:
- if (typeof object.nullOrder === "number") {
- message.nullOrder = object.nullOrder;
+ if (typeof object.readLockMode === "number") {
+ message.readLockMode = object.readLockMode;
break;
}
break;
- case "NULL_ORDER_UNSPECIFIED":
+ case "READ_LOCK_MODE_UNSPECIFIED":
case 0:
- message.nullOrder = 0;
+ message.readLockMode = 0;
break;
- case "NULLS_FIRST":
+ case "PESSIMISTIC":
case 1:
- message.nullOrder = 1;
+ message.readLockMode = 1;
break;
- case "NULLS_LAST":
+ case "OPTIMISTIC":
case 2:
- message.nullOrder = 2;
- break;
- case "NOT_NULL":
- case 3:
- message.nullOrder = 3;
+ message.readLockMode = 2;
break;
}
- if (object.type != null) {
- if (typeof object.type !== "object")
- throw TypeError(".google.spanner.v1.KeyRecipe.Part.type: object expected");
- message.type = $root.google.spanner.v1.Type.fromObject(object.type);
- }
- if (object.identifier != null)
- message.identifier = String(object.identifier);
- if (object.value != null) {
- if (typeof object.value !== "object")
- throw TypeError(".google.spanner.v1.KeyRecipe.Part.value: object expected");
- message.value = $root.google.protobuf.Value.fromObject(object.value);
- }
- if (object.random != null)
- message.random = Boolean(object.random);
- if (object.structIdentifiers) {
- if (!Array.isArray(object.structIdentifiers))
- throw TypeError(".google.spanner.v1.KeyRecipe.Part.structIdentifiers: array expected");
- message.structIdentifiers = [];
- for (var i = 0; i < object.structIdentifiers.length; ++i)
- message.structIdentifiers[i] = object.structIdentifiers[i] | 0;
- }
- return message;
- };
-
- /**
- * Creates a plain object from a Part message. Also converts values to other types if specified.
- * @function toObject
- * @memberof google.spanner.v1.KeyRecipe.Part
- * @static
- * @param {google.spanner.v1.KeyRecipe.Part} message Part
- * @param {$protobuf.IConversionOptions} [options] Conversion options
- * @returns {Object.} Plain object
- */
- Part.toObject = function toObject(message, options) {
- if (!options)
- options = {};
- var object = {};
- if (options.arrays || options.defaults)
- object.structIdentifiers = [];
- if (options.defaults) {
- object.tag = 0;
- object.order = options.enums === String ? "ORDER_UNSPECIFIED" : 0;
- object.nullOrder = options.enums === String ? "NULL_ORDER_UNSPECIFIED" : 0;
- object.type = null;
- }
- if (message.tag != null && message.hasOwnProperty("tag"))
- object.tag = message.tag;
- if (message.order != null && message.hasOwnProperty("order"))
- object.order = options.enums === String ? $root.google.spanner.v1.KeyRecipe.Part.Order[message.order] === undefined ? message.order : $root.google.spanner.v1.KeyRecipe.Part.Order[message.order] : message.order;
- if (message.nullOrder != null && message.hasOwnProperty("nullOrder"))
- object.nullOrder = options.enums === String ? $root.google.spanner.v1.KeyRecipe.Part.NullOrder[message.nullOrder] === undefined ? message.nullOrder : $root.google.spanner.v1.KeyRecipe.Part.NullOrder[message.nullOrder] : message.nullOrder;
- if (message.type != null && message.hasOwnProperty("type"))
- object.type = $root.google.spanner.v1.Type.toObject(message.type, options);
- if (message.identifier != null && message.hasOwnProperty("identifier")) {
- object.identifier = message.identifier;
- if (options.oneofs)
- object.valueType = "identifier";
- }
- if (message.value != null && message.hasOwnProperty("value")) {
- object.value = $root.google.protobuf.Value.toObject(message.value, options);
- if (options.oneofs)
- object.valueType = "value";
- }
- if (message.structIdentifiers && message.structIdentifiers.length) {
- object.structIdentifiers = [];
- for (var j = 0; j < message.structIdentifiers.length; ++j)
- object.structIdentifiers[j] = message.structIdentifiers[j];
- }
- if (message.random != null && message.hasOwnProperty("random")) {
- object.random = message.random;
- if (options.oneofs)
- object.valueType = "random";
+ if (object.multiplexedSessionPreviousTransactionId != null)
+ if (typeof object.multiplexedSessionPreviousTransactionId === "string")
+ $util.base64.decode(object.multiplexedSessionPreviousTransactionId, message.multiplexedSessionPreviousTransactionId = $util.newBuffer($util.base64.length(object.multiplexedSessionPreviousTransactionId)), 0);
+ else if (object.multiplexedSessionPreviousTransactionId.length >= 0)
+ message.multiplexedSessionPreviousTransactionId = object.multiplexedSessionPreviousTransactionId;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ReadWrite message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.spanner.v1.TransactionOptions.ReadWrite
+ * @static
+ * @param {google.spanner.v1.TransactionOptions.ReadWrite} message ReadWrite
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ReadWrite.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.readLockMode = options.enums === String ? "READ_LOCK_MODE_UNSPECIFIED" : 0;
+ if (options.bytes === String)
+ object.multiplexedSessionPreviousTransactionId = "";
+ else {
+ object.multiplexedSessionPreviousTransactionId = [];
+ if (options.bytes !== Array)
+ object.multiplexedSessionPreviousTransactionId = $util.newBuffer(object.multiplexedSessionPreviousTransactionId);
+ }
}
+ if (message.readLockMode != null && message.hasOwnProperty("readLockMode"))
+ object.readLockMode = options.enums === String ? $root.google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode[message.readLockMode] === undefined ? message.readLockMode : $root.google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode[message.readLockMode] : message.readLockMode;
+ if (message.multiplexedSessionPreviousTransactionId != null && message.hasOwnProperty("multiplexedSessionPreviousTransactionId"))
+ object.multiplexedSessionPreviousTransactionId = options.bytes === String ? $util.base64.encode(message.multiplexedSessionPreviousTransactionId, 0, message.multiplexedSessionPreviousTransactionId.length) : options.bytes === Array ? Array.prototype.slice.call(message.multiplexedSessionPreviousTransactionId) : message.multiplexedSessionPreviousTransactionId;
return object;
};
/**
- * Converts this Part to JSON.
+ * Converts this ReadWrite to JSON.
* @function toJSON
- * @memberof google.spanner.v1.KeyRecipe.Part
+ * @memberof google.spanner.v1.TransactionOptions.ReadWrite
* @instance
* @returns {Object.} JSON object
*/
- Part.prototype.toJSON = function toJSON() {
+ ReadWrite.prototype.toJSON = function toJSON() {
return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};
/**
- * Gets the default type url for Part
+ * Gets the default type url for ReadWrite
* @function getTypeUrl
- * @memberof google.spanner.v1.KeyRecipe.Part
+ * @memberof google.spanner.v1.TransactionOptions.ReadWrite
* @static
* @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns {string} The default type url
*/
- Part.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ ReadWrite.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
if (typeUrlPrefix === undefined) {
typeUrlPrefix = "type.googleapis.com";
}
- return typeUrlPrefix + "/google.spanner.v1.KeyRecipe.Part";
+ return typeUrlPrefix + "/google.spanner.v1.TransactionOptions.ReadWrite";
};
/**
- * Order enum.
- * @name google.spanner.v1.KeyRecipe.Part.Order
- * @enum {number}
- * @property {number} ORDER_UNSPECIFIED=0 ORDER_UNSPECIFIED value
- * @property {number} ASCENDING=1 ASCENDING value
- * @property {number} DESCENDING=2 DESCENDING value
- */
- Part.Order = (function() {
- var valuesById = {}, values = Object.create(valuesById);
- values[valuesById[0] = "ORDER_UNSPECIFIED"] = 0;
- values[valuesById[1] = "ASCENDING"] = 1;
- values[valuesById[2] = "DESCENDING"] = 2;
- return values;
- })();
-
- /**
- * NullOrder enum.
- * @name google.spanner.v1.KeyRecipe.Part.NullOrder
+ * ReadLockMode enum.
+ * @name google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode
* @enum {number}
- * @property {number} NULL_ORDER_UNSPECIFIED=0 NULL_ORDER_UNSPECIFIED value
- * @property {number} NULLS_FIRST=1 NULLS_FIRST value
- * @property {number} NULLS_LAST=2 NULLS_LAST value
- * @property {number} NOT_NULL=3 NOT_NULL value
+ * @property {number} READ_LOCK_MODE_UNSPECIFIED=0 READ_LOCK_MODE_UNSPECIFIED value
+ * @property {number} PESSIMISTIC=1 PESSIMISTIC value
+ * @property {number} OPTIMISTIC=2 OPTIMISTIC value
*/
- Part.NullOrder = (function() {
+ ReadWrite.ReadLockMode = (function() {
var valuesById = {}, values = Object.create(valuesById);
- values[valuesById[0] = "NULL_ORDER_UNSPECIFIED"] = 0;
- values[valuesById[1] = "NULLS_FIRST"] = 1;
- values[valuesById[2] = "NULLS_LAST"] = 2;
- values[valuesById[3] = "NOT_NULL"] = 3;
+ values[valuesById[0] = "READ_LOCK_MODE_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "PESSIMISTIC"] = 1;
+ values[valuesById[2] = "OPTIMISTIC"] = 2;
return values;
})();
- return Part;
+ return ReadWrite;
})();
- return KeyRecipe;
- })();
-
- v1.RecipeList = (function() {
-
- /**
- * Properties of a RecipeList.
- * @memberof google.spanner.v1
- * @interface IRecipeList
- * @property {Uint8Array|null} [schemaGeneration] RecipeList schemaGeneration
- * @property {Array.|null} [recipe] RecipeList recipe
- */
-
- /**
- * Constructs a new RecipeList.
- * @memberof google.spanner.v1
- * @classdesc Represents a RecipeList.
- * @implements IRecipeList
- * @constructor
- * @param {google.spanner.v1.IRecipeList=} [properties] Properties to set
- */
- function RecipeList(properties) {
- this.recipe = [];
- if (properties)
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
- if (properties[keys[i]] != null)
- this[keys[i]] = properties[keys[i]];
- }
+ TransactionOptions.PartitionedDml = (function() {
- /**
- * RecipeList schemaGeneration.
- * @member {Uint8Array} schemaGeneration
- * @memberof google.spanner.v1.RecipeList
- * @instance
- */
- RecipeList.prototype.schemaGeneration = $util.newBuffer([]);
+ /**
+ * Properties of a PartitionedDml.
+ * @memberof google.spanner.v1.TransactionOptions
+ * @interface IPartitionedDml
+ */
- /**
- * RecipeList recipe.
- * @member {Array.} recipe
- * @memberof google.spanner.v1.RecipeList
- * @instance
- */
- RecipeList.prototype.recipe = $util.emptyArray;
+ /**
+ * Constructs a new PartitionedDml.
+ * @memberof google.spanner.v1.TransactionOptions
+ * @classdesc Represents a PartitionedDml.
+ * @implements IPartitionedDml
+ * @constructor
+ * @param {google.spanner.v1.TransactionOptions.IPartitionedDml=} [properties] Properties to set
+ */
+ function PartitionedDml(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
- /**
- * Creates a new RecipeList instance using the specified properties.
- * @function create
- * @memberof google.spanner.v1.RecipeList
- * @static
- * @param {google.spanner.v1.IRecipeList=} [properties] Properties to set
- * @returns {google.spanner.v1.RecipeList} RecipeList instance
- */
- RecipeList.create = function create(properties) {
- return new RecipeList(properties);
- };
+ /**
+ * Creates a new PartitionedDml instance using the specified properties.
+ * @function create
+ * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
+ * @static
+ * @param {google.spanner.v1.TransactionOptions.IPartitionedDml=} [properties] Properties to set
+ * @returns {google.spanner.v1.TransactionOptions.PartitionedDml} PartitionedDml instance
+ */
+ PartitionedDml.create = function create(properties) {
+ return new PartitionedDml(properties);
+ };
- /**
- * Encodes the specified RecipeList message. Does not implicitly {@link google.spanner.v1.RecipeList.verify|verify} messages.
- * @function encode
- * @memberof google.spanner.v1.RecipeList
- * @static
- * @param {google.spanner.v1.IRecipeList} message RecipeList message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- RecipeList.encode = function encode(message, writer) {
- if (!writer)
- writer = $Writer.create();
- if (message.schemaGeneration != null && Object.hasOwnProperty.call(message, "schemaGeneration"))
- writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.schemaGeneration);
- if (message.recipe != null && message.recipe.length)
- for (var i = 0; i < message.recipe.length; ++i)
- $root.google.spanner.v1.KeyRecipe.encode(message.recipe[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
- return writer;
- };
+ /**
+ * Encodes the specified PartitionedDml message. Does not implicitly {@link google.spanner.v1.TransactionOptions.PartitionedDml.verify|verify} messages.
+ * @function encode
+ * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
+ * @static
+ * @param {google.spanner.v1.TransactionOptions.IPartitionedDml} message PartitionedDml message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ PartitionedDml.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ return writer;
+ };
- /**
- * Encodes the specified RecipeList message, length delimited. Does not implicitly {@link google.spanner.v1.RecipeList.verify|verify} messages.
- * @function encodeDelimited
- * @memberof google.spanner.v1.RecipeList
- * @static
- * @param {google.spanner.v1.IRecipeList} message RecipeList message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- RecipeList.encodeDelimited = function encodeDelimited(message, writer) {
- return this.encode(message, writer).ldelim();
- };
+ /**
+ * Encodes the specified PartitionedDml message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.PartitionedDml.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
+ * @static
+ * @param {google.spanner.v1.TransactionOptions.IPartitionedDml} message PartitionedDml message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ PartitionedDml.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
- /**
- * Decodes a RecipeList message from the specified reader or buffer.
- * @function decode
- * @memberof google.spanner.v1.RecipeList
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.RecipeList} RecipeList
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- RecipeList.decode = function decode(reader, length, error) {
- if (!(reader instanceof $Reader))
- reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.RecipeList();
- while (reader.pos < end) {
- var tag = reader.uint32();
- if (tag === error)
- break;
- switch (tag >>> 3) {
- case 1: {
- message.schemaGeneration = reader.bytes();
+ /**
+ * Decodes a PartitionedDml message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.spanner.v1.TransactionOptions.PartitionedDml} PartitionedDml
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ PartitionedDml.decode = function decode(reader, length, error) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.TransactionOptions.PartitionedDml();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ if (tag === error)
break;
- }
- case 3: {
- if (!(message.recipe && message.recipe.length))
- message.recipe = [];
- message.recipe.push($root.google.spanner.v1.KeyRecipe.decode(reader, reader.uint32()));
+ switch (tag >>> 3) {
+ default:
+ reader.skipType(tag & 7);
break;
}
- default:
- reader.skipType(tag & 7);
- break;
}
- }
- return message;
- };
+ return message;
+ };
- /**
- * Decodes a RecipeList message from the specified reader or buffer, length delimited.
- * @function decodeDelimited
- * @memberof google.spanner.v1.RecipeList
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.RecipeList} RecipeList
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- RecipeList.decodeDelimited = function decodeDelimited(reader) {
- if (!(reader instanceof $Reader))
- reader = new $Reader(reader);
- return this.decode(reader, reader.uint32());
- };
+ /**
+ * Decodes a PartitionedDml message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.spanner.v1.TransactionOptions.PartitionedDml} PartitionedDml
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ PartitionedDml.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
- /**
- * Verifies a RecipeList message.
- * @function verify
- * @memberof google.spanner.v1.RecipeList
- * @static
- * @param {Object.} message Plain object to verify
- * @returns {string|null} `null` if valid, otherwise the reason why it is not
- */
- RecipeList.verify = function verify(message) {
- if (typeof message !== "object" || message === null)
- return "object expected";
- if (message.schemaGeneration != null && message.hasOwnProperty("schemaGeneration"))
- if (!(message.schemaGeneration && typeof message.schemaGeneration.length === "number" || $util.isString(message.schemaGeneration)))
- return "schemaGeneration: buffer expected";
- if (message.recipe != null && message.hasOwnProperty("recipe")) {
- if (!Array.isArray(message.recipe))
- return "recipe: array expected";
- for (var i = 0; i < message.recipe.length; ++i) {
- var error = $root.google.spanner.v1.KeyRecipe.verify(message.recipe[i]);
- if (error)
- return "recipe." + error;
- }
- }
- return null;
- };
+ /**
+ * Verifies a PartitionedDml message.
+ * @function verify
+ * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ PartitionedDml.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ return null;
+ };
- /**
- * Creates a RecipeList message from a plain object. Also converts values to their respective internal types.
- * @function fromObject
- * @memberof google.spanner.v1.RecipeList
- * @static
- * @param {Object.} object Plain object
- * @returns {google.spanner.v1.RecipeList} RecipeList
- */
- RecipeList.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.RecipeList)
- return object;
- var message = new $root.google.spanner.v1.RecipeList();
- if (object.schemaGeneration != null)
- if (typeof object.schemaGeneration === "string")
- $util.base64.decode(object.schemaGeneration, message.schemaGeneration = $util.newBuffer($util.base64.length(object.schemaGeneration)), 0);
- else if (object.schemaGeneration.length >= 0)
- message.schemaGeneration = object.schemaGeneration;
- if (object.recipe) {
- if (!Array.isArray(object.recipe))
- throw TypeError(".google.spanner.v1.RecipeList.recipe: array expected");
- message.recipe = [];
- for (var i = 0; i < object.recipe.length; ++i) {
- if (typeof object.recipe[i] !== "object")
- throw TypeError(".google.spanner.v1.RecipeList.recipe: object expected");
- message.recipe[i] = $root.google.spanner.v1.KeyRecipe.fromObject(object.recipe[i]);
- }
- }
- return message;
- };
+ /**
+ * Creates a PartitionedDml message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.spanner.v1.TransactionOptions.PartitionedDml} PartitionedDml
+ */
+ PartitionedDml.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.TransactionOptions.PartitionedDml)
+ return object;
+ return new $root.google.spanner.v1.TransactionOptions.PartitionedDml();
+ };
- /**
- * Creates a plain object from a RecipeList message. Also converts values to other types if specified.
- * @function toObject
- * @memberof google.spanner.v1.RecipeList
- * @static
- * @param {google.spanner.v1.RecipeList} message RecipeList
- * @param {$protobuf.IConversionOptions} [options] Conversion options
- * @returns {Object.} Plain object
- */
- RecipeList.toObject = function toObject(message, options) {
- if (!options)
- options = {};
- var object = {};
- if (options.arrays || options.defaults)
- object.recipe = [];
- if (options.defaults)
- if (options.bytes === String)
- object.schemaGeneration = "";
- else {
- object.schemaGeneration = [];
- if (options.bytes !== Array)
- object.schemaGeneration = $util.newBuffer(object.schemaGeneration);
+ /**
+ * Creates a plain object from a PartitionedDml message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
+ * @static
+ * @param {google.spanner.v1.TransactionOptions.PartitionedDml} message PartitionedDml
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ PartitionedDml.toObject = function toObject() {
+ return {};
+ };
+
+ /**
+ * Converts this PartitionedDml to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ PartitionedDml.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for PartitionedDml
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.TransactionOptions.PartitionedDml
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ PartitionedDml.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
}
- if (message.schemaGeneration != null && message.hasOwnProperty("schemaGeneration"))
- object.schemaGeneration = options.bytes === String ? $util.base64.encode(message.schemaGeneration, 0, message.schemaGeneration.length) : options.bytes === Array ? Array.prototype.slice.call(message.schemaGeneration) : message.schemaGeneration;
- if (message.recipe && message.recipe.length) {
- object.recipe = [];
- for (var j = 0; j < message.recipe.length; ++j)
- object.recipe[j] = $root.google.spanner.v1.KeyRecipe.toObject(message.recipe[j], options);
- }
- return object;
- };
+ return typeUrlPrefix + "/google.spanner.v1.TransactionOptions.PartitionedDml";
+ };
- /**
- * Converts this RecipeList to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.RecipeList
- * @instance
- * @returns {Object.} JSON object
- */
- RecipeList.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
- };
+ return PartitionedDml;
+ })();
- /**
- * Gets the default type url for RecipeList
- * @function getTypeUrl
- * @memberof google.spanner.v1.RecipeList
- * @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
- */
- RecipeList.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
+ TransactionOptions.ReadOnly = (function() {
+
+ /**
+ * Properties of a ReadOnly.
+ * @memberof google.spanner.v1.TransactionOptions
+ * @interface IReadOnly
+ * @property {boolean|null} [strong] ReadOnly strong
+ * @property {google.protobuf.ITimestamp|null} [minReadTimestamp] ReadOnly minReadTimestamp
+ * @property {google.protobuf.IDuration|null} [maxStaleness] ReadOnly maxStaleness
+ * @property {google.protobuf.ITimestamp|null} [readTimestamp] ReadOnly readTimestamp
+ * @property {google.protobuf.IDuration|null} [exactStaleness] ReadOnly exactStaleness
+ * @property {boolean|null} [returnReadTimestamp] ReadOnly returnReadTimestamp
+ */
+
+ /**
+ * Constructs a new ReadOnly.
+ * @memberof google.spanner.v1.TransactionOptions
+ * @classdesc Represents a ReadOnly.
+ * @implements IReadOnly
+ * @constructor
+ * @param {google.spanner.v1.TransactionOptions.IReadOnly=} [properties] Properties to set
+ */
+ function ReadOnly(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
}
- return typeUrlPrefix + "/google.spanner.v1.RecipeList";
- };
- return RecipeList;
- })();
+ /**
+ * ReadOnly strong.
+ * @member {boolean|null|undefined} strong
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @instance
+ */
+ ReadOnly.prototype.strong = null;
- v1.CacheUpdate = (function() {
+ /**
+ * ReadOnly minReadTimestamp.
+ * @member {google.protobuf.ITimestamp|null|undefined} minReadTimestamp
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @instance
+ */
+ ReadOnly.prototype.minReadTimestamp = null;
- /**
- * Properties of a CacheUpdate.
- * @memberof google.spanner.v1
- * @interface ICacheUpdate
- * @property {number|Long|null} [databaseId] CacheUpdate databaseId
- * @property {Array.|null} [range] CacheUpdate range
- * @property {Array.|null} [group] CacheUpdate group
- * @property {google.spanner.v1.IRecipeList|null} [keyRecipes] CacheUpdate keyRecipes
- */
+ /**
+ * ReadOnly maxStaleness.
+ * @member {google.protobuf.IDuration|null|undefined} maxStaleness
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @instance
+ */
+ ReadOnly.prototype.maxStaleness = null;
- /**
- * Constructs a new CacheUpdate.
- * @memberof google.spanner.v1
- * @classdesc Represents a CacheUpdate.
- * @implements ICacheUpdate
- * @constructor
- * @param {google.spanner.v1.ICacheUpdate=} [properties] Properties to set
- */
- function CacheUpdate(properties) {
- this.range = [];
- this.group = [];
- if (properties)
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
- if (properties[keys[i]] != null)
- this[keys[i]] = properties[keys[i]];
- }
+ /**
+ * ReadOnly readTimestamp.
+ * @member {google.protobuf.ITimestamp|null|undefined} readTimestamp
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @instance
+ */
+ ReadOnly.prototype.readTimestamp = null;
- /**
- * CacheUpdate databaseId.
- * @member {number|Long} databaseId
- * @memberof google.spanner.v1.CacheUpdate
- * @instance
- */
- CacheUpdate.prototype.databaseId = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
+ /**
+ * ReadOnly exactStaleness.
+ * @member {google.protobuf.IDuration|null|undefined} exactStaleness
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @instance
+ */
+ ReadOnly.prototype.exactStaleness = null;
- /**
- * CacheUpdate range.
- * @member {Array.} range
- * @memberof google.spanner.v1.CacheUpdate
- * @instance
- */
- CacheUpdate.prototype.range = $util.emptyArray;
+ /**
+ * ReadOnly returnReadTimestamp.
+ * @member {boolean} returnReadTimestamp
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @instance
+ */
+ ReadOnly.prototype.returnReadTimestamp = false;
- /**
- * CacheUpdate group.
- * @member {Array.} group
- * @memberof google.spanner.v1.CacheUpdate
- * @instance
- */
- CacheUpdate.prototype.group = $util.emptyArray;
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
- /**
- * CacheUpdate keyRecipes.
- * @member {google.spanner.v1.IRecipeList|null|undefined} keyRecipes
- * @memberof google.spanner.v1.CacheUpdate
- * @instance
- */
- CacheUpdate.prototype.keyRecipes = null;
+ /**
+ * ReadOnly timestampBound.
+ * @member {"strong"|"minReadTimestamp"|"maxStaleness"|"readTimestamp"|"exactStaleness"|undefined} timestampBound
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @instance
+ */
+ Object.defineProperty(ReadOnly.prototype, "timestampBound", {
+ get: $util.oneOfGetter($oneOfFields = ["strong", "minReadTimestamp", "maxStaleness", "readTimestamp", "exactStaleness"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
- /**
- * Creates a new CacheUpdate instance using the specified properties.
- * @function create
- * @memberof google.spanner.v1.CacheUpdate
- * @static
- * @param {google.spanner.v1.ICacheUpdate=} [properties] Properties to set
- * @returns {google.spanner.v1.CacheUpdate} CacheUpdate instance
- */
- CacheUpdate.create = function create(properties) {
- return new CacheUpdate(properties);
- };
+ /**
+ * Creates a new ReadOnly instance using the specified properties.
+ * @function create
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @static
+ * @param {google.spanner.v1.TransactionOptions.IReadOnly=} [properties] Properties to set
+ * @returns {google.spanner.v1.TransactionOptions.ReadOnly} ReadOnly instance
+ */
+ ReadOnly.create = function create(properties) {
+ return new ReadOnly(properties);
+ };
- /**
- * Encodes the specified CacheUpdate message. Does not implicitly {@link google.spanner.v1.CacheUpdate.verify|verify} messages.
- * @function encode
- * @memberof google.spanner.v1.CacheUpdate
- * @static
- * @param {google.spanner.v1.ICacheUpdate} message CacheUpdate message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- CacheUpdate.encode = function encode(message, writer) {
- if (!writer)
- writer = $Writer.create();
- if (message.databaseId != null && Object.hasOwnProperty.call(message, "databaseId"))
- writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.databaseId);
- if (message.range != null && message.range.length)
- for (var i = 0; i < message.range.length; ++i)
- $root.google.spanner.v1.Range.encode(message.range[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
- if (message.group != null && message.group.length)
- for (var i = 0; i < message.group.length; ++i)
- $root.google.spanner.v1.Group.encode(message.group[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
- if (message.keyRecipes != null && Object.hasOwnProperty.call(message, "keyRecipes"))
- $root.google.spanner.v1.RecipeList.encode(message.keyRecipes, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
- return writer;
- };
+ /**
+ * Encodes the specified ReadOnly message. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadOnly.verify|verify} messages.
+ * @function encode
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @static
+ * @param {google.spanner.v1.TransactionOptions.IReadOnly} message ReadOnly message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ReadOnly.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.strong != null && Object.hasOwnProperty.call(message, "strong"))
+ writer.uint32(/* id 1, wireType 0 =*/8).bool(message.strong);
+ if (message.minReadTimestamp != null && Object.hasOwnProperty.call(message, "minReadTimestamp"))
+ $root.google.protobuf.Timestamp.encode(message.minReadTimestamp, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.maxStaleness != null && Object.hasOwnProperty.call(message, "maxStaleness"))
+ $root.google.protobuf.Duration.encode(message.maxStaleness, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.readTimestamp != null && Object.hasOwnProperty.call(message, "readTimestamp"))
+ $root.google.protobuf.Timestamp.encode(message.readTimestamp, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ if (message.exactStaleness != null && Object.hasOwnProperty.call(message, "exactStaleness"))
+ $root.google.protobuf.Duration.encode(message.exactStaleness, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
+ if (message.returnReadTimestamp != null && Object.hasOwnProperty.call(message, "returnReadTimestamp"))
+ writer.uint32(/* id 6, wireType 0 =*/48).bool(message.returnReadTimestamp);
+ return writer;
+ };
- /**
- * Encodes the specified CacheUpdate message, length delimited. Does not implicitly {@link google.spanner.v1.CacheUpdate.verify|verify} messages.
- * @function encodeDelimited
- * @memberof google.spanner.v1.CacheUpdate
- * @static
- * @param {google.spanner.v1.ICacheUpdate} message CacheUpdate message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- CacheUpdate.encodeDelimited = function encodeDelimited(message, writer) {
- return this.encode(message, writer).ldelim();
- };
+ /**
+ * Encodes the specified ReadOnly message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionOptions.ReadOnly.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @static
+ * @param {google.spanner.v1.TransactionOptions.IReadOnly} message ReadOnly message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ReadOnly.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
- /**
- * Decodes a CacheUpdate message from the specified reader or buffer.
- * @function decode
- * @memberof google.spanner.v1.CacheUpdate
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.CacheUpdate} CacheUpdate
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- CacheUpdate.decode = function decode(reader, length, error) {
- if (!(reader instanceof $Reader))
- reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.CacheUpdate();
- while (reader.pos < end) {
- var tag = reader.uint32();
- if (tag === error)
- break;
- switch (tag >>> 3) {
- case 1: {
- message.databaseId = reader.uint64();
+ /**
+ * Decodes a ReadOnly message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.spanner.v1.TransactionOptions.ReadOnly} ReadOnly
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ReadOnly.decode = function decode(reader, length, error) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.TransactionOptions.ReadOnly();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ if (tag === error)
+ break;
+ switch (tag >>> 3) {
+ case 1: {
+ message.strong = reader.bool();
+ break;
+ }
+ case 2: {
+ message.minReadTimestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
+ break;
+ }
+ case 3: {
+ message.maxStaleness = $root.google.protobuf.Duration.decode(reader, reader.uint32());
+ break;
+ }
+ case 4: {
+ message.readTimestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
+ break;
+ }
+ case 5: {
+ message.exactStaleness = $root.google.protobuf.Duration.decode(reader, reader.uint32());
+ break;
+ }
+ case 6: {
+ message.returnReadTimestamp = reader.bool();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
break;
}
- case 2: {
- if (!(message.range && message.range.length))
- message.range = [];
- message.range.push($root.google.spanner.v1.Range.decode(reader, reader.uint32()));
- break;
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ReadOnly message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.spanner.v1.TransactionOptions.ReadOnly} ReadOnly
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ReadOnly.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ReadOnly message.
+ * @function verify
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ReadOnly.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.strong != null && message.hasOwnProperty("strong")) {
+ properties.timestampBound = 1;
+ if (typeof message.strong !== "boolean")
+ return "strong: boolean expected";
+ }
+ if (message.minReadTimestamp != null && message.hasOwnProperty("minReadTimestamp")) {
+ if (properties.timestampBound === 1)
+ return "timestampBound: multiple values";
+ properties.timestampBound = 1;
+ {
+ var error = $root.google.protobuf.Timestamp.verify(message.minReadTimestamp);
+ if (error)
+ return "minReadTimestamp." + error;
}
- case 3: {
- if (!(message.group && message.group.length))
- message.group = [];
- message.group.push($root.google.spanner.v1.Group.decode(reader, reader.uint32()));
- break;
+ }
+ if (message.maxStaleness != null && message.hasOwnProperty("maxStaleness")) {
+ if (properties.timestampBound === 1)
+ return "timestampBound: multiple values";
+ properties.timestampBound = 1;
+ {
+ var error = $root.google.protobuf.Duration.verify(message.maxStaleness);
+ if (error)
+ return "maxStaleness." + error;
}
- case 5: {
- message.keyRecipes = $root.google.spanner.v1.RecipeList.decode(reader, reader.uint32());
- break;
+ }
+ if (message.readTimestamp != null && message.hasOwnProperty("readTimestamp")) {
+ if (properties.timestampBound === 1)
+ return "timestampBound: multiple values";
+ properties.timestampBound = 1;
+ {
+ var error = $root.google.protobuf.Timestamp.verify(message.readTimestamp);
+ if (error)
+ return "readTimestamp." + error;
}
- default:
- reader.skipType(tag & 7);
- break;
}
- }
- return message;
- };
-
- /**
- * Decodes a CacheUpdate message from the specified reader or buffer, length delimited.
- * @function decodeDelimited
- * @memberof google.spanner.v1.CacheUpdate
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.CacheUpdate} CacheUpdate
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- CacheUpdate.decodeDelimited = function decodeDelimited(reader) {
- if (!(reader instanceof $Reader))
- reader = new $Reader(reader);
- return this.decode(reader, reader.uint32());
- };
+ if (message.exactStaleness != null && message.hasOwnProperty("exactStaleness")) {
+ if (properties.timestampBound === 1)
+ return "timestampBound: multiple values";
+ properties.timestampBound = 1;
+ {
+ var error = $root.google.protobuf.Duration.verify(message.exactStaleness);
+ if (error)
+ return "exactStaleness." + error;
+ }
+ }
+ if (message.returnReadTimestamp != null && message.hasOwnProperty("returnReadTimestamp"))
+ if (typeof message.returnReadTimestamp !== "boolean")
+ return "returnReadTimestamp: boolean expected";
+ return null;
+ };
- /**
- * Verifies a CacheUpdate message.
- * @function verify
- * @memberof google.spanner.v1.CacheUpdate
- * @static
- * @param {Object.} message Plain object to verify
- * @returns {string|null} `null` if valid, otherwise the reason why it is not
- */
- CacheUpdate.verify = function verify(message) {
- if (typeof message !== "object" || message === null)
- return "object expected";
- if (message.databaseId != null && message.hasOwnProperty("databaseId"))
- if (!$util.isInteger(message.databaseId) && !(message.databaseId && $util.isInteger(message.databaseId.low) && $util.isInteger(message.databaseId.high)))
- return "databaseId: integer|Long expected";
- if (message.range != null && message.hasOwnProperty("range")) {
- if (!Array.isArray(message.range))
- return "range: array expected";
- for (var i = 0; i < message.range.length; ++i) {
- var error = $root.google.spanner.v1.Range.verify(message.range[i]);
- if (error)
- return "range." + error;
+ /**
+ * Creates a ReadOnly message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.spanner.v1.TransactionOptions.ReadOnly} ReadOnly
+ */
+ ReadOnly.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.TransactionOptions.ReadOnly)
+ return object;
+ var message = new $root.google.spanner.v1.TransactionOptions.ReadOnly();
+ if (object.strong != null)
+ message.strong = Boolean(object.strong);
+ if (object.minReadTimestamp != null) {
+ if (typeof object.minReadTimestamp !== "object")
+ throw TypeError(".google.spanner.v1.TransactionOptions.ReadOnly.minReadTimestamp: object expected");
+ message.minReadTimestamp = $root.google.protobuf.Timestamp.fromObject(object.minReadTimestamp);
}
- }
- if (message.group != null && message.hasOwnProperty("group")) {
- if (!Array.isArray(message.group))
- return "group: array expected";
- for (var i = 0; i < message.group.length; ++i) {
- var error = $root.google.spanner.v1.Group.verify(message.group[i]);
- if (error)
- return "group." + error;
+ if (object.maxStaleness != null) {
+ if (typeof object.maxStaleness !== "object")
+ throw TypeError(".google.spanner.v1.TransactionOptions.ReadOnly.maxStaleness: object expected");
+ message.maxStaleness = $root.google.protobuf.Duration.fromObject(object.maxStaleness);
}
- }
- if (message.keyRecipes != null && message.hasOwnProperty("keyRecipes")) {
- var error = $root.google.spanner.v1.RecipeList.verify(message.keyRecipes);
- if (error)
- return "keyRecipes." + error;
- }
- return null;
- };
+ if (object.readTimestamp != null) {
+ if (typeof object.readTimestamp !== "object")
+ throw TypeError(".google.spanner.v1.TransactionOptions.ReadOnly.readTimestamp: object expected");
+ message.readTimestamp = $root.google.protobuf.Timestamp.fromObject(object.readTimestamp);
+ }
+ if (object.exactStaleness != null) {
+ if (typeof object.exactStaleness !== "object")
+ throw TypeError(".google.spanner.v1.TransactionOptions.ReadOnly.exactStaleness: object expected");
+ message.exactStaleness = $root.google.protobuf.Duration.fromObject(object.exactStaleness);
+ }
+ if (object.returnReadTimestamp != null)
+ message.returnReadTimestamp = Boolean(object.returnReadTimestamp);
+ return message;
+ };
- /**
- * Creates a CacheUpdate message from a plain object. Also converts values to their respective internal types.
- * @function fromObject
- * @memberof google.spanner.v1.CacheUpdate
- * @static
- * @param {Object.} object Plain object
- * @returns {google.spanner.v1.CacheUpdate} CacheUpdate
- */
- CacheUpdate.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.CacheUpdate)
- return object;
- var message = new $root.google.spanner.v1.CacheUpdate();
- if (object.databaseId != null)
- if ($util.Long)
- (message.databaseId = $util.Long.fromValue(object.databaseId)).unsigned = true;
- else if (typeof object.databaseId === "string")
- message.databaseId = parseInt(object.databaseId, 10);
- else if (typeof object.databaseId === "number")
- message.databaseId = object.databaseId;
- else if (typeof object.databaseId === "object")
- message.databaseId = new $util.LongBits(object.databaseId.low >>> 0, object.databaseId.high >>> 0).toNumber(true);
- if (object.range) {
- if (!Array.isArray(object.range))
- throw TypeError(".google.spanner.v1.CacheUpdate.range: array expected");
- message.range = [];
- for (var i = 0; i < object.range.length; ++i) {
- if (typeof object.range[i] !== "object")
- throw TypeError(".google.spanner.v1.CacheUpdate.range: object expected");
- message.range[i] = $root.google.spanner.v1.Range.fromObject(object.range[i]);
+ /**
+ * Creates a plain object from a ReadOnly message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @static
+ * @param {google.spanner.v1.TransactionOptions.ReadOnly} message ReadOnly
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ReadOnly.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.returnReadTimestamp = false;
+ if (message.strong != null && message.hasOwnProperty("strong")) {
+ object.strong = message.strong;
+ if (options.oneofs)
+ object.timestampBound = "strong";
+ }
+ if (message.minReadTimestamp != null && message.hasOwnProperty("minReadTimestamp")) {
+ object.minReadTimestamp = $root.google.protobuf.Timestamp.toObject(message.minReadTimestamp, options);
+ if (options.oneofs)
+ object.timestampBound = "minReadTimestamp";
+ }
+ if (message.maxStaleness != null && message.hasOwnProperty("maxStaleness")) {
+ object.maxStaleness = $root.google.protobuf.Duration.toObject(message.maxStaleness, options);
+ if (options.oneofs)
+ object.timestampBound = "maxStaleness";
}
- }
- if (object.group) {
- if (!Array.isArray(object.group))
- throw TypeError(".google.spanner.v1.CacheUpdate.group: array expected");
- message.group = [];
- for (var i = 0; i < object.group.length; ++i) {
- if (typeof object.group[i] !== "object")
- throw TypeError(".google.spanner.v1.CacheUpdate.group: object expected");
- message.group[i] = $root.google.spanner.v1.Group.fromObject(object.group[i]);
+ if (message.readTimestamp != null && message.hasOwnProperty("readTimestamp")) {
+ object.readTimestamp = $root.google.protobuf.Timestamp.toObject(message.readTimestamp, options);
+ if (options.oneofs)
+ object.timestampBound = "readTimestamp";
}
- }
- if (object.keyRecipes != null) {
- if (typeof object.keyRecipes !== "object")
- throw TypeError(".google.spanner.v1.CacheUpdate.keyRecipes: object expected");
- message.keyRecipes = $root.google.spanner.v1.RecipeList.fromObject(object.keyRecipes);
- }
- return message;
- };
+ if (message.exactStaleness != null && message.hasOwnProperty("exactStaleness")) {
+ object.exactStaleness = $root.google.protobuf.Duration.toObject(message.exactStaleness, options);
+ if (options.oneofs)
+ object.timestampBound = "exactStaleness";
+ }
+ if (message.returnReadTimestamp != null && message.hasOwnProperty("returnReadTimestamp"))
+ object.returnReadTimestamp = message.returnReadTimestamp;
+ return object;
+ };
- /**
- * Creates a plain object from a CacheUpdate message. Also converts values to other types if specified.
- * @function toObject
- * @memberof google.spanner.v1.CacheUpdate
- * @static
- * @param {google.spanner.v1.CacheUpdate} message CacheUpdate
- * @param {$protobuf.IConversionOptions} [options] Conversion options
- * @returns {Object.} Plain object
- */
- CacheUpdate.toObject = function toObject(message, options) {
- if (!options)
- options = {};
- var object = {};
- if (options.arrays || options.defaults) {
- object.range = [];
- object.group = [];
- }
- if (options.defaults) {
- if ($util.Long) {
- var long = new $util.Long(0, 0, true);
- object.databaseId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
- } else
- object.databaseId = options.longs === String ? "0" : 0;
- object.keyRecipes = null;
- }
- if (message.databaseId != null && message.hasOwnProperty("databaseId"))
- if (typeof message.databaseId === "number")
- object.databaseId = options.longs === String ? String(message.databaseId) : message.databaseId;
- else
- object.databaseId = options.longs === String ? $util.Long.prototype.toString.call(message.databaseId) : options.longs === Number ? new $util.LongBits(message.databaseId.low >>> 0, message.databaseId.high >>> 0).toNumber(true) : message.databaseId;
- if (message.range && message.range.length) {
- object.range = [];
- for (var j = 0; j < message.range.length; ++j)
- object.range[j] = $root.google.spanner.v1.Range.toObject(message.range[j], options);
- }
- if (message.group && message.group.length) {
- object.group = [];
- for (var j = 0; j < message.group.length; ++j)
- object.group[j] = $root.google.spanner.v1.Group.toObject(message.group[j], options);
- }
- if (message.keyRecipes != null && message.hasOwnProperty("keyRecipes"))
- object.keyRecipes = $root.google.spanner.v1.RecipeList.toObject(message.keyRecipes, options);
- return object;
- };
+ /**
+ * Converts this ReadOnly to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ReadOnly.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
- /**
- * Converts this CacheUpdate to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.CacheUpdate
- * @instance
- * @returns {Object.} JSON object
- */
- CacheUpdate.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
- };
+ /**
+ * Gets the default type url for ReadOnly
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.TransactionOptions.ReadOnly
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ ReadOnly.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.spanner.v1.TransactionOptions.ReadOnly";
+ };
+
+ return ReadOnly;
+ })();
/**
- * Gets the default type url for CacheUpdate
- * @function getTypeUrl
- * @memberof google.spanner.v1.CacheUpdate
- * @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
+ * IsolationLevel enum.
+ * @name google.spanner.v1.TransactionOptions.IsolationLevel
+ * @enum {number}
+ * @property {number} ISOLATION_LEVEL_UNSPECIFIED=0 ISOLATION_LEVEL_UNSPECIFIED value
+ * @property {number} SERIALIZABLE=1 SERIALIZABLE value
+ * @property {number} REPEATABLE_READ=2 REPEATABLE_READ value
*/
- CacheUpdate.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
- }
- return typeUrlPrefix + "/google.spanner.v1.CacheUpdate";
- };
+ TransactionOptions.IsolationLevel = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "ISOLATION_LEVEL_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "SERIALIZABLE"] = 1;
+ values[valuesById[2] = "REPEATABLE_READ"] = 2;
+ return values;
+ })();
- return CacheUpdate;
+ return TransactionOptions;
})();
- v1.RoutingHint = (function() {
+ v1.Transaction = (function() {
/**
- * Properties of a RoutingHint.
+ * Properties of a Transaction.
* @memberof google.spanner.v1
- * @interface IRoutingHint
- * @property {number|Long|null} [operationUid] RoutingHint operationUid
- * @property {number|Long|null} [databaseId] RoutingHint databaseId
- * @property {Uint8Array|null} [schemaGeneration] RoutingHint schemaGeneration
- * @property {Uint8Array|null} [key] RoutingHint key
- * @property {Uint8Array|null} [limitKey] RoutingHint limitKey
- * @property {number|Long|null} [groupUid] RoutingHint groupUid
- * @property {number|Long|null} [splitId] RoutingHint splitId
- * @property {number|Long|null} [tabletUid] RoutingHint tabletUid
- * @property {Array.|null} [skippedTabletUid] RoutingHint skippedTabletUid
- * @property {string|null} [clientLocation] RoutingHint clientLocation
+ * @interface ITransaction
+ * @property {Uint8Array|null} [id] Transaction id
+ * @property {google.protobuf.ITimestamp|null} [readTimestamp] Transaction readTimestamp
+ * @property {google.spanner.v1.IMultiplexedSessionPrecommitToken|null} [precommitToken] Transaction precommitToken
+ * @property {google.spanner.v1.ICacheUpdate|null} [cacheUpdate] Transaction cacheUpdate
*/
/**
- * Constructs a new RoutingHint.
+ * Constructs a new Transaction.
* @memberof google.spanner.v1
- * @classdesc Represents a RoutingHint.
- * @implements IRoutingHint
+ * @classdesc Represents a Transaction.
+ * @implements ITransaction
* @constructor
- * @param {google.spanner.v1.IRoutingHint=} [properties] Properties to set
+ * @param {google.spanner.v1.ITransaction=} [properties] Properties to set
*/
- function RoutingHint(properties) {
- this.skippedTabletUid = [];
+ function Transaction(properties) {
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
@@ -92000,206 +92465,119 @@
}
/**
- * RoutingHint operationUid.
- * @member {number|Long} operationUid
- * @memberof google.spanner.v1.RoutingHint
- * @instance
- */
- RoutingHint.prototype.operationUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
-
- /**
- * RoutingHint databaseId.
- * @member {number|Long} databaseId
- * @memberof google.spanner.v1.RoutingHint
- * @instance
- */
- RoutingHint.prototype.databaseId = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
-
- /**
- * RoutingHint schemaGeneration.
- * @member {Uint8Array} schemaGeneration
- * @memberof google.spanner.v1.RoutingHint
- * @instance
- */
- RoutingHint.prototype.schemaGeneration = $util.newBuffer([]);
-
- /**
- * RoutingHint key.
- * @member {Uint8Array} key
- * @memberof google.spanner.v1.RoutingHint
- * @instance
- */
- RoutingHint.prototype.key = $util.newBuffer([]);
-
- /**
- * RoutingHint limitKey.
- * @member {Uint8Array} limitKey
- * @memberof google.spanner.v1.RoutingHint
- * @instance
- */
- RoutingHint.prototype.limitKey = $util.newBuffer([]);
-
- /**
- * RoutingHint groupUid.
- * @member {number|Long} groupUid
- * @memberof google.spanner.v1.RoutingHint
- * @instance
- */
- RoutingHint.prototype.groupUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
-
- /**
- * RoutingHint splitId.
- * @member {number|Long} splitId
- * @memberof google.spanner.v1.RoutingHint
+ * Transaction id.
+ * @member {Uint8Array} id
+ * @memberof google.spanner.v1.Transaction
* @instance
*/
- RoutingHint.prototype.splitId = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
+ Transaction.prototype.id = $util.newBuffer([]);
/**
- * RoutingHint tabletUid.
- * @member {number|Long} tabletUid
- * @memberof google.spanner.v1.RoutingHint
+ * Transaction readTimestamp.
+ * @member {google.protobuf.ITimestamp|null|undefined} readTimestamp
+ * @memberof google.spanner.v1.Transaction
* @instance
*/
- RoutingHint.prototype.tabletUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
+ Transaction.prototype.readTimestamp = null;
/**
- * RoutingHint skippedTabletUid.
- * @member {Array.} skippedTabletUid
- * @memberof google.spanner.v1.RoutingHint
+ * Transaction precommitToken.
+ * @member {google.spanner.v1.IMultiplexedSessionPrecommitToken|null|undefined} precommitToken
+ * @memberof google.spanner.v1.Transaction
* @instance
*/
- RoutingHint.prototype.skippedTabletUid = $util.emptyArray;
+ Transaction.prototype.precommitToken = null;
/**
- * RoutingHint clientLocation.
- * @member {string} clientLocation
- * @memberof google.spanner.v1.RoutingHint
+ * Transaction cacheUpdate.
+ * @member {google.spanner.v1.ICacheUpdate|null|undefined} cacheUpdate
+ * @memberof google.spanner.v1.Transaction
* @instance
*/
- RoutingHint.prototype.clientLocation = "";
+ Transaction.prototype.cacheUpdate = null;
/**
- * Creates a new RoutingHint instance using the specified properties.
+ * Creates a new Transaction instance using the specified properties.
* @function create
- * @memberof google.spanner.v1.RoutingHint
- * @static
- * @param {google.spanner.v1.IRoutingHint=} [properties] Properties to set
- * @returns {google.spanner.v1.RoutingHint} RoutingHint instance
+ * @memberof google.spanner.v1.Transaction
+ * @static
+ * @param {google.spanner.v1.ITransaction=} [properties] Properties to set
+ * @returns {google.spanner.v1.Transaction} Transaction instance
*/
- RoutingHint.create = function create(properties) {
- return new RoutingHint(properties);
+ Transaction.create = function create(properties) {
+ return new Transaction(properties);
};
/**
- * Encodes the specified RoutingHint message. Does not implicitly {@link google.spanner.v1.RoutingHint.verify|verify} messages.
+ * Encodes the specified Transaction message. Does not implicitly {@link google.spanner.v1.Transaction.verify|verify} messages.
* @function encode
- * @memberof google.spanner.v1.RoutingHint
+ * @memberof google.spanner.v1.Transaction
* @static
- * @param {google.spanner.v1.IRoutingHint} message RoutingHint message or plain object to encode
+ * @param {google.spanner.v1.ITransaction} message Transaction message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- RoutingHint.encode = function encode(message, writer) {
+ Transaction.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
- if (message.operationUid != null && Object.hasOwnProperty.call(message, "operationUid"))
- writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.operationUid);
- if (message.databaseId != null && Object.hasOwnProperty.call(message, "databaseId"))
- writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.databaseId);
- if (message.schemaGeneration != null && Object.hasOwnProperty.call(message, "schemaGeneration"))
- writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.schemaGeneration);
- if (message.key != null && Object.hasOwnProperty.call(message, "key"))
- writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.key);
- if (message.limitKey != null && Object.hasOwnProperty.call(message, "limitKey"))
- writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.limitKey);
- if (message.groupUid != null && Object.hasOwnProperty.call(message, "groupUid"))
- writer.uint32(/* id 6, wireType 0 =*/48).uint64(message.groupUid);
- if (message.splitId != null && Object.hasOwnProperty.call(message, "splitId"))
- writer.uint32(/* id 7, wireType 0 =*/56).uint64(message.splitId);
- if (message.tabletUid != null && Object.hasOwnProperty.call(message, "tabletUid"))
- writer.uint32(/* id 8, wireType 0 =*/64).uint64(message.tabletUid);
- if (message.skippedTabletUid != null && message.skippedTabletUid.length)
- for (var i = 0; i < message.skippedTabletUid.length; ++i)
- $root.google.spanner.v1.RoutingHint.SkippedTablet.encode(message.skippedTabletUid[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();
- if (message.clientLocation != null && Object.hasOwnProperty.call(message, "clientLocation"))
- writer.uint32(/* id 10, wireType 2 =*/82).string(message.clientLocation);
+ if (message.id != null && Object.hasOwnProperty.call(message, "id"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id);
+ if (message.readTimestamp != null && Object.hasOwnProperty.call(message, "readTimestamp"))
+ $root.google.protobuf.Timestamp.encode(message.readTimestamp, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.precommitToken != null && Object.hasOwnProperty.call(message, "precommitToken"))
+ $root.google.spanner.v1.MultiplexedSessionPrecommitToken.encode(message.precommitToken, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.cacheUpdate != null && Object.hasOwnProperty.call(message, "cacheUpdate"))
+ $root.google.spanner.v1.CacheUpdate.encode(message.cacheUpdate, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
return writer;
};
/**
- * Encodes the specified RoutingHint message, length delimited. Does not implicitly {@link google.spanner.v1.RoutingHint.verify|verify} messages.
+ * Encodes the specified Transaction message, length delimited. Does not implicitly {@link google.spanner.v1.Transaction.verify|verify} messages.
* @function encodeDelimited
- * @memberof google.spanner.v1.RoutingHint
+ * @memberof google.spanner.v1.Transaction
* @static
- * @param {google.spanner.v1.IRoutingHint} message RoutingHint message or plain object to encode
+ * @param {google.spanner.v1.ITransaction} message Transaction message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- RoutingHint.encodeDelimited = function encodeDelimited(message, writer) {
+ Transaction.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
- * Decodes a RoutingHint message from the specified reader or buffer.
+ * Decodes a Transaction message from the specified reader or buffer.
* @function decode
- * @memberof google.spanner.v1.RoutingHint
+ * @memberof google.spanner.v1.Transaction
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.RoutingHint} RoutingHint
+ * @returns {google.spanner.v1.Transaction} Transaction
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- RoutingHint.decode = function decode(reader, length, error) {
+ Transaction.decode = function decode(reader, length, error) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.RoutingHint();
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.Transaction();
while (reader.pos < end) {
var tag = reader.uint32();
if (tag === error)
break;
switch (tag >>> 3) {
case 1: {
- message.operationUid = reader.uint64();
+ message.id = reader.bytes();
break;
}
case 2: {
- message.databaseId = reader.uint64();
+ message.readTimestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
break;
}
case 3: {
- message.schemaGeneration = reader.bytes();
- break;
- }
- case 4: {
- message.key = reader.bytes();
+ message.precommitToken = $root.google.spanner.v1.MultiplexedSessionPrecommitToken.decode(reader, reader.uint32());
break;
}
case 5: {
- message.limitKey = reader.bytes();
- break;
- }
- case 6: {
- message.groupUid = reader.uint64();
- break;
- }
- case 7: {
- message.splitId = reader.uint64();
- break;
- }
- case 8: {
- message.tabletUid = reader.uint64();
- break;
- }
- case 9: {
- if (!(message.skippedTabletUid && message.skippedTabletUid.length))
- message.skippedTabletUid = [];
- message.skippedTabletUid.push($root.google.spanner.v1.RoutingHint.SkippedTablet.decode(reader, reader.uint32()));
- break;
- }
- case 10: {
- message.clientLocation = reader.string();
+ message.cacheUpdate = $root.google.spanner.v1.CacheUpdate.decode(reader, reader.uint32());
break;
}
default:
@@ -92211,994 +92589,708 @@
};
/**
- * Decodes a RoutingHint message from the specified reader or buffer, length delimited.
+ * Decodes a Transaction message from the specified reader or buffer, length delimited.
* @function decodeDelimited
- * @memberof google.spanner.v1.RoutingHint
+ * @memberof google.spanner.v1.Transaction
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.RoutingHint} RoutingHint
+ * @returns {google.spanner.v1.Transaction} Transaction
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- RoutingHint.decodeDelimited = function decodeDelimited(reader) {
+ Transaction.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
- * Verifies a RoutingHint message.
+ * Verifies a Transaction message.
* @function verify
- * @memberof google.spanner.v1.RoutingHint
+ * @memberof google.spanner.v1.Transaction
* @static
* @param {Object.} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
- RoutingHint.verify = function verify(message) {
+ Transaction.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
- if (message.operationUid != null && message.hasOwnProperty("operationUid"))
- if (!$util.isInteger(message.operationUid) && !(message.operationUid && $util.isInteger(message.operationUid.low) && $util.isInteger(message.operationUid.high)))
- return "operationUid: integer|Long expected";
- if (message.databaseId != null && message.hasOwnProperty("databaseId"))
- if (!$util.isInteger(message.databaseId) && !(message.databaseId && $util.isInteger(message.databaseId.low) && $util.isInteger(message.databaseId.high)))
- return "databaseId: integer|Long expected";
- if (message.schemaGeneration != null && message.hasOwnProperty("schemaGeneration"))
- if (!(message.schemaGeneration && typeof message.schemaGeneration.length === "number" || $util.isString(message.schemaGeneration)))
- return "schemaGeneration: buffer expected";
- if (message.key != null && message.hasOwnProperty("key"))
- if (!(message.key && typeof message.key.length === "number" || $util.isString(message.key)))
- return "key: buffer expected";
- if (message.limitKey != null && message.hasOwnProperty("limitKey"))
- if (!(message.limitKey && typeof message.limitKey.length === "number" || $util.isString(message.limitKey)))
- return "limitKey: buffer expected";
- if (message.groupUid != null && message.hasOwnProperty("groupUid"))
- if (!$util.isInteger(message.groupUid) && !(message.groupUid && $util.isInteger(message.groupUid.low) && $util.isInteger(message.groupUid.high)))
- return "groupUid: integer|Long expected";
- if (message.splitId != null && message.hasOwnProperty("splitId"))
- if (!$util.isInteger(message.splitId) && !(message.splitId && $util.isInteger(message.splitId.low) && $util.isInteger(message.splitId.high)))
- return "splitId: integer|Long expected";
- if (message.tabletUid != null && message.hasOwnProperty("tabletUid"))
- if (!$util.isInteger(message.tabletUid) && !(message.tabletUid && $util.isInteger(message.tabletUid.low) && $util.isInteger(message.tabletUid.high)))
- return "tabletUid: integer|Long expected";
- if (message.skippedTabletUid != null && message.hasOwnProperty("skippedTabletUid")) {
- if (!Array.isArray(message.skippedTabletUid))
- return "skippedTabletUid: array expected";
- for (var i = 0; i < message.skippedTabletUid.length; ++i) {
- var error = $root.google.spanner.v1.RoutingHint.SkippedTablet.verify(message.skippedTabletUid[i]);
- if (error)
- return "skippedTabletUid." + error;
- }
+ if (message.id != null && message.hasOwnProperty("id"))
+ if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id)))
+ return "id: buffer expected";
+ if (message.readTimestamp != null && message.hasOwnProperty("readTimestamp")) {
+ var error = $root.google.protobuf.Timestamp.verify(message.readTimestamp);
+ if (error)
+ return "readTimestamp." + error;
+ }
+ if (message.precommitToken != null && message.hasOwnProperty("precommitToken")) {
+ var error = $root.google.spanner.v1.MultiplexedSessionPrecommitToken.verify(message.precommitToken);
+ if (error)
+ return "precommitToken." + error;
+ }
+ if (message.cacheUpdate != null && message.hasOwnProperty("cacheUpdate")) {
+ var error = $root.google.spanner.v1.CacheUpdate.verify(message.cacheUpdate);
+ if (error)
+ return "cacheUpdate." + error;
}
- if (message.clientLocation != null && message.hasOwnProperty("clientLocation"))
- if (!$util.isString(message.clientLocation))
- return "clientLocation: string expected";
return null;
};
/**
- * Creates a RoutingHint message from a plain object. Also converts values to their respective internal types.
+ * Creates a Transaction message from a plain object. Also converts values to their respective internal types.
* @function fromObject
- * @memberof google.spanner.v1.RoutingHint
+ * @memberof google.spanner.v1.Transaction
* @static
* @param {Object.} object Plain object
- * @returns {google.spanner.v1.RoutingHint} RoutingHint
+ * @returns {google.spanner.v1.Transaction} Transaction
*/
- RoutingHint.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.RoutingHint)
+ Transaction.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.Transaction)
return object;
- var message = new $root.google.spanner.v1.RoutingHint();
- if (object.operationUid != null)
- if ($util.Long)
- (message.operationUid = $util.Long.fromValue(object.operationUid)).unsigned = true;
- else if (typeof object.operationUid === "string")
- message.operationUid = parseInt(object.operationUid, 10);
- else if (typeof object.operationUid === "number")
- message.operationUid = object.operationUid;
- else if (typeof object.operationUid === "object")
- message.operationUid = new $util.LongBits(object.operationUid.low >>> 0, object.operationUid.high >>> 0).toNumber(true);
- if (object.databaseId != null)
- if ($util.Long)
- (message.databaseId = $util.Long.fromValue(object.databaseId)).unsigned = true;
- else if (typeof object.databaseId === "string")
- message.databaseId = parseInt(object.databaseId, 10);
- else if (typeof object.databaseId === "number")
- message.databaseId = object.databaseId;
- else if (typeof object.databaseId === "object")
- message.databaseId = new $util.LongBits(object.databaseId.low >>> 0, object.databaseId.high >>> 0).toNumber(true);
- if (object.schemaGeneration != null)
- if (typeof object.schemaGeneration === "string")
- $util.base64.decode(object.schemaGeneration, message.schemaGeneration = $util.newBuffer($util.base64.length(object.schemaGeneration)), 0);
- else if (object.schemaGeneration.length >= 0)
- message.schemaGeneration = object.schemaGeneration;
- if (object.key != null)
- if (typeof object.key === "string")
- $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);
- else if (object.key.length >= 0)
- message.key = object.key;
- if (object.limitKey != null)
- if (typeof object.limitKey === "string")
- $util.base64.decode(object.limitKey, message.limitKey = $util.newBuffer($util.base64.length(object.limitKey)), 0);
- else if (object.limitKey.length >= 0)
- message.limitKey = object.limitKey;
- if (object.groupUid != null)
- if ($util.Long)
- (message.groupUid = $util.Long.fromValue(object.groupUid)).unsigned = true;
- else if (typeof object.groupUid === "string")
- message.groupUid = parseInt(object.groupUid, 10);
- else if (typeof object.groupUid === "number")
- message.groupUid = object.groupUid;
- else if (typeof object.groupUid === "object")
- message.groupUid = new $util.LongBits(object.groupUid.low >>> 0, object.groupUid.high >>> 0).toNumber(true);
- if (object.splitId != null)
- if ($util.Long)
- (message.splitId = $util.Long.fromValue(object.splitId)).unsigned = true;
- else if (typeof object.splitId === "string")
- message.splitId = parseInt(object.splitId, 10);
- else if (typeof object.splitId === "number")
- message.splitId = object.splitId;
- else if (typeof object.splitId === "object")
- message.splitId = new $util.LongBits(object.splitId.low >>> 0, object.splitId.high >>> 0).toNumber(true);
- if (object.tabletUid != null)
- if ($util.Long)
- (message.tabletUid = $util.Long.fromValue(object.tabletUid)).unsigned = true;
- else if (typeof object.tabletUid === "string")
- message.tabletUid = parseInt(object.tabletUid, 10);
- else if (typeof object.tabletUid === "number")
- message.tabletUid = object.tabletUid;
- else if (typeof object.tabletUid === "object")
- message.tabletUid = new $util.LongBits(object.tabletUid.low >>> 0, object.tabletUid.high >>> 0).toNumber(true);
- if (object.skippedTabletUid) {
- if (!Array.isArray(object.skippedTabletUid))
- throw TypeError(".google.spanner.v1.RoutingHint.skippedTabletUid: array expected");
- message.skippedTabletUid = [];
- for (var i = 0; i < object.skippedTabletUid.length; ++i) {
- if (typeof object.skippedTabletUid[i] !== "object")
- throw TypeError(".google.spanner.v1.RoutingHint.skippedTabletUid: object expected");
- message.skippedTabletUid[i] = $root.google.spanner.v1.RoutingHint.SkippedTablet.fromObject(object.skippedTabletUid[i]);
- }
+ var message = new $root.google.spanner.v1.Transaction();
+ if (object.id != null)
+ if (typeof object.id === "string")
+ $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0);
+ else if (object.id.length >= 0)
+ message.id = object.id;
+ if (object.readTimestamp != null) {
+ if (typeof object.readTimestamp !== "object")
+ throw TypeError(".google.spanner.v1.Transaction.readTimestamp: object expected");
+ message.readTimestamp = $root.google.protobuf.Timestamp.fromObject(object.readTimestamp);
+ }
+ if (object.precommitToken != null) {
+ if (typeof object.precommitToken !== "object")
+ throw TypeError(".google.spanner.v1.Transaction.precommitToken: object expected");
+ message.precommitToken = $root.google.spanner.v1.MultiplexedSessionPrecommitToken.fromObject(object.precommitToken);
+ }
+ if (object.cacheUpdate != null) {
+ if (typeof object.cacheUpdate !== "object")
+ throw TypeError(".google.spanner.v1.Transaction.cacheUpdate: object expected");
+ message.cacheUpdate = $root.google.spanner.v1.CacheUpdate.fromObject(object.cacheUpdate);
}
- if (object.clientLocation != null)
- message.clientLocation = String(object.clientLocation);
return message;
};
/**
- * Creates a plain object from a RoutingHint message. Also converts values to other types if specified.
+ * Creates a plain object from a Transaction message. Also converts values to other types if specified.
* @function toObject
- * @memberof google.spanner.v1.RoutingHint
+ * @memberof google.spanner.v1.Transaction
* @static
- * @param {google.spanner.v1.RoutingHint} message RoutingHint
+ * @param {google.spanner.v1.Transaction} message Transaction
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.} Plain object
*/
- RoutingHint.toObject = function toObject(message, options) {
+ Transaction.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
- if (options.arrays || options.defaults)
- object.skippedTabletUid = [];
if (options.defaults) {
- if ($util.Long) {
- var long = new $util.Long(0, 0, true);
- object.operationUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
- } else
- object.operationUid = options.longs === String ? "0" : 0;
- if ($util.Long) {
- var long = new $util.Long(0, 0, true);
- object.databaseId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
- } else
- object.databaseId = options.longs === String ? "0" : 0;
- if (options.bytes === String)
- object.schemaGeneration = "";
- else {
- object.schemaGeneration = [];
- if (options.bytes !== Array)
- object.schemaGeneration = $util.newBuffer(object.schemaGeneration);
- }
- if (options.bytes === String)
- object.key = "";
- else {
- object.key = [];
- if (options.bytes !== Array)
- object.key = $util.newBuffer(object.key);
- }
if (options.bytes === String)
- object.limitKey = "";
+ object.id = "";
else {
- object.limitKey = [];
+ object.id = [];
if (options.bytes !== Array)
- object.limitKey = $util.newBuffer(object.limitKey);
+ object.id = $util.newBuffer(object.id);
}
- if ($util.Long) {
- var long = new $util.Long(0, 0, true);
- object.groupUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
- } else
- object.groupUid = options.longs === String ? "0" : 0;
- if ($util.Long) {
- var long = new $util.Long(0, 0, true);
- object.splitId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
- } else
- object.splitId = options.longs === String ? "0" : 0;
- if ($util.Long) {
- var long = new $util.Long(0, 0, true);
- object.tabletUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
- } else
- object.tabletUid = options.longs === String ? "0" : 0;
- object.clientLocation = "";
- }
- if (message.operationUid != null && message.hasOwnProperty("operationUid"))
- if (typeof message.operationUid === "number")
- object.operationUid = options.longs === String ? String(message.operationUid) : message.operationUid;
- else
- object.operationUid = options.longs === String ? $util.Long.prototype.toString.call(message.operationUid) : options.longs === Number ? new $util.LongBits(message.operationUid.low >>> 0, message.operationUid.high >>> 0).toNumber(true) : message.operationUid;
- if (message.databaseId != null && message.hasOwnProperty("databaseId"))
- if (typeof message.databaseId === "number")
- object.databaseId = options.longs === String ? String(message.databaseId) : message.databaseId;
- else
- object.databaseId = options.longs === String ? $util.Long.prototype.toString.call(message.databaseId) : options.longs === Number ? new $util.LongBits(message.databaseId.low >>> 0, message.databaseId.high >>> 0).toNumber(true) : message.databaseId;
- if (message.schemaGeneration != null && message.hasOwnProperty("schemaGeneration"))
- object.schemaGeneration = options.bytes === String ? $util.base64.encode(message.schemaGeneration, 0, message.schemaGeneration.length) : options.bytes === Array ? Array.prototype.slice.call(message.schemaGeneration) : message.schemaGeneration;
- if (message.key != null && message.hasOwnProperty("key"))
- object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;
- if (message.limitKey != null && message.hasOwnProperty("limitKey"))
- object.limitKey = options.bytes === String ? $util.base64.encode(message.limitKey, 0, message.limitKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.limitKey) : message.limitKey;
- if (message.groupUid != null && message.hasOwnProperty("groupUid"))
- if (typeof message.groupUid === "number")
- object.groupUid = options.longs === String ? String(message.groupUid) : message.groupUid;
- else
- object.groupUid = options.longs === String ? $util.Long.prototype.toString.call(message.groupUid) : options.longs === Number ? new $util.LongBits(message.groupUid.low >>> 0, message.groupUid.high >>> 0).toNumber(true) : message.groupUid;
- if (message.splitId != null && message.hasOwnProperty("splitId"))
- if (typeof message.splitId === "number")
- object.splitId = options.longs === String ? String(message.splitId) : message.splitId;
- else
- object.splitId = options.longs === String ? $util.Long.prototype.toString.call(message.splitId) : options.longs === Number ? new $util.LongBits(message.splitId.low >>> 0, message.splitId.high >>> 0).toNumber(true) : message.splitId;
- if (message.tabletUid != null && message.hasOwnProperty("tabletUid"))
- if (typeof message.tabletUid === "number")
- object.tabletUid = options.longs === String ? String(message.tabletUid) : message.tabletUid;
- else
- object.tabletUid = options.longs === String ? $util.Long.prototype.toString.call(message.tabletUid) : options.longs === Number ? new $util.LongBits(message.tabletUid.low >>> 0, message.tabletUid.high >>> 0).toNumber(true) : message.tabletUid;
- if (message.skippedTabletUid && message.skippedTabletUid.length) {
- object.skippedTabletUid = [];
- for (var j = 0; j < message.skippedTabletUid.length; ++j)
- object.skippedTabletUid[j] = $root.google.spanner.v1.RoutingHint.SkippedTablet.toObject(message.skippedTabletUid[j], options);
+ object.readTimestamp = null;
+ object.precommitToken = null;
+ object.cacheUpdate = null;
}
- if (message.clientLocation != null && message.hasOwnProperty("clientLocation"))
- object.clientLocation = message.clientLocation;
+ if (message.id != null && message.hasOwnProperty("id"))
+ object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id;
+ if (message.readTimestamp != null && message.hasOwnProperty("readTimestamp"))
+ object.readTimestamp = $root.google.protobuf.Timestamp.toObject(message.readTimestamp, options);
+ if (message.precommitToken != null && message.hasOwnProperty("precommitToken"))
+ object.precommitToken = $root.google.spanner.v1.MultiplexedSessionPrecommitToken.toObject(message.precommitToken, options);
+ if (message.cacheUpdate != null && message.hasOwnProperty("cacheUpdate"))
+ object.cacheUpdate = $root.google.spanner.v1.CacheUpdate.toObject(message.cacheUpdate, options);
return object;
};
/**
- * Converts this RoutingHint to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.RoutingHint
- * @instance
- * @returns {Object.} JSON object
- */
- RoutingHint.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
- };
-
- /**
- * Gets the default type url for RoutingHint
- * @function getTypeUrl
- * @memberof google.spanner.v1.RoutingHint
- * @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
- */
- RoutingHint.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
- }
- return typeUrlPrefix + "/google.spanner.v1.RoutingHint";
- };
-
- RoutingHint.SkippedTablet = (function() {
-
- /**
- * Properties of a SkippedTablet.
- * @memberof google.spanner.v1.RoutingHint
- * @interface ISkippedTablet
- * @property {number|Long|null} [tabletUid] SkippedTablet tabletUid
- * @property {Uint8Array|null} [incarnation] SkippedTablet incarnation
- */
-
- /**
- * Constructs a new SkippedTablet.
- * @memberof google.spanner.v1.RoutingHint
- * @classdesc Represents a SkippedTablet.
- * @implements ISkippedTablet
- * @constructor
- * @param {google.spanner.v1.RoutingHint.ISkippedTablet=} [properties] Properties to set
- */
- function SkippedTablet(properties) {
- if (properties)
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
- if (properties[keys[i]] != null)
- this[keys[i]] = properties[keys[i]];
- }
-
- /**
- * SkippedTablet tabletUid.
- * @member {number|Long} tabletUid
- * @memberof google.spanner.v1.RoutingHint.SkippedTablet
- * @instance
- */
- SkippedTablet.prototype.tabletUid = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
-
- /**
- * SkippedTablet incarnation.
- * @member {Uint8Array} incarnation
- * @memberof google.spanner.v1.RoutingHint.SkippedTablet
- * @instance
- */
- SkippedTablet.prototype.incarnation = $util.newBuffer([]);
-
- /**
- * Creates a new SkippedTablet instance using the specified properties.
- * @function create
- * @memberof google.spanner.v1.RoutingHint.SkippedTablet
- * @static
- * @param {google.spanner.v1.RoutingHint.ISkippedTablet=} [properties] Properties to set
- * @returns {google.spanner.v1.RoutingHint.SkippedTablet} SkippedTablet instance
- */
- SkippedTablet.create = function create(properties) {
- return new SkippedTablet(properties);
- };
-
- /**
- * Encodes the specified SkippedTablet message. Does not implicitly {@link google.spanner.v1.RoutingHint.SkippedTablet.verify|verify} messages.
- * @function encode
- * @memberof google.spanner.v1.RoutingHint.SkippedTablet
- * @static
- * @param {google.spanner.v1.RoutingHint.ISkippedTablet} message SkippedTablet message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- SkippedTablet.encode = function encode(message, writer) {
- if (!writer)
- writer = $Writer.create();
- if (message.tabletUid != null && Object.hasOwnProperty.call(message, "tabletUid"))
- writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.tabletUid);
- if (message.incarnation != null && Object.hasOwnProperty.call(message, "incarnation"))
- writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.incarnation);
- return writer;
- };
-
- /**
- * Encodes the specified SkippedTablet message, length delimited. Does not implicitly {@link google.spanner.v1.RoutingHint.SkippedTablet.verify|verify} messages.
- * @function encodeDelimited
- * @memberof google.spanner.v1.RoutingHint.SkippedTablet
- * @static
- * @param {google.spanner.v1.RoutingHint.ISkippedTablet} message SkippedTablet message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- SkippedTablet.encodeDelimited = function encodeDelimited(message, writer) {
- return this.encode(message, writer).ldelim();
- };
-
- /**
- * Decodes a SkippedTablet message from the specified reader or buffer.
- * @function decode
- * @memberof google.spanner.v1.RoutingHint.SkippedTablet
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.RoutingHint.SkippedTablet} SkippedTablet
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- SkippedTablet.decode = function decode(reader, length, error) {
- if (!(reader instanceof $Reader))
- reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.RoutingHint.SkippedTablet();
- while (reader.pos < end) {
- var tag = reader.uint32();
- if (tag === error)
- break;
- switch (tag >>> 3) {
- case 1: {
- message.tabletUid = reader.uint64();
- break;
- }
- case 2: {
- message.incarnation = reader.bytes();
- break;
- }
- default:
- reader.skipType(tag & 7);
- break;
- }
- }
- return message;
- };
+ * Converts this Transaction to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.Transaction
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Transaction.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
- /**
- * Decodes a SkippedTablet message from the specified reader or buffer, length delimited.
- * @function decodeDelimited
- * @memberof google.spanner.v1.RoutingHint.SkippedTablet
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.RoutingHint.SkippedTablet} SkippedTablet
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- SkippedTablet.decodeDelimited = function decodeDelimited(reader) {
- if (!(reader instanceof $Reader))
- reader = new $Reader(reader);
- return this.decode(reader, reader.uint32());
- };
+ /**
+ * Gets the default type url for Transaction
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.Transaction
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Transaction.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.spanner.v1.Transaction";
+ };
- /**
- * Verifies a SkippedTablet message.
- * @function verify
- * @memberof google.spanner.v1.RoutingHint.SkippedTablet
- * @static
- * @param {Object.} message Plain object to verify
- * @returns {string|null} `null` if valid, otherwise the reason why it is not
- */
- SkippedTablet.verify = function verify(message) {
- if (typeof message !== "object" || message === null)
- return "object expected";
- if (message.tabletUid != null && message.hasOwnProperty("tabletUid"))
- if (!$util.isInteger(message.tabletUid) && !(message.tabletUid && $util.isInteger(message.tabletUid.low) && $util.isInteger(message.tabletUid.high)))
- return "tabletUid: integer|Long expected";
- if (message.incarnation != null && message.hasOwnProperty("incarnation"))
- if (!(message.incarnation && typeof message.incarnation.length === "number" || $util.isString(message.incarnation)))
- return "incarnation: buffer expected";
- return null;
- };
+ return Transaction;
+ })();
- /**
- * Creates a SkippedTablet message from a plain object. Also converts values to their respective internal types.
- * @function fromObject
- * @memberof google.spanner.v1.RoutingHint.SkippedTablet
- * @static
- * @param {Object.} object Plain object
- * @returns {google.spanner.v1.RoutingHint.SkippedTablet} SkippedTablet
- */
- SkippedTablet.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.RoutingHint.SkippedTablet)
- return object;
- var message = new $root.google.spanner.v1.RoutingHint.SkippedTablet();
- if (object.tabletUid != null)
- if ($util.Long)
- (message.tabletUid = $util.Long.fromValue(object.tabletUid)).unsigned = true;
- else if (typeof object.tabletUid === "string")
- message.tabletUid = parseInt(object.tabletUid, 10);
- else if (typeof object.tabletUid === "number")
- message.tabletUid = object.tabletUid;
- else if (typeof object.tabletUid === "object")
- message.tabletUid = new $util.LongBits(object.tabletUid.low >>> 0, object.tabletUid.high >>> 0).toNumber(true);
- if (object.incarnation != null)
- if (typeof object.incarnation === "string")
- $util.base64.decode(object.incarnation, message.incarnation = $util.newBuffer($util.base64.length(object.incarnation)), 0);
- else if (object.incarnation.length >= 0)
- message.incarnation = object.incarnation;
- return message;
- };
+ v1.TransactionSelector = (function() {
- /**
- * Creates a plain object from a SkippedTablet message. Also converts values to other types if specified.
- * @function toObject
- * @memberof google.spanner.v1.RoutingHint.SkippedTablet
- * @static
- * @param {google.spanner.v1.RoutingHint.SkippedTablet} message SkippedTablet
- * @param {$protobuf.IConversionOptions} [options] Conversion options
- * @returns {Object.} Plain object
- */
- SkippedTablet.toObject = function toObject(message, options) {
- if (!options)
- options = {};
- var object = {};
- if (options.defaults) {
- if ($util.Long) {
- var long = new $util.Long(0, 0, true);
- object.tabletUid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
- } else
- object.tabletUid = options.longs === String ? "0" : 0;
- if (options.bytes === String)
- object.incarnation = "";
- else {
- object.incarnation = [];
- if (options.bytes !== Array)
- object.incarnation = $util.newBuffer(object.incarnation);
- }
- }
- if (message.tabletUid != null && message.hasOwnProperty("tabletUid"))
- if (typeof message.tabletUid === "number")
- object.tabletUid = options.longs === String ? String(message.tabletUid) : message.tabletUid;
- else
- object.tabletUid = options.longs === String ? $util.Long.prototype.toString.call(message.tabletUid) : options.longs === Number ? new $util.LongBits(message.tabletUid.low >>> 0, message.tabletUid.high >>> 0).toNumber(true) : message.tabletUid;
- if (message.incarnation != null && message.hasOwnProperty("incarnation"))
- object.incarnation = options.bytes === String ? $util.base64.encode(message.incarnation, 0, message.incarnation.length) : options.bytes === Array ? Array.prototype.slice.call(message.incarnation) : message.incarnation;
- return object;
- };
+ /**
+ * Properties of a TransactionSelector.
+ * @memberof google.spanner.v1
+ * @interface ITransactionSelector
+ * @property {google.spanner.v1.ITransactionOptions|null} [singleUse] TransactionSelector singleUse
+ * @property {Uint8Array|null} [id] TransactionSelector id
+ * @property {google.spanner.v1.ITransactionOptions|null} [begin] TransactionSelector begin
+ */
- /**
- * Converts this SkippedTablet to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.RoutingHint.SkippedTablet
- * @instance
- * @returns {Object.} JSON object
- */
- SkippedTablet.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
- };
+ /**
+ * Constructs a new TransactionSelector.
+ * @memberof google.spanner.v1
+ * @classdesc Represents a TransactionSelector.
+ * @implements ITransactionSelector
+ * @constructor
+ * @param {google.spanner.v1.ITransactionSelector=} [properties] Properties to set
+ */
+ function TransactionSelector(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
- /**
- * Gets the default type url for SkippedTablet
- * @function getTypeUrl
- * @memberof google.spanner.v1.RoutingHint.SkippedTablet
- * @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
- */
- SkippedTablet.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
- }
- return typeUrlPrefix + "/google.spanner.v1.RoutingHint.SkippedTablet";
- };
+ /**
+ * TransactionSelector singleUse.
+ * @member {google.spanner.v1.ITransactionOptions|null|undefined} singleUse
+ * @memberof google.spanner.v1.TransactionSelector
+ * @instance
+ */
+ TransactionSelector.prototype.singleUse = null;
- return SkippedTablet;
- })();
+ /**
+ * TransactionSelector id.
+ * @member {Uint8Array|null|undefined} id
+ * @memberof google.spanner.v1.TransactionSelector
+ * @instance
+ */
+ TransactionSelector.prototype.id = null;
- return RoutingHint;
- })();
+ /**
+ * TransactionSelector begin.
+ * @member {google.spanner.v1.ITransactionOptions|null|undefined} begin
+ * @memberof google.spanner.v1.TransactionSelector
+ * @instance
+ */
+ TransactionSelector.prototype.begin = null;
- v1.Type = (function() {
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
/**
- * Properties of a Type.
- * @memberof google.spanner.v1
- * @interface IType
- * @property {google.spanner.v1.TypeCode|null} [code] Type code
- * @property {google.spanner.v1.IType|null} [arrayElementType] Type arrayElementType
- * @property {google.spanner.v1.IStructType|null} [structType] Type structType
- * @property {google.spanner.v1.TypeAnnotationCode|null} [typeAnnotation] Type typeAnnotation
- * @property {string|null} [protoTypeFqn] Type protoTypeFqn
+ * TransactionSelector selector.
+ * @member {"singleUse"|"id"|"begin"|undefined} selector
+ * @memberof google.spanner.v1.TransactionSelector
+ * @instance
+ */
+ Object.defineProperty(TransactionSelector.prototype, "selector", {
+ get: $util.oneOfGetter($oneOfFields = ["singleUse", "id", "begin"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new TransactionSelector instance using the specified properties.
+ * @function create
+ * @memberof google.spanner.v1.TransactionSelector
+ * @static
+ * @param {google.spanner.v1.ITransactionSelector=} [properties] Properties to set
+ * @returns {google.spanner.v1.TransactionSelector} TransactionSelector instance
+ */
+ TransactionSelector.create = function create(properties) {
+ return new TransactionSelector(properties);
+ };
+
+ /**
+ * Encodes the specified TransactionSelector message. Does not implicitly {@link google.spanner.v1.TransactionSelector.verify|verify} messages.
+ * @function encode
+ * @memberof google.spanner.v1.TransactionSelector
+ * @static
+ * @param {google.spanner.v1.ITransactionSelector} message TransactionSelector message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TransactionSelector.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.singleUse != null && Object.hasOwnProperty.call(message, "singleUse"))
+ $root.google.spanner.v1.TransactionOptions.encode(message.singleUse, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.id != null && Object.hasOwnProperty.call(message, "id"))
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.id);
+ if (message.begin != null && Object.hasOwnProperty.call(message, "begin"))
+ $root.google.spanner.v1.TransactionOptions.encode(message.begin, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified TransactionSelector message, length delimited. Does not implicitly {@link google.spanner.v1.TransactionSelector.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.spanner.v1.TransactionSelector
+ * @static
+ * @param {google.spanner.v1.ITransactionSelector} message TransactionSelector message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
*/
+ TransactionSelector.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
/**
- * Constructs a new Type.
- * @memberof google.spanner.v1
- * @classdesc Represents a Type.
- * @implements IType
- * @constructor
- * @param {google.spanner.v1.IType=} [properties] Properties to set
+ * Decodes a TransactionSelector message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.spanner.v1.TransactionSelector
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.spanner.v1.TransactionSelector} TransactionSelector
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- function Type(properties) {
- if (properties)
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
- if (properties[keys[i]] != null)
- this[keys[i]] = properties[keys[i]];
- }
+ TransactionSelector.decode = function decode(reader, length, error) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.TransactionSelector();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ if (tag === error)
+ break;
+ switch (tag >>> 3) {
+ case 1: {
+ message.singleUse = $root.google.spanner.v1.TransactionOptions.decode(reader, reader.uint32());
+ break;
+ }
+ case 2: {
+ message.id = reader.bytes();
+ break;
+ }
+ case 3: {
+ message.begin = $root.google.spanner.v1.TransactionOptions.decode(reader, reader.uint32());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
/**
- * Type code.
- * @member {google.spanner.v1.TypeCode} code
- * @memberof google.spanner.v1.Type
- * @instance
+ * Decodes a TransactionSelector message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.spanner.v1.TransactionSelector
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.spanner.v1.TransactionSelector} TransactionSelector
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- Type.prototype.code = 0;
+ TransactionSelector.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
/**
- * Type arrayElementType.
- * @member {google.spanner.v1.IType|null|undefined} arrayElementType
- * @memberof google.spanner.v1.Type
- * @instance
+ * Verifies a TransactionSelector message.
+ * @function verify
+ * @memberof google.spanner.v1.TransactionSelector
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
- Type.prototype.arrayElementType = null;
+ TransactionSelector.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.singleUse != null && message.hasOwnProperty("singleUse")) {
+ properties.selector = 1;
+ {
+ var error = $root.google.spanner.v1.TransactionOptions.verify(message.singleUse);
+ if (error)
+ return "singleUse." + error;
+ }
+ }
+ if (message.id != null && message.hasOwnProperty("id")) {
+ if (properties.selector === 1)
+ return "selector: multiple values";
+ properties.selector = 1;
+ if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id)))
+ return "id: buffer expected";
+ }
+ if (message.begin != null && message.hasOwnProperty("begin")) {
+ if (properties.selector === 1)
+ return "selector: multiple values";
+ properties.selector = 1;
+ {
+ var error = $root.google.spanner.v1.TransactionOptions.verify(message.begin);
+ if (error)
+ return "begin." + error;
+ }
+ }
+ return null;
+ };
/**
- * Type structType.
- * @member {google.spanner.v1.IStructType|null|undefined} structType
- * @memberof google.spanner.v1.Type
- * @instance
+ * Creates a TransactionSelector message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.spanner.v1.TransactionSelector
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.spanner.v1.TransactionSelector} TransactionSelector
*/
- Type.prototype.structType = null;
+ TransactionSelector.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.TransactionSelector)
+ return object;
+ var message = new $root.google.spanner.v1.TransactionSelector();
+ if (object.singleUse != null) {
+ if (typeof object.singleUse !== "object")
+ throw TypeError(".google.spanner.v1.TransactionSelector.singleUse: object expected");
+ message.singleUse = $root.google.spanner.v1.TransactionOptions.fromObject(object.singleUse);
+ }
+ if (object.id != null)
+ if (typeof object.id === "string")
+ $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0);
+ else if (object.id.length >= 0)
+ message.id = object.id;
+ if (object.begin != null) {
+ if (typeof object.begin !== "object")
+ throw TypeError(".google.spanner.v1.TransactionSelector.begin: object expected");
+ message.begin = $root.google.spanner.v1.TransactionOptions.fromObject(object.begin);
+ }
+ return message;
+ };
/**
- * Type typeAnnotation.
- * @member {google.spanner.v1.TypeAnnotationCode} typeAnnotation
- * @memberof google.spanner.v1.Type
- * @instance
+ * Creates a plain object from a TransactionSelector message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.spanner.v1.TransactionSelector
+ * @static
+ * @param {google.spanner.v1.TransactionSelector} message TransactionSelector
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
*/
- Type.prototype.typeAnnotation = 0;
+ TransactionSelector.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (message.singleUse != null && message.hasOwnProperty("singleUse")) {
+ object.singleUse = $root.google.spanner.v1.TransactionOptions.toObject(message.singleUse, options);
+ if (options.oneofs)
+ object.selector = "singleUse";
+ }
+ if (message.id != null && message.hasOwnProperty("id")) {
+ object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id;
+ if (options.oneofs)
+ object.selector = "id";
+ }
+ if (message.begin != null && message.hasOwnProperty("begin")) {
+ object.begin = $root.google.spanner.v1.TransactionOptions.toObject(message.begin, options);
+ if (options.oneofs)
+ object.selector = "begin";
+ }
+ return object;
+ };
/**
- * Type protoTypeFqn.
- * @member {string} protoTypeFqn
- * @memberof google.spanner.v1.Type
+ * Converts this TransactionSelector to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.TransactionSelector
* @instance
+ * @returns {Object.} JSON object
*/
- Type.prototype.protoTypeFqn = "";
+ TransactionSelector.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
/**
- * Creates a new Type instance using the specified properties.
- * @function create
- * @memberof google.spanner.v1.Type
+ * Gets the default type url for TransactionSelector
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.TransactionSelector
* @static
- * @param {google.spanner.v1.IType=} [properties] Properties to set
- * @returns {google.spanner.v1.Type} Type instance
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
*/
- Type.create = function create(properties) {
- return new Type(properties);
+ TransactionSelector.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.spanner.v1.TransactionSelector";
};
+ return TransactionSelector;
+ })();
+
+ v1.MultiplexedSessionPrecommitToken = (function() {
+
/**
- * Encodes the specified Type message. Does not implicitly {@link google.spanner.v1.Type.verify|verify} messages.
- * @function encode
- * @memberof google.spanner.v1.Type
- * @static
- * @param {google.spanner.v1.IType} message Type message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
+ * Properties of a MultiplexedSessionPrecommitToken.
+ * @memberof google.spanner.v1
+ * @interface IMultiplexedSessionPrecommitToken
+ * @property {Uint8Array|null} [precommitToken] MultiplexedSessionPrecommitToken precommitToken
+ * @property {number|null} [seqNum] MultiplexedSessionPrecommitToken seqNum
*/
- Type.encode = function encode(message, writer) {
- if (!writer)
- writer = $Writer.create();
- if (message.code != null && Object.hasOwnProperty.call(message, "code"))
- writer.uint32(/* id 1, wireType 0 =*/8).int32(message.code);
- if (message.arrayElementType != null && Object.hasOwnProperty.call(message, "arrayElementType"))
- $root.google.spanner.v1.Type.encode(message.arrayElementType, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
- if (message.structType != null && Object.hasOwnProperty.call(message, "structType"))
- $root.google.spanner.v1.StructType.encode(message.structType, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
- if (message.typeAnnotation != null && Object.hasOwnProperty.call(message, "typeAnnotation"))
- writer.uint32(/* id 4, wireType 0 =*/32).int32(message.typeAnnotation);
- if (message.protoTypeFqn != null && Object.hasOwnProperty.call(message, "protoTypeFqn"))
- writer.uint32(/* id 5, wireType 2 =*/42).string(message.protoTypeFqn);
- return writer;
- };
/**
- * Encodes the specified Type message, length delimited. Does not implicitly {@link google.spanner.v1.Type.verify|verify} messages.
- * @function encodeDelimited
- * @memberof google.spanner.v1.Type
- * @static
- * @param {google.spanner.v1.IType} message Type message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
+ * Constructs a new MultiplexedSessionPrecommitToken.
+ * @memberof google.spanner.v1
+ * @classdesc Represents a MultiplexedSessionPrecommitToken.
+ * @implements IMultiplexedSessionPrecommitToken
+ * @constructor
+ * @param {google.spanner.v1.IMultiplexedSessionPrecommitToken=} [properties] Properties to set
+ */
+ function MultiplexedSessionPrecommitToken(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * MultiplexedSessionPrecommitToken precommitToken.
+ * @member {Uint8Array} precommitToken
+ * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
+ * @instance
*/
- Type.encodeDelimited = function encodeDelimited(message, writer) {
- return this.encode(message, writer).ldelim();
- };
+ MultiplexedSessionPrecommitToken.prototype.precommitToken = $util.newBuffer([]);
/**
- * Decodes a Type message from the specified reader or buffer.
- * @function decode
- * @memberof google.spanner.v1.Type
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.Type} Type
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ * MultiplexedSessionPrecommitToken seqNum.
+ * @member {number} seqNum
+ * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
+ * @instance
*/
- Type.decode = function decode(reader, length, error) {
- if (!(reader instanceof $Reader))
- reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.Type();
- while (reader.pos < end) {
- var tag = reader.uint32();
- if (tag === error)
- break;
- switch (tag >>> 3) {
- case 1: {
- message.code = reader.int32();
- break;
- }
- case 2: {
- message.arrayElementType = $root.google.spanner.v1.Type.decode(reader, reader.uint32());
- break;
- }
- case 3: {
- message.structType = $root.google.spanner.v1.StructType.decode(reader, reader.uint32());
- break;
- }
- case 4: {
- message.typeAnnotation = reader.int32();
- break;
- }
- case 5: {
- message.protoTypeFqn = reader.string();
- break;
- }
- default:
- reader.skipType(tag & 7);
- break;
- }
- }
- return message;
- };
+ MultiplexedSessionPrecommitToken.prototype.seqNum = 0;
/**
- * Decodes a Type message from the specified reader or buffer, length delimited.
- * @function decodeDelimited
- * @memberof google.spanner.v1.Type
+ * Creates a new MultiplexedSessionPrecommitToken instance using the specified properties.
+ * @function create
+ * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
* @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.Type} Type
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ * @param {google.spanner.v1.IMultiplexedSessionPrecommitToken=} [properties] Properties to set
+ * @returns {google.spanner.v1.MultiplexedSessionPrecommitToken} MultiplexedSessionPrecommitToken instance
*/
- Type.decodeDelimited = function decodeDelimited(reader) {
- if (!(reader instanceof $Reader))
- reader = new $Reader(reader);
- return this.decode(reader, reader.uint32());
+ MultiplexedSessionPrecommitToken.create = function create(properties) {
+ return new MultiplexedSessionPrecommitToken(properties);
};
/**
- * Verifies a Type message.
- * @function verify
- * @memberof google.spanner.v1.Type
+ * Encodes the specified MultiplexedSessionPrecommitToken message. Does not implicitly {@link google.spanner.v1.MultiplexedSessionPrecommitToken.verify|verify} messages.
+ * @function encode
+ * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
* @static
- * @param {Object.} message Plain object to verify
- * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ * @param {google.spanner.v1.IMultiplexedSessionPrecommitToken} message MultiplexedSessionPrecommitToken message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
*/
- Type.verify = function verify(message) {
- if (typeof message !== "object" || message === null)
- return "object expected";
- if (message.code != null && message.hasOwnProperty("code"))
- switch (message.code) {
- default:
- return "code: enum value expected";
- case 0:
- case 1:
- case 2:
- case 3:
- case 15:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- case 10:
- case 11:
- case 13:
- case 14:
- case 16:
- case 17:
- break;
- }
- if (message.arrayElementType != null && message.hasOwnProperty("arrayElementType")) {
- var error = $root.google.spanner.v1.Type.verify(message.arrayElementType);
- if (error)
- return "arrayElementType." + error;
- }
- if (message.structType != null && message.hasOwnProperty("structType")) {
- var error = $root.google.spanner.v1.StructType.verify(message.structType);
- if (error)
- return "structType." + error;
- }
- if (message.typeAnnotation != null && message.hasOwnProperty("typeAnnotation"))
- switch (message.typeAnnotation) {
- default:
- return "typeAnnotation: enum value expected";
- case 0:
- case 2:
- case 3:
- case 4:
- break;
- }
- if (message.protoTypeFqn != null && message.hasOwnProperty("protoTypeFqn"))
- if (!$util.isString(message.protoTypeFqn))
- return "protoTypeFqn: string expected";
- return null;
+ MultiplexedSessionPrecommitToken.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.precommitToken != null && Object.hasOwnProperty.call(message, "precommitToken"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.precommitToken);
+ if (message.seqNum != null && Object.hasOwnProperty.call(message, "seqNum"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.seqNum);
+ return writer;
};
/**
- * Creates a Type message from a plain object. Also converts values to their respective internal types.
- * @function fromObject
- * @memberof google.spanner.v1.Type
+ * Encodes the specified MultiplexedSessionPrecommitToken message, length delimited. Does not implicitly {@link google.spanner.v1.MultiplexedSessionPrecommitToken.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
* @static
- * @param {Object.} object Plain object
- * @returns {google.spanner.v1.Type} Type
+ * @param {google.spanner.v1.IMultiplexedSessionPrecommitToken} message MultiplexedSessionPrecommitToken message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
*/
- Type.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.Type)
- return object;
- var message = new $root.google.spanner.v1.Type();
- switch (object.code) {
- default:
- if (typeof object.code === "number") {
- message.code = object.code;
- break;
- }
- break;
- case "TYPE_CODE_UNSPECIFIED":
- case 0:
- message.code = 0;
- break;
- case "BOOL":
- case 1:
- message.code = 1;
- break;
- case "INT64":
- case 2:
- message.code = 2;
- break;
- case "FLOAT64":
- case 3:
- message.code = 3;
- break;
- case "FLOAT32":
- case 15:
- message.code = 15;
- break;
- case "TIMESTAMP":
- case 4:
- message.code = 4;
- break;
- case "DATE":
- case 5:
- message.code = 5;
- break;
- case "STRING":
- case 6:
- message.code = 6;
- break;
- case "BYTES":
- case 7:
- message.code = 7;
- break;
- case "ARRAY":
- case 8:
- message.code = 8;
- break;
- case "STRUCT":
- case 9:
- message.code = 9;
- break;
- case "NUMERIC":
- case 10:
- message.code = 10;
- break;
- case "JSON":
- case 11:
- message.code = 11;
- break;
- case "PROTO":
- case 13:
- message.code = 13;
- break;
- case "ENUM":
- case 14:
- message.code = 14;
- break;
- case "INTERVAL":
- case 16:
- message.code = 16;
- break;
- case "UUID":
- case 17:
- message.code = 17;
- break;
- }
- if (object.arrayElementType != null) {
- if (typeof object.arrayElementType !== "object")
- throw TypeError(".google.spanner.v1.Type.arrayElementType: object expected");
- message.arrayElementType = $root.google.spanner.v1.Type.fromObject(object.arrayElementType);
- }
- if (object.structType != null) {
- if (typeof object.structType !== "object")
- throw TypeError(".google.spanner.v1.Type.structType: object expected");
- message.structType = $root.google.spanner.v1.StructType.fromObject(object.structType);
- }
- switch (object.typeAnnotation) {
- default:
- if (typeof object.typeAnnotation === "number") {
- message.typeAnnotation = object.typeAnnotation;
+ MultiplexedSessionPrecommitToken.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a MultiplexedSessionPrecommitToken message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.spanner.v1.MultiplexedSessionPrecommitToken} MultiplexedSessionPrecommitToken
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ MultiplexedSessionPrecommitToken.decode = function decode(reader, length, error) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.MultiplexedSessionPrecommitToken();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ if (tag === error)
+ break;
+ switch (tag >>> 3) {
+ case 1: {
+ message.precommitToken = reader.bytes();
+ break;
+ }
+ case 2: {
+ message.seqNum = reader.int32();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
break;
}
- break;
- case "TYPE_ANNOTATION_CODE_UNSPECIFIED":
- case 0:
- message.typeAnnotation = 0;
- break;
- case "PG_NUMERIC":
- case 2:
- message.typeAnnotation = 2;
- break;
- case "PG_JSONB":
- case 3:
- message.typeAnnotation = 3;
- break;
- case "PG_OID":
- case 4:
- message.typeAnnotation = 4;
- break;
}
- if (object.protoTypeFqn != null)
- message.protoTypeFqn = String(object.protoTypeFqn);
return message;
};
/**
- * Creates a plain object from a Type message. Also converts values to other types if specified.
+ * Decodes a MultiplexedSessionPrecommitToken message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.spanner.v1.MultiplexedSessionPrecommitToken} MultiplexedSessionPrecommitToken
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ MultiplexedSessionPrecommitToken.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a MultiplexedSessionPrecommitToken message.
+ * @function verify
+ * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ MultiplexedSessionPrecommitToken.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.precommitToken != null && message.hasOwnProperty("precommitToken"))
+ if (!(message.precommitToken && typeof message.precommitToken.length === "number" || $util.isString(message.precommitToken)))
+ return "precommitToken: buffer expected";
+ if (message.seqNum != null && message.hasOwnProperty("seqNum"))
+ if (!$util.isInteger(message.seqNum))
+ return "seqNum: integer expected";
+ return null;
+ };
+
+ /**
+ * Creates a MultiplexedSessionPrecommitToken message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.spanner.v1.MultiplexedSessionPrecommitToken} MultiplexedSessionPrecommitToken
+ */
+ MultiplexedSessionPrecommitToken.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.MultiplexedSessionPrecommitToken)
+ return object;
+ var message = new $root.google.spanner.v1.MultiplexedSessionPrecommitToken();
+ if (object.precommitToken != null)
+ if (typeof object.precommitToken === "string")
+ $util.base64.decode(object.precommitToken, message.precommitToken = $util.newBuffer($util.base64.length(object.precommitToken)), 0);
+ else if (object.precommitToken.length >= 0)
+ message.precommitToken = object.precommitToken;
+ if (object.seqNum != null)
+ message.seqNum = object.seqNum | 0;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a MultiplexedSessionPrecommitToken message. Also converts values to other types if specified.
* @function toObject
- * @memberof google.spanner.v1.Type
+ * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
* @static
- * @param {google.spanner.v1.Type} message Type
+ * @param {google.spanner.v1.MultiplexedSessionPrecommitToken} message MultiplexedSessionPrecommitToken
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.} Plain object
*/
- Type.toObject = function toObject(message, options) {
+ MultiplexedSessionPrecommitToken.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
if (options.defaults) {
- object.code = options.enums === String ? "TYPE_CODE_UNSPECIFIED" : 0;
- object.arrayElementType = null;
- object.structType = null;
- object.typeAnnotation = options.enums === String ? "TYPE_ANNOTATION_CODE_UNSPECIFIED" : 0;
- object.protoTypeFqn = "";
+ if (options.bytes === String)
+ object.precommitToken = "";
+ else {
+ object.precommitToken = [];
+ if (options.bytes !== Array)
+ object.precommitToken = $util.newBuffer(object.precommitToken);
+ }
+ object.seqNum = 0;
}
- if (message.code != null && message.hasOwnProperty("code"))
- object.code = options.enums === String ? $root.google.spanner.v1.TypeCode[message.code] === undefined ? message.code : $root.google.spanner.v1.TypeCode[message.code] : message.code;
- if (message.arrayElementType != null && message.hasOwnProperty("arrayElementType"))
- object.arrayElementType = $root.google.spanner.v1.Type.toObject(message.arrayElementType, options);
- if (message.structType != null && message.hasOwnProperty("structType"))
- object.structType = $root.google.spanner.v1.StructType.toObject(message.structType, options);
- if (message.typeAnnotation != null && message.hasOwnProperty("typeAnnotation"))
- object.typeAnnotation = options.enums === String ? $root.google.spanner.v1.TypeAnnotationCode[message.typeAnnotation] === undefined ? message.typeAnnotation : $root.google.spanner.v1.TypeAnnotationCode[message.typeAnnotation] : message.typeAnnotation;
- if (message.protoTypeFqn != null && message.hasOwnProperty("protoTypeFqn"))
- object.protoTypeFqn = message.protoTypeFqn;
+ if (message.precommitToken != null && message.hasOwnProperty("precommitToken"))
+ object.precommitToken = options.bytes === String ? $util.base64.encode(message.precommitToken, 0, message.precommitToken.length) : options.bytes === Array ? Array.prototype.slice.call(message.precommitToken) : message.precommitToken;
+ if (message.seqNum != null && message.hasOwnProperty("seqNum"))
+ object.seqNum = message.seqNum;
return object;
};
/**
- * Converts this Type to JSON.
+ * Converts this MultiplexedSessionPrecommitToken to JSON.
* @function toJSON
- * @memberof google.spanner.v1.Type
+ * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
* @instance
* @returns {Object.} JSON object
*/
- Type.prototype.toJSON = function toJSON() {
+ MultiplexedSessionPrecommitToken.prototype.toJSON = function toJSON() {
return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};
/**
- * Gets the default type url for Type
+ * Gets the default type url for MultiplexedSessionPrecommitToken
* @function getTypeUrl
- * @memberof google.spanner.v1.Type
+ * @memberof google.spanner.v1.MultiplexedSessionPrecommitToken
* @static
* @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns {string} The default type url
*/
- Type.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ MultiplexedSessionPrecommitToken.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
if (typeUrlPrefix === undefined) {
typeUrlPrefix = "type.googleapis.com";
}
- return typeUrlPrefix + "/google.spanner.v1.Type";
+ return typeUrlPrefix + "/google.spanner.v1.MultiplexedSessionPrecommitToken";
};
- return Type;
+ return MultiplexedSessionPrecommitToken;
})();
- v1.StructType = (function() {
+ v1.KeyRange = (function() {
/**
- * Properties of a StructType.
+ * Properties of a KeyRange.
* @memberof google.spanner.v1
- * @interface IStructType
- * @property {Array.|null} [fields] StructType fields
+ * @interface IKeyRange
+ * @property {google.protobuf.IListValue|null} [startClosed] KeyRange startClosed
+ * @property {google.protobuf.IListValue|null} [startOpen] KeyRange startOpen
+ * @property {google.protobuf.IListValue|null} [endClosed] KeyRange endClosed
+ * @property {google.protobuf.IListValue|null} [endOpen] KeyRange endOpen
*/
/**
- * Constructs a new StructType.
+ * Constructs a new KeyRange.
* @memberof google.spanner.v1
- * @classdesc Represents a StructType.
- * @implements IStructType
+ * @classdesc Represents a KeyRange.
+ * @implements IKeyRange
* @constructor
- * @param {google.spanner.v1.IStructType=} [properties] Properties to set
+ * @param {google.spanner.v1.IKeyRange=} [properties] Properties to set
*/
- function StructType(properties) {
- this.fields = [];
+ function KeyRange(properties) {
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
@@ -93206,80 +93298,144 @@
}
/**
- * StructType fields.
- * @member {Array.} fields
- * @memberof google.spanner.v1.StructType
+ * KeyRange startClosed.
+ * @member {google.protobuf.IListValue|null|undefined} startClosed
+ * @memberof google.spanner.v1.KeyRange
* @instance
*/
- StructType.prototype.fields = $util.emptyArray;
+ KeyRange.prototype.startClosed = null;
/**
- * Creates a new StructType instance using the specified properties.
+ * KeyRange startOpen.
+ * @member {google.protobuf.IListValue|null|undefined} startOpen
+ * @memberof google.spanner.v1.KeyRange
+ * @instance
+ */
+ KeyRange.prototype.startOpen = null;
+
+ /**
+ * KeyRange endClosed.
+ * @member {google.protobuf.IListValue|null|undefined} endClosed
+ * @memberof google.spanner.v1.KeyRange
+ * @instance
+ */
+ KeyRange.prototype.endClosed = null;
+
+ /**
+ * KeyRange endOpen.
+ * @member {google.protobuf.IListValue|null|undefined} endOpen
+ * @memberof google.spanner.v1.KeyRange
+ * @instance
+ */
+ KeyRange.prototype.endOpen = null;
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * KeyRange startKeyType.
+ * @member {"startClosed"|"startOpen"|undefined} startKeyType
+ * @memberof google.spanner.v1.KeyRange
+ * @instance
+ */
+ Object.defineProperty(KeyRange.prototype, "startKeyType", {
+ get: $util.oneOfGetter($oneOfFields = ["startClosed", "startOpen"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * KeyRange endKeyType.
+ * @member {"endClosed"|"endOpen"|undefined} endKeyType
+ * @memberof google.spanner.v1.KeyRange
+ * @instance
+ */
+ Object.defineProperty(KeyRange.prototype, "endKeyType", {
+ get: $util.oneOfGetter($oneOfFields = ["endClosed", "endOpen"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new KeyRange instance using the specified properties.
* @function create
- * @memberof google.spanner.v1.StructType
+ * @memberof google.spanner.v1.KeyRange
* @static
- * @param {google.spanner.v1.IStructType=} [properties] Properties to set
- * @returns {google.spanner.v1.StructType} StructType instance
+ * @param {google.spanner.v1.IKeyRange=} [properties] Properties to set
+ * @returns {google.spanner.v1.KeyRange} KeyRange instance
*/
- StructType.create = function create(properties) {
- return new StructType(properties);
+ KeyRange.create = function create(properties) {
+ return new KeyRange(properties);
};
/**
- * Encodes the specified StructType message. Does not implicitly {@link google.spanner.v1.StructType.verify|verify} messages.
+ * Encodes the specified KeyRange message. Does not implicitly {@link google.spanner.v1.KeyRange.verify|verify} messages.
* @function encode
- * @memberof google.spanner.v1.StructType
+ * @memberof google.spanner.v1.KeyRange
* @static
- * @param {google.spanner.v1.IStructType} message StructType message or plain object to encode
+ * @param {google.spanner.v1.IKeyRange} message KeyRange message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- StructType.encode = function encode(message, writer) {
+ KeyRange.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
- if (message.fields != null && message.fields.length)
- for (var i = 0; i < message.fields.length; ++i)
- $root.google.spanner.v1.StructType.Field.encode(message.fields[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.startClosed != null && Object.hasOwnProperty.call(message, "startClosed"))
+ $root.google.protobuf.ListValue.encode(message.startClosed, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.startOpen != null && Object.hasOwnProperty.call(message, "startOpen"))
+ $root.google.protobuf.ListValue.encode(message.startOpen, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.endClosed != null && Object.hasOwnProperty.call(message, "endClosed"))
+ $root.google.protobuf.ListValue.encode(message.endClosed, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.endOpen != null && Object.hasOwnProperty.call(message, "endOpen"))
+ $root.google.protobuf.ListValue.encode(message.endOpen, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
return writer;
};
/**
- * Encodes the specified StructType message, length delimited. Does not implicitly {@link google.spanner.v1.StructType.verify|verify} messages.
+ * Encodes the specified KeyRange message, length delimited. Does not implicitly {@link google.spanner.v1.KeyRange.verify|verify} messages.
* @function encodeDelimited
- * @memberof google.spanner.v1.StructType
+ * @memberof google.spanner.v1.KeyRange
* @static
- * @param {google.spanner.v1.IStructType} message StructType message or plain object to encode
+ * @param {google.spanner.v1.IKeyRange} message KeyRange message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
- StructType.encodeDelimited = function encodeDelimited(message, writer) {
+ KeyRange.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
- * Decodes a StructType message from the specified reader or buffer.
+ * Decodes a KeyRange message from the specified reader or buffer.
* @function decode
- * @memberof google.spanner.v1.StructType
+ * @memberof google.spanner.v1.KeyRange
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.StructType} StructType
+ * @returns {google.spanner.v1.KeyRange} KeyRange
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- StructType.decode = function decode(reader, length, error) {
+ KeyRange.decode = function decode(reader, length, error) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.StructType();
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.KeyRange();
while (reader.pos < end) {
var tag = reader.uint32();
if (tag === error)
break;
switch (tag >>> 3) {
case 1: {
- if (!(message.fields && message.fields.length))
- message.fields = [];
- message.fields.push($root.google.spanner.v1.StructType.Field.decode(reader, reader.uint32()));
+ message.startClosed = $root.google.protobuf.ListValue.decode(reader, reader.uint32());
+ break;
+ }
+ case 2: {
+ message.startOpen = $root.google.protobuf.ListValue.decode(reader, reader.uint32());
+ break;
+ }
+ case 3: {
+ message.endClosed = $root.google.protobuf.ListValue.decode(reader, reader.uint32());
+ break;
+ }
+ case 4: {
+ message.endOpen = $root.google.protobuf.ListValue.decode(reader, reader.uint32());
break;
}
default:
@@ -93291,415 +93447,465 @@
};
/**
- * Decodes a StructType message from the specified reader or buffer, length delimited.
+ * Decodes a KeyRange message from the specified reader or buffer, length delimited.
* @function decodeDelimited
- * @memberof google.spanner.v1.StructType
+ * @memberof google.spanner.v1.KeyRange
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.StructType} StructType
+ * @returns {google.spanner.v1.KeyRange} KeyRange
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
- StructType.decodeDelimited = function decodeDelimited(reader) {
+ KeyRange.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
- * Verifies a StructType message.
+ * Verifies a KeyRange message.
* @function verify
- * @memberof google.spanner.v1.StructType
+ * @memberof google.spanner.v1.KeyRange
* @static
* @param {Object.} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
- StructType.verify = function verify(message) {
+ KeyRange.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
- if (message.fields != null && message.hasOwnProperty("fields")) {
- if (!Array.isArray(message.fields))
- return "fields: array expected";
- for (var i = 0; i < message.fields.length; ++i) {
- var error = $root.google.spanner.v1.StructType.Field.verify(message.fields[i]);
+ var properties = {};
+ if (message.startClosed != null && message.hasOwnProperty("startClosed")) {
+ properties.startKeyType = 1;
+ {
+ var error = $root.google.protobuf.ListValue.verify(message.startClosed);
if (error)
- return "fields." + error;
+ return "startClosed." + error;
+ }
+ }
+ if (message.startOpen != null && message.hasOwnProperty("startOpen")) {
+ if (properties.startKeyType === 1)
+ return "startKeyType: multiple values";
+ properties.startKeyType = 1;
+ {
+ var error = $root.google.protobuf.ListValue.verify(message.startOpen);
+ if (error)
+ return "startOpen." + error;
+ }
+ }
+ if (message.endClosed != null && message.hasOwnProperty("endClosed")) {
+ properties.endKeyType = 1;
+ {
+ var error = $root.google.protobuf.ListValue.verify(message.endClosed);
+ if (error)
+ return "endClosed." + error;
+ }
+ }
+ if (message.endOpen != null && message.hasOwnProperty("endOpen")) {
+ if (properties.endKeyType === 1)
+ return "endKeyType: multiple values";
+ properties.endKeyType = 1;
+ {
+ var error = $root.google.protobuf.ListValue.verify(message.endOpen);
+ if (error)
+ return "endOpen." + error;
}
}
return null;
};
/**
- * Creates a StructType message from a plain object. Also converts values to their respective internal types.
+ * Creates a KeyRange message from a plain object. Also converts values to their respective internal types.
* @function fromObject
- * @memberof google.spanner.v1.StructType
+ * @memberof google.spanner.v1.KeyRange
* @static
* @param {Object.} object Plain object
- * @returns {google.spanner.v1.StructType} StructType
+ * @returns {google.spanner.v1.KeyRange} KeyRange
*/
- StructType.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.StructType)
+ KeyRange.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.KeyRange)
return object;
- var message = new $root.google.spanner.v1.StructType();
- if (object.fields) {
- if (!Array.isArray(object.fields))
- throw TypeError(".google.spanner.v1.StructType.fields: array expected");
- message.fields = [];
- for (var i = 0; i < object.fields.length; ++i) {
- if (typeof object.fields[i] !== "object")
- throw TypeError(".google.spanner.v1.StructType.fields: object expected");
- message.fields[i] = $root.google.spanner.v1.StructType.Field.fromObject(object.fields[i]);
- }
+ var message = new $root.google.spanner.v1.KeyRange();
+ if (object.startClosed != null) {
+ if (typeof object.startClosed !== "object")
+ throw TypeError(".google.spanner.v1.KeyRange.startClosed: object expected");
+ message.startClosed = $root.google.protobuf.ListValue.fromObject(object.startClosed);
+ }
+ if (object.startOpen != null) {
+ if (typeof object.startOpen !== "object")
+ throw TypeError(".google.spanner.v1.KeyRange.startOpen: object expected");
+ message.startOpen = $root.google.protobuf.ListValue.fromObject(object.startOpen);
+ }
+ if (object.endClosed != null) {
+ if (typeof object.endClosed !== "object")
+ throw TypeError(".google.spanner.v1.KeyRange.endClosed: object expected");
+ message.endClosed = $root.google.protobuf.ListValue.fromObject(object.endClosed);
+ }
+ if (object.endOpen != null) {
+ if (typeof object.endOpen !== "object")
+ throw TypeError(".google.spanner.v1.KeyRange.endOpen: object expected");
+ message.endOpen = $root.google.protobuf.ListValue.fromObject(object.endOpen);
}
return message;
};
/**
- * Creates a plain object from a StructType message. Also converts values to other types if specified.
+ * Creates a plain object from a KeyRange message. Also converts values to other types if specified.
* @function toObject
- * @memberof google.spanner.v1.StructType
+ * @memberof google.spanner.v1.KeyRange
* @static
- * @param {google.spanner.v1.StructType} message StructType
+ * @param {google.spanner.v1.KeyRange} message KeyRange
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.} Plain object
*/
- StructType.toObject = function toObject(message, options) {
+ KeyRange.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
- if (options.arrays || options.defaults)
- object.fields = [];
- if (message.fields && message.fields.length) {
- object.fields = [];
- for (var j = 0; j < message.fields.length; ++j)
- object.fields[j] = $root.google.spanner.v1.StructType.Field.toObject(message.fields[j], options);
+ if (message.startClosed != null && message.hasOwnProperty("startClosed")) {
+ object.startClosed = $root.google.protobuf.ListValue.toObject(message.startClosed, options);
+ if (options.oneofs)
+ object.startKeyType = "startClosed";
+ }
+ if (message.startOpen != null && message.hasOwnProperty("startOpen")) {
+ object.startOpen = $root.google.protobuf.ListValue.toObject(message.startOpen, options);
+ if (options.oneofs)
+ object.startKeyType = "startOpen";
+ }
+ if (message.endClosed != null && message.hasOwnProperty("endClosed")) {
+ object.endClosed = $root.google.protobuf.ListValue.toObject(message.endClosed, options);
+ if (options.oneofs)
+ object.endKeyType = "endClosed";
+ }
+ if (message.endOpen != null && message.hasOwnProperty("endOpen")) {
+ object.endOpen = $root.google.protobuf.ListValue.toObject(message.endOpen, options);
+ if (options.oneofs)
+ object.endKeyType = "endOpen";
}
return object;
};
/**
- * Converts this StructType to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.StructType
- * @instance
- * @returns {Object.} JSON object
+ * Converts this KeyRange to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.KeyRange
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ KeyRange.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for KeyRange
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.KeyRange
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ KeyRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.spanner.v1.KeyRange";
+ };
+
+ return KeyRange;
+ })();
+
+ v1.KeySet = (function() {
+
+ /**
+ * Properties of a KeySet.
+ * @memberof google.spanner.v1
+ * @interface IKeySet
+ * @property {Array.|null} [keys] KeySet keys
+ * @property {Array.|null} [ranges] KeySet ranges
+ * @property {boolean|null} [all] KeySet all
+ */
+
+ /**
+ * Constructs a new KeySet.
+ * @memberof google.spanner.v1
+ * @classdesc Represents a KeySet.
+ * @implements IKeySet
+ * @constructor
+ * @param {google.spanner.v1.IKeySet=} [properties] Properties to set
+ */
+ function KeySet(properties) {
+ this.keys = [];
+ this.ranges = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * KeySet keys.
+ * @member {Array.} keys
+ * @memberof google.spanner.v1.KeySet
+ * @instance
+ */
+ KeySet.prototype.keys = $util.emptyArray;
+
+ /**
+ * KeySet ranges.
+ * @member {Array.} ranges
+ * @memberof google.spanner.v1.KeySet
+ * @instance
+ */
+ KeySet.prototype.ranges = $util.emptyArray;
+
+ /**
+ * KeySet all.
+ * @member {boolean} all
+ * @memberof google.spanner.v1.KeySet
+ * @instance
+ */
+ KeySet.prototype.all = false;
+
+ /**
+ * Creates a new KeySet instance using the specified properties.
+ * @function create
+ * @memberof google.spanner.v1.KeySet
+ * @static
+ * @param {google.spanner.v1.IKeySet=} [properties] Properties to set
+ * @returns {google.spanner.v1.KeySet} KeySet instance
*/
- StructType.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ KeySet.create = function create(properties) {
+ return new KeySet(properties);
};
/**
- * Gets the default type url for StructType
- * @function getTypeUrl
- * @memberof google.spanner.v1.StructType
+ * Encodes the specified KeySet message. Does not implicitly {@link google.spanner.v1.KeySet.verify|verify} messages.
+ * @function encode
+ * @memberof google.spanner.v1.KeySet
* @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
+ * @param {google.spanner.v1.IKeySet} message KeySet message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
*/
- StructType.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
- }
- return typeUrlPrefix + "/google.spanner.v1.StructType";
+ KeySet.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.keys != null && message.keys.length)
+ for (var i = 0; i < message.keys.length; ++i)
+ $root.google.protobuf.ListValue.encode(message.keys[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.ranges != null && message.ranges.length)
+ for (var i = 0; i < message.ranges.length; ++i)
+ $root.google.spanner.v1.KeyRange.encode(message.ranges[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.all != null && Object.hasOwnProperty.call(message, "all"))
+ writer.uint32(/* id 3, wireType 0 =*/24).bool(message.all);
+ return writer;
};
- StructType.Field = (function() {
-
- /**
- * Properties of a Field.
- * @memberof google.spanner.v1.StructType
- * @interface IField
- * @property {string|null} [name] Field name
- * @property {google.spanner.v1.IType|null} [type] Field type
- */
-
- /**
- * Constructs a new Field.
- * @memberof google.spanner.v1.StructType
- * @classdesc Represents a Field.
- * @implements IField
- * @constructor
- * @param {google.spanner.v1.StructType.IField=} [properties] Properties to set
- */
- function Field(properties) {
- if (properties)
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
- if (properties[keys[i]] != null)
- this[keys[i]] = properties[keys[i]];
- }
-
- /**
- * Field name.
- * @member {string} name
- * @memberof google.spanner.v1.StructType.Field
- * @instance
- */
- Field.prototype.name = "";
-
- /**
- * Field type.
- * @member {google.spanner.v1.IType|null|undefined} type
- * @memberof google.spanner.v1.StructType.Field
- * @instance
- */
- Field.prototype.type = null;
-
- /**
- * Creates a new Field instance using the specified properties.
- * @function create
- * @memberof google.spanner.v1.StructType.Field
- * @static
- * @param {google.spanner.v1.StructType.IField=} [properties] Properties to set
- * @returns {google.spanner.v1.StructType.Field} Field instance
- */
- Field.create = function create(properties) {
- return new Field(properties);
- };
-
- /**
- * Encodes the specified Field message. Does not implicitly {@link google.spanner.v1.StructType.Field.verify|verify} messages.
- * @function encode
- * @memberof google.spanner.v1.StructType.Field
- * @static
- * @param {google.spanner.v1.StructType.IField} message Field message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- Field.encode = function encode(message, writer) {
- if (!writer)
- writer = $Writer.create();
- if (message.name != null && Object.hasOwnProperty.call(message, "name"))
- writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);
- if (message.type != null && Object.hasOwnProperty.call(message, "type"))
- $root.google.spanner.v1.Type.encode(message.type, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
- return writer;
- };
-
- /**
- * Encodes the specified Field message, length delimited. Does not implicitly {@link google.spanner.v1.StructType.Field.verify|verify} messages.
- * @function encodeDelimited
- * @memberof google.spanner.v1.StructType.Field
- * @static
- * @param {google.spanner.v1.StructType.IField} message Field message or plain object to encode
- * @param {$protobuf.Writer} [writer] Writer to encode to
- * @returns {$protobuf.Writer} Writer
- */
- Field.encodeDelimited = function encodeDelimited(message, writer) {
- return this.encode(message, writer).ldelim();
- };
+ /**
+ * Encodes the specified KeySet message, length delimited. Does not implicitly {@link google.spanner.v1.KeySet.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.spanner.v1.KeySet
+ * @static
+ * @param {google.spanner.v1.IKeySet} message KeySet message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ KeySet.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
- /**
- * Decodes a Field message from the specified reader or buffer.
- * @function decode
- * @memberof google.spanner.v1.StructType.Field
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @param {number} [length] Message length if known beforehand
- * @returns {google.spanner.v1.StructType.Field} Field
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- Field.decode = function decode(reader, length, error) {
- if (!(reader instanceof $Reader))
- reader = $Reader.create(reader);
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.StructType.Field();
- while (reader.pos < end) {
- var tag = reader.uint32();
- if (tag === error)
+ /**
+ * Decodes a KeySet message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.spanner.v1.KeySet
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.spanner.v1.KeySet} KeySet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ KeySet.decode = function decode(reader, length, error) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.spanner.v1.KeySet();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ if (tag === error)
+ break;
+ switch (tag >>> 3) {
+ case 1: {
+ if (!(message.keys && message.keys.length))
+ message.keys = [];
+ message.keys.push($root.google.protobuf.ListValue.decode(reader, reader.uint32()));
break;
- switch (tag >>> 3) {
- case 1: {
- message.name = reader.string();
- break;
- }
- case 2: {
- message.type = $root.google.spanner.v1.Type.decode(reader, reader.uint32());
- break;
- }
- default:
- reader.skipType(tag & 7);
+ }
+ case 2: {
+ if (!(message.ranges && message.ranges.length))
+ message.ranges = [];
+ message.ranges.push($root.google.spanner.v1.KeyRange.decode(reader, reader.uint32()));
+ break;
+ }
+ case 3: {
+ message.all = reader.bool();
break;
}
+ default:
+ reader.skipType(tag & 7);
+ break;
}
- return message;
- };
+ }
+ return message;
+ };
- /**
- * Decodes a Field message from the specified reader or buffer, length delimited.
- * @function decodeDelimited
- * @memberof google.spanner.v1.StructType.Field
- * @static
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
- * @returns {google.spanner.v1.StructType.Field} Field
- * @throws {Error} If the payload is not a reader or valid buffer
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
- */
- Field.decodeDelimited = function decodeDelimited(reader) {
- if (!(reader instanceof $Reader))
- reader = new $Reader(reader);
- return this.decode(reader, reader.uint32());
- };
+ /**
+ * Decodes a KeySet message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.spanner.v1.KeySet
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.spanner.v1.KeySet} KeySet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ KeySet.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
- /**
- * Verifies a Field message.
- * @function verify
- * @memberof google.spanner.v1.StructType.Field
- * @static
- * @param {Object.} message Plain object to verify
- * @returns {string|null} `null` if valid, otherwise the reason why it is not
- */
- Field.verify = function verify(message) {
- if (typeof message !== "object" || message === null)
- return "object expected";
- if (message.name != null && message.hasOwnProperty("name"))
- if (!$util.isString(message.name))
- return "name: string expected";
- if (message.type != null && message.hasOwnProperty("type")) {
- var error = $root.google.spanner.v1.Type.verify(message.type);
+ /**
+ * Verifies a KeySet message.
+ * @function verify
+ * @memberof google.spanner.v1.KeySet
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ KeySet.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.keys != null && message.hasOwnProperty("keys")) {
+ if (!Array.isArray(message.keys))
+ return "keys: array expected";
+ for (var i = 0; i < message.keys.length; ++i) {
+ var error = $root.google.protobuf.ListValue.verify(message.keys[i]);
if (error)
- return "type." + error;
+ return "keys." + error;
}
- return null;
- };
-
- /**
- * Creates a Field message from a plain object. Also converts values to their respective internal types.
- * @function fromObject
- * @memberof google.spanner.v1.StructType.Field
- * @static
- * @param {Object.} object Plain object
- * @returns {google.spanner.v1.StructType.Field} Field
- */
- Field.fromObject = function fromObject(object) {
- if (object instanceof $root.google.spanner.v1.StructType.Field)
- return object;
- var message = new $root.google.spanner.v1.StructType.Field();
- if (object.name != null)
- message.name = String(object.name);
- if (object.type != null) {
- if (typeof object.type !== "object")
- throw TypeError(".google.spanner.v1.StructType.Field.type: object expected");
- message.type = $root.google.spanner.v1.Type.fromObject(object.type);
+ }
+ if (message.ranges != null && message.hasOwnProperty("ranges")) {
+ if (!Array.isArray(message.ranges))
+ return "ranges: array expected";
+ for (var i = 0; i < message.ranges.length; ++i) {
+ var error = $root.google.spanner.v1.KeyRange.verify(message.ranges[i]);
+ if (error)
+ return "ranges." + error;
}
- return message;
- };
+ }
+ if (message.all != null && message.hasOwnProperty("all"))
+ if (typeof message.all !== "boolean")
+ return "all: boolean expected";
+ return null;
+ };
- /**
- * Creates a plain object from a Field message. Also converts values to other types if specified.
- * @function toObject
- * @memberof google.spanner.v1.StructType.Field
- * @static
- * @param {google.spanner.v1.StructType.Field} message Field
- * @param {$protobuf.IConversionOptions} [options] Conversion options
- * @returns {Object.} Plain object
- */
- Field.toObject = function toObject(message, options) {
- if (!options)
- options = {};
- var object = {};
- if (options.defaults) {
- object.name = "";
- object.type = null;
- }
- if (message.name != null && message.hasOwnProperty("name"))
- object.name = message.name;
- if (message.type != null && message.hasOwnProperty("type"))
- object.type = $root.google.spanner.v1.Type.toObject(message.type, options);
+ /**
+ * Creates a KeySet message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.spanner.v1.KeySet
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.spanner.v1.KeySet} KeySet
+ */
+ KeySet.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.spanner.v1.KeySet)
return object;
- };
-
- /**
- * Converts this Field to JSON.
- * @function toJSON
- * @memberof google.spanner.v1.StructType.Field
- * @instance
- * @returns {Object.} JSON object
- */
- Field.prototype.toJSON = function toJSON() {
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
- };
-
- /**
- * Gets the default type url for Field
- * @function getTypeUrl
- * @memberof google.spanner.v1.StructType.Field
- * @static
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
- * @returns {string} The default type url
- */
- Field.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
- if (typeUrlPrefix === undefined) {
- typeUrlPrefix = "type.googleapis.com";
+ var message = new $root.google.spanner.v1.KeySet();
+ if (object.keys) {
+ if (!Array.isArray(object.keys))
+ throw TypeError(".google.spanner.v1.KeySet.keys: array expected");
+ message.keys = [];
+ for (var i = 0; i < object.keys.length; ++i) {
+ if (typeof object.keys[i] !== "object")
+ throw TypeError(".google.spanner.v1.KeySet.keys: object expected");
+ message.keys[i] = $root.google.protobuf.ListValue.fromObject(object.keys[i]);
}
- return typeUrlPrefix + "/google.spanner.v1.StructType.Field";
- };
+ }
+ if (object.ranges) {
+ if (!Array.isArray(object.ranges))
+ throw TypeError(".google.spanner.v1.KeySet.ranges: array expected");
+ message.ranges = [];
+ for (var i = 0; i < object.ranges.length; ++i) {
+ if (typeof object.ranges[i] !== "object")
+ throw TypeError(".google.spanner.v1.KeySet.ranges: object expected");
+ message.ranges[i] = $root.google.spanner.v1.KeyRange.fromObject(object.ranges[i]);
+ }
+ }
+ if (object.all != null)
+ message.all = Boolean(object.all);
+ return message;
+ };
- return Field;
- })();
+ /**
+ * Creates a plain object from a KeySet message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.spanner.v1.KeySet
+ * @static
+ * @param {google.spanner.v1.KeySet} message KeySet
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ KeySet.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults) {
+ object.keys = [];
+ object.ranges = [];
+ }
+ if (options.defaults)
+ object.all = false;
+ if (message.keys && message.keys.length) {
+ object.keys = [];
+ for (var j = 0; j < message.keys.length; ++j)
+ object.keys[j] = $root.google.protobuf.ListValue.toObject(message.keys[j], options);
+ }
+ if (message.ranges && message.ranges.length) {
+ object.ranges = [];
+ for (var j = 0; j < message.ranges.length; ++j)
+ object.ranges[j] = $root.google.spanner.v1.KeyRange.toObject(message.ranges[j], options);
+ }
+ if (message.all != null && message.hasOwnProperty("all"))
+ object.all = message.all;
+ return object;
+ };
- return StructType;
- })();
+ /**
+ * Converts this KeySet to JSON.
+ * @function toJSON
+ * @memberof google.spanner.v1.KeySet
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ KeySet.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
- /**
- * TypeCode enum.
- * @name google.spanner.v1.TypeCode
- * @enum {number}
- * @property {number} TYPE_CODE_UNSPECIFIED=0 TYPE_CODE_UNSPECIFIED value
- * @property {number} BOOL=1 BOOL value
- * @property {number} INT64=2 INT64 value
- * @property {number} FLOAT64=3 FLOAT64 value
- * @property {number} FLOAT32=15 FLOAT32 value
- * @property {number} TIMESTAMP=4 TIMESTAMP value
- * @property {number} DATE=5 DATE value
- * @property {number} STRING=6 STRING value
- * @property {number} BYTES=7 BYTES value
- * @property {number} ARRAY=8 ARRAY value
- * @property {number} STRUCT=9 STRUCT value
- * @property {number} NUMERIC=10 NUMERIC value
- * @property {number} JSON=11 JSON value
- * @property {number} PROTO=13 PROTO value
- * @property {number} ENUM=14 ENUM value
- * @property {number} INTERVAL=16 INTERVAL value
- * @property {number} UUID=17 UUID value
- */
- v1.TypeCode = (function() {
- var valuesById = {}, values = Object.create(valuesById);
- values[valuesById[0] = "TYPE_CODE_UNSPECIFIED"] = 0;
- values[valuesById[1] = "BOOL"] = 1;
- values[valuesById[2] = "INT64"] = 2;
- values[valuesById[3] = "FLOAT64"] = 3;
- values[valuesById[15] = "FLOAT32"] = 15;
- values[valuesById[4] = "TIMESTAMP"] = 4;
- values[valuesById[5] = "DATE"] = 5;
- values[valuesById[6] = "STRING"] = 6;
- values[valuesById[7] = "BYTES"] = 7;
- values[valuesById[8] = "ARRAY"] = 8;
- values[valuesById[9] = "STRUCT"] = 9;
- values[valuesById[10] = "NUMERIC"] = 10;
- values[valuesById[11] = "JSON"] = 11;
- values[valuesById[13] = "PROTO"] = 13;
- values[valuesById[14] = "ENUM"] = 14;
- values[valuesById[16] = "INTERVAL"] = 16;
- values[valuesById[17] = "UUID"] = 17;
- return values;
- })();
+ /**
+ * Gets the default type url for KeySet
+ * @function getTypeUrl
+ * @memberof google.spanner.v1.KeySet
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ KeySet.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.spanner.v1.KeySet";
+ };
- /**
- * TypeAnnotationCode enum.
- * @name google.spanner.v1.TypeAnnotationCode
- * @enum {number}
- * @property {number} TYPE_ANNOTATION_CODE_UNSPECIFIED=0 TYPE_ANNOTATION_CODE_UNSPECIFIED value
- * @property {number} PG_NUMERIC=2 PG_NUMERIC value
- * @property {number} PG_JSONB=3 PG_JSONB value
- * @property {number} PG_OID=4 PG_OID value
- */
- v1.TypeAnnotationCode = (function() {
- var valuesById = {}, values = Object.create(valuesById);
- values[valuesById[0] = "TYPE_ANNOTATION_CODE_UNSPECIFIED"] = 0;
- values[valuesById[2] = "PG_NUMERIC"] = 2;
- values[valuesById[3] = "PG_JSONB"] = 3;
- values[valuesById[4] = "PG_OID"] = 4;
- return values;
+ return KeySet;
})();
v1.Mutation = (function() {
diff --git a/handwritten/spanner/protos/protos.json b/handwritten/spanner/protos/protos.json
index 99fcec0aa896..ef798c0d7cbe 100644
--- a/handwritten/spanner/protos/protos.json
+++ b/handwritten/spanner/protos/protos.json
@@ -9039,6 +9039,13 @@
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
+ },
+ "routingHint": {
+ "type": "RoutingHint",
+ "id": 5,
+ "options": {
+ "(google.api.field_behavior)": "OPTIONAL"
+ }
}
}
},
@@ -9094,6 +9101,13 @@
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
+ },
+ "routingHint": {
+ "type": "RoutingHint",
+ "id": 10,
+ "options": {
+ "(google.api.field_behavior)": "OPTIONAL"
+ }
}
}
},
@@ -9202,229 +9216,31 @@
"snapshotTimestamp": {
"type": "google.protobuf.Timestamp",
"id": 5
- }
- },
- "nested": {
- "CommitStats": {
- "fields": {
- "mutationCount": {
- "type": "int64",
- "id": 1
- }
- }
- }
- }
- },
- "TransactionOptions": {
- "oneofs": {
- "mode": {
- "oneof": [
- "readWrite",
- "partitionedDml",
- "readOnly"
- ]
- }
- },
- "fields": {
- "readWrite": {
- "type": "ReadWrite",
- "id": 1
},
- "partitionedDml": {
- "type": "PartitionedDml",
- "id": 3
- },
- "readOnly": {
- "type": "ReadOnly",
- "id": 2
- },
- "excludeTxnFromChangeStreams": {
- "type": "bool",
- "id": 5
+ "cacheUpdate": {
+ "type": "CacheUpdate",
+ "id": 6,
+ "options": {
+ "(google.api.field_behavior)": "OPTIONAL"
+ }
},
"isolationLevel": {
- "type": "IsolationLevel",
- "id": 6
+ "type": "TransactionOptions.IsolationLevel",
+ "id": 7
+ },
+ "readLockMode": {
+ "type": "TransactionOptions.ReadWrite.ReadLockMode",
+ "id": 8
}
},
"nested": {
- "ReadWrite": {
- "fields": {
- "readLockMode": {
- "type": "ReadLockMode",
- "id": 1
- },
- "multiplexedSessionPreviousTransactionId": {
- "type": "bytes",
- "id": 2,
- "options": {
- "(google.api.field_behavior)": "OPTIONAL"
- }
- }
- },
- "nested": {
- "ReadLockMode": {
- "values": {
- "READ_LOCK_MODE_UNSPECIFIED": 0,
- "PESSIMISTIC": 1,
- "OPTIMISTIC": 2
- }
- }
- }
- },
- "PartitionedDml": {
- "fields": {}
- },
- "ReadOnly": {
- "oneofs": {
- "timestampBound": {
- "oneof": [
- "strong",
- "minReadTimestamp",
- "maxStaleness",
- "readTimestamp",
- "exactStaleness"
- ]
- }
- },
+ "CommitStats": {
"fields": {
- "strong": {
- "type": "bool",
+ "mutationCount": {
+ "type": "int64",
"id": 1
- },
- "minReadTimestamp": {
- "type": "google.protobuf.Timestamp",
- "id": 2
- },
- "maxStaleness": {
- "type": "google.protobuf.Duration",
- "id": 3
- },
- "readTimestamp": {
- "type": "google.protobuf.Timestamp",
- "id": 4
- },
- "exactStaleness": {
- "type": "google.protobuf.Duration",
- "id": 5
- },
- "returnReadTimestamp": {
- "type": "bool",
- "id": 6
}
}
- },
- "IsolationLevel": {
- "values": {
- "ISOLATION_LEVEL_UNSPECIFIED": 0,
- "SERIALIZABLE": 1,
- "REPEATABLE_READ": 2
- }
- }
- }
- },
- "Transaction": {
- "fields": {
- "id": {
- "type": "bytes",
- "id": 1
- },
- "readTimestamp": {
- "type": "google.protobuf.Timestamp",
- "id": 2
- },
- "precommitToken": {
- "type": "MultiplexedSessionPrecommitToken",
- "id": 3
- }
- }
- },
- "TransactionSelector": {
- "oneofs": {
- "selector": {
- "oneof": [
- "singleUse",
- "id",
- "begin"
- ]
- }
- },
- "fields": {
- "singleUse": {
- "type": "TransactionOptions",
- "id": 1
- },
- "id": {
- "type": "bytes",
- "id": 2
- },
- "begin": {
- "type": "TransactionOptions",
- "id": 3
- }
- }
- },
- "MultiplexedSessionPrecommitToken": {
- "fields": {
- "precommitToken": {
- "type": "bytes",
- "id": 1
- },
- "seqNum": {
- "type": "int32",
- "id": 2
- }
- }
- },
- "KeyRange": {
- "oneofs": {
- "startKeyType": {
- "oneof": [
- "startClosed",
- "startOpen"
- ]
- },
- "endKeyType": {
- "oneof": [
- "endClosed",
- "endOpen"
- ]
- }
- },
- "fields": {
- "startClosed": {
- "type": "google.protobuf.ListValue",
- "id": 1
- },
- "startOpen": {
- "type": "google.protobuf.ListValue",
- "id": 2
- },
- "endClosed": {
- "type": "google.protobuf.ListValue",
- "id": 3
- },
- "endOpen": {
- "type": "google.protobuf.ListValue",
- "id": 4
- }
- }
- },
- "KeySet": {
- "fields": {
- "keys": {
- "rule": "repeated",
- "type": "google.protobuf.ListValue",
- "id": 1
- },
- "ranges": {
- "rule": "repeated",
- "type": "KeyRange",
- "id": 2
- },
- "all": {
- "type": "bool",
- "id": 3
}
}
},
@@ -9782,6 +9598,226 @@
"PG_OID": 4
}
},
+ "TransactionOptions": {
+ "oneofs": {
+ "mode": {
+ "oneof": [
+ "readWrite",
+ "partitionedDml",
+ "readOnly"
+ ]
+ }
+ },
+ "fields": {
+ "readWrite": {
+ "type": "ReadWrite",
+ "id": 1
+ },
+ "partitionedDml": {
+ "type": "PartitionedDml",
+ "id": 3
+ },
+ "readOnly": {
+ "type": "ReadOnly",
+ "id": 2
+ },
+ "excludeTxnFromChangeStreams": {
+ "type": "bool",
+ "id": 5
+ },
+ "isolationLevel": {
+ "type": "IsolationLevel",
+ "id": 6
+ }
+ },
+ "nested": {
+ "ReadWrite": {
+ "fields": {
+ "readLockMode": {
+ "type": "ReadLockMode",
+ "id": 1
+ },
+ "multiplexedSessionPreviousTransactionId": {
+ "type": "bytes",
+ "id": 2,
+ "options": {
+ "(google.api.field_behavior)": "OPTIONAL"
+ }
+ }
+ },
+ "nested": {
+ "ReadLockMode": {
+ "values": {
+ "READ_LOCK_MODE_UNSPECIFIED": 0,
+ "PESSIMISTIC": 1,
+ "OPTIMISTIC": 2
+ }
+ }
+ }
+ },
+ "PartitionedDml": {
+ "fields": {}
+ },
+ "ReadOnly": {
+ "oneofs": {
+ "timestampBound": {
+ "oneof": [
+ "strong",
+ "minReadTimestamp",
+ "maxStaleness",
+ "readTimestamp",
+ "exactStaleness"
+ ]
+ }
+ },
+ "fields": {
+ "strong": {
+ "type": "bool",
+ "id": 1
+ },
+ "minReadTimestamp": {
+ "type": "google.protobuf.Timestamp",
+ "id": 2
+ },
+ "maxStaleness": {
+ "type": "google.protobuf.Duration",
+ "id": 3
+ },
+ "readTimestamp": {
+ "type": "google.protobuf.Timestamp",
+ "id": 4
+ },
+ "exactStaleness": {
+ "type": "google.protobuf.Duration",
+ "id": 5
+ },
+ "returnReadTimestamp": {
+ "type": "bool",
+ "id": 6
+ }
+ }
+ },
+ "IsolationLevel": {
+ "values": {
+ "ISOLATION_LEVEL_UNSPECIFIED": 0,
+ "SERIALIZABLE": 1,
+ "REPEATABLE_READ": 2
+ }
+ }
+ }
+ },
+ "Transaction": {
+ "fields": {
+ "id": {
+ "type": "bytes",
+ "id": 1
+ },
+ "readTimestamp": {
+ "type": "google.protobuf.Timestamp",
+ "id": 2
+ },
+ "precommitToken": {
+ "type": "MultiplexedSessionPrecommitToken",
+ "id": 3
+ },
+ "cacheUpdate": {
+ "type": "CacheUpdate",
+ "id": 5,
+ "options": {
+ "(google.api.field_behavior)": "OPTIONAL"
+ }
+ }
+ }
+ },
+ "TransactionSelector": {
+ "oneofs": {
+ "selector": {
+ "oneof": [
+ "singleUse",
+ "id",
+ "begin"
+ ]
+ }
+ },
+ "fields": {
+ "singleUse": {
+ "type": "TransactionOptions",
+ "id": 1
+ },
+ "id": {
+ "type": "bytes",
+ "id": 2
+ },
+ "begin": {
+ "type": "TransactionOptions",
+ "id": 3
+ }
+ }
+ },
+ "MultiplexedSessionPrecommitToken": {
+ "fields": {
+ "precommitToken": {
+ "type": "bytes",
+ "id": 1
+ },
+ "seqNum": {
+ "type": "int32",
+ "id": 2
+ }
+ }
+ },
+ "KeyRange": {
+ "oneofs": {
+ "startKeyType": {
+ "oneof": [
+ "startClosed",
+ "startOpen"
+ ]
+ },
+ "endKeyType": {
+ "oneof": [
+ "endClosed",
+ "endOpen"
+ ]
+ }
+ },
+ "fields": {
+ "startClosed": {
+ "type": "google.protobuf.ListValue",
+ "id": 1
+ },
+ "startOpen": {
+ "type": "google.protobuf.ListValue",
+ "id": 2
+ },
+ "endClosed": {
+ "type": "google.protobuf.ListValue",
+ "id": 3
+ },
+ "endOpen": {
+ "type": "google.protobuf.ListValue",
+ "id": 4
+ }
+ }
+ },
+ "KeySet": {
+ "fields": {
+ "keys": {
+ "rule": "repeated",
+ "type": "google.protobuf.ListValue",
+ "id": 1
+ },
+ "ranges": {
+ "rule": "repeated",
+ "type": "KeyRange",
+ "id": 2
+ },
+ "all": {
+ "type": "bool",
+ "id": 3
+ }
+ }
+ },
"Mutation": {
"oneofs": {
"operation": {
diff --git a/handwritten/spanner/src/v1/gapic_metadata.json b/handwritten/spanner/src/v1/gapic_metadata.json
index fd7e7f8cc296..3354d9b87f16 100644
--- a/handwritten/spanner/src/v1/gapic_metadata.json
+++ b/handwritten/spanner/src/v1/gapic_metadata.json
@@ -2,24 +2,169 @@
"schema": "1.0",
"comment": "This file maps proto services/RPCs to the corresponding library clients/methods",
"language": "typescript",
- "protoPackage": "google.spanner.executor.v1",
- "libraryPackage": "@google-cloud/executor",
+ "protoPackage": "google.spanner.v1",
+ "libraryPackage": "@google-cloud/spanner",
"services": {
- "SpannerExecutorProxy": {
+ "Spanner": {
"clients": {
"grpc": {
- "libraryClient": "SpannerExecutorProxyClient",
+ "libraryClient": "SpannerClient",
"rpcs": {
- "ExecuteActionAsync": {
+ "CreateSession": {
"methods": [
- "executeActionAsync"
+ "createSession"
+ ]
+ },
+ "BatchCreateSessions": {
+ "methods": [
+ "batchCreateSessions"
+ ]
+ },
+ "GetSession": {
+ "methods": [
+ "getSession"
+ ]
+ },
+ "DeleteSession": {
+ "methods": [
+ "deleteSession"
+ ]
+ },
+ "ExecuteSql": {
+ "methods": [
+ "executeSql"
+ ]
+ },
+ "ExecuteBatchDml": {
+ "methods": [
+ "executeBatchDml"
+ ]
+ },
+ "Read": {
+ "methods": [
+ "read"
+ ]
+ },
+ "BeginTransaction": {
+ "methods": [
+ "beginTransaction"
+ ]
+ },
+ "Commit": {
+ "methods": [
+ "commit"
+ ]
+ },
+ "Rollback": {
+ "methods": [
+ "rollback"
+ ]
+ },
+ "PartitionQuery": {
+ "methods": [
+ "partitionQuery"
+ ]
+ },
+ "PartitionRead": {
+ "methods": [
+ "partitionRead"
+ ]
+ },
+ "ExecuteStreamingSql": {
+ "methods": [
+ "executeStreamingSql"
+ ]
+ },
+ "StreamingRead": {
+ "methods": [
+ "streamingRead"
+ ]
+ },
+ "BatchWrite": {
+ "methods": [
+ "batchWrite"
+ ]
+ },
+ "ListSessions": {
+ "methods": [
+ "listSessions",
+ "listSessionsStream",
+ "listSessionsAsync"
]
}
}
},
"grpc-fallback": {
- "libraryClient": "SpannerExecutorProxyClient",
- "rpcs": {}
+ "libraryClient": "SpannerClient",
+ "rpcs": {
+ "CreateSession": {
+ "methods": [
+ "createSession"
+ ]
+ },
+ "BatchCreateSessions": {
+ "methods": [
+ "batchCreateSessions"
+ ]
+ },
+ "GetSession": {
+ "methods": [
+ "getSession"
+ ]
+ },
+ "DeleteSession": {
+ "methods": [
+ "deleteSession"
+ ]
+ },
+ "ExecuteSql": {
+ "methods": [
+ "executeSql"
+ ]
+ },
+ "ExecuteBatchDml": {
+ "methods": [
+ "executeBatchDml"
+ ]
+ },
+ "Read": {
+ "methods": [
+ "read"
+ ]
+ },
+ "BeginTransaction": {
+ "methods": [
+ "beginTransaction"
+ ]
+ },
+ "Commit": {
+ "methods": [
+ "commit"
+ ]
+ },
+ "Rollback": {
+ "methods": [
+ "rollback"
+ ]
+ },
+ "PartitionQuery": {
+ "methods": [
+ "partitionQuery"
+ ]
+ },
+ "PartitionRead": {
+ "methods": [
+ "partitionRead"
+ ]
+ },
+ "ListSessions": {
+ "methods": [
+ "listSessions",
+ "listSessionsStream",
+ "listSessionsAsync"
+ ]
+ }
+ }
}
}
}
diff --git a/handwritten/spanner/src/v1/spanner_client.ts b/handwritten/spanner/src/v1/spanner_client.ts
index 07a538fbd3fb..a7f5d999e09f 100644
--- a/handwritten/spanner/src/v1/spanner_client.ts
+++ b/handwritten/spanner/src/v1/spanner_client.ts
@@ -18,14 +18,7 @@
/* global window */
import type * as gax from 'google-gax';
-import type {
- Callback,
- CallOptions,
- Descriptors,
- ClientOptions,
- PaginationCallback,
- GaxCall,
-} from 'google-gax';
+import type {Callback, CallOptions, Descriptors, ClientOptions, PaginationCallback, GaxCall} from 'google-gax';
import {Transform, PassThrough} from 'stream';
import * as protos from '../../protos/protos';
import jsonProtos = require('../../protos/protos.json');
@@ -110,41 +103,20 @@ export class SpannerClient {
* const client = new SpannerClient({fallback: true}, gax);
* ```
*/
- constructor(
- opts?: ClientOptions,
- gaxInstance?: typeof gax | typeof gax.fallback,
- ) {
+ constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback) {
// Ensure that options include all the required fields.
const staticMembers = this.constructor as typeof SpannerClient;
- if (
- opts?.universe_domain &&
- opts?.universeDomain &&
- opts?.universe_domain !== opts?.universeDomain
- ) {
- throw new Error(
- 'Please set either universe_domain or universeDomain, but not both.',
- );
+ if (opts?.universe_domain && opts?.universeDomain && opts?.universe_domain !== opts?.universeDomain) {
+ throw new Error('Please set either universe_domain or universeDomain, but not both.');
}
- const universeDomainEnvVar =
- typeof process === 'object' && typeof process.env === 'object'
- ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']
- : undefined;
- this._universeDomain =
- opts?.universeDomain ??
- opts?.universe_domain ??
- universeDomainEnvVar ??
- 'googleapis.com';
+ const universeDomainEnvVar = (typeof process === 'object' && typeof process.env === 'object') ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] : undefined;
+ this._universeDomain = opts?.universeDomain ?? opts?.universe_domain ?? universeDomainEnvVar ?? 'googleapis.com';
this._servicePath = 'spanner.' + this._universeDomain;
- const servicePath =
- opts?.servicePath || opts?.apiEndpoint || this._servicePath;
- this._providedCustomServicePath = !!(
- opts?.servicePath || opts?.apiEndpoint
- );
+ const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath;
+ this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint);
const port = opts?.port || staticMembers.port;
const clientConfig = opts?.clientConfig ?? {};
- const fallback =
- opts?.fallback ??
- (typeof window !== 'undefined' && typeof window?.fetch === 'function');
+ const fallback = opts?.fallback ?? (typeof window !== 'undefined' && typeof window?.fetch === 'function');
opts = Object.assign({servicePath, port, clientConfig, fallback}, opts);
// Request numeric enum values if REST transport is used.
@@ -170,7 +142,7 @@ export class SpannerClient {
this._opts = opts;
// Save the auth object to the client, for use by other methods.
- this.auth = this._gaxGrpc.auth as gax.GoogleAuth;
+ this.auth = (this._gaxGrpc.auth as gax.GoogleAuth);
// Set useJWTAccessWithScope on the auth object.
this.auth.useJWTAccessWithScope = true;
@@ -184,7 +156,10 @@ export class SpannerClient {
}
// Determine the client header string.
- const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`];
+ const clientHeader = [
+ `gax/${this._gaxModule.version}`,
+ `gapic/${version}`,
+ ];
if (typeof process === 'object' && 'versions' in process) {
clientHeader.push(`gl-node/${process.versions.node}`);
} else {
@@ -206,10 +181,10 @@ export class SpannerClient {
// Create useful helper objects for these.
this.pathTemplates = {
databasePathTemplate: new this._gaxModule.PathTemplate(
- 'projects/{project}/instances/{instance}/databases/{database}',
+ 'projects/{project}/instances/{instance}/databases/{database}'
),
sessionPathTemplate: new this._gaxModule.PathTemplate(
- 'projects/{project}/instances/{instance}/databases/{database}/sessions/{session}',
+ 'projects/{project}/instances/{instance}/databases/{database}/sessions/{session}'
),
};
@@ -217,40 +192,22 @@ export class SpannerClient {
// (e.g. 50 results at a time, with tokens to get subsequent
// pages). Denote the keys used for pagination and results.
this.descriptors.page = {
- listSessions: new this._gaxModule.PageDescriptor(
- 'pageToken',
- 'nextPageToken',
- 'sessions',
- ),
+ listSessions:
+ new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'sessions')
};
// Some of the methods on this service provide streaming responses.
// Provide descriptors for these.
this.descriptors.stream = {
- executeStreamingSql: new this._gaxModule.StreamDescriptor(
- this._gaxModule.StreamType.SERVER_STREAMING,
- !!opts.fallback,
- !!opts.gaxServerStreamingRetries,
- ),
- streamingRead: new this._gaxModule.StreamDescriptor(
- this._gaxModule.StreamType.SERVER_STREAMING,
- !!opts.fallback,
- !!opts.gaxServerStreamingRetries,
- ),
- batchWrite: new this._gaxModule.StreamDescriptor(
- this._gaxModule.StreamType.SERVER_STREAMING,
- !!opts.fallback,
- !!opts.gaxServerStreamingRetries,
- ),
+ executeStreamingSql: new this._gaxModule.StreamDescriptor(this._gaxModule.StreamType.SERVER_STREAMING, !!opts.fallback, !!opts.gaxServerStreamingRetries),
+ streamingRead: new this._gaxModule.StreamDescriptor(this._gaxModule.StreamType.SERVER_STREAMING, !!opts.fallback, !!opts.gaxServerStreamingRetries),
+ batchWrite: new this._gaxModule.StreamDescriptor(this._gaxModule.StreamType.SERVER_STREAMING, !!opts.fallback, !!opts.gaxServerStreamingRetries)
};
// Put together the default options sent with requests.
this._defaults = this._gaxGrpc.constructSettings(
- 'google.spanner.v1.Spanner',
- gapicConfig as gax.ClientConfig,
- opts.clientConfig || {},
- {'x-goog-api-client': clientHeader.join(' ')},
- );
+ 'google.spanner.v1.Spanner', gapicConfig as gax.ClientConfig,
+ opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')});
// Set up a dictionary of "inner API calls"; the core implementation
// of calling the API is handled in `google-gax`, with this code
@@ -281,62 +238,35 @@ export class SpannerClient {
// Put together the "service stub" for
// google.spanner.v1.Spanner.
this.spannerStub = this._gaxGrpc.createStub(
- this._opts.fallback
- ? (this._protos as protobuf.Root).lookupService(
- 'google.spanner.v1.Spanner',
- )
- : // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ this._opts.fallback ?
+ (this._protos as protobuf.Root).lookupService('google.spanner.v1.Spanner') :
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
(this._protos as any).google.spanner.v1.Spanner,
- this._opts,
- this._providedCustomServicePath,
- ) as Promise<{[method: string]: Function}>;
+ this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>;
// Iterate over each of the methods that the service provides
// and create an API call method for each.
- const spannerStubMethods = [
- 'createSession',
- 'batchCreateSessions',
- 'getSession',
- 'listSessions',
- 'deleteSession',
- 'executeSql',
- 'executeStreamingSql',
- 'executeBatchDml',
- 'read',
- 'streamingRead',
- 'beginTransaction',
- 'commit',
- 'rollback',
- 'partitionQuery',
- 'partitionRead',
- 'batchWrite',
- ];
+ const spannerStubMethods =
+ ['createSession', 'batchCreateSessions', 'getSession', 'listSessions', 'deleteSession', 'executeSql', 'executeStreamingSql', 'executeBatchDml', 'read', 'streamingRead', 'beginTransaction', 'commit', 'rollback', 'partitionQuery', 'partitionRead', 'batchWrite'];
for (const methodName of spannerStubMethods) {
const callPromise = this.spannerStub.then(
- stub =>
- (...args: Array<{}>) => {
- if (this._terminated) {
- if (methodName in this.descriptors.stream) {
- const stream = new PassThrough({objectMode: true});
- setImmediate(() => {
- stream.emit(
- 'error',
- new this._gaxModule.GoogleError(
- 'The client has already been closed.',
- ),
- );
- });
- return stream;
- }
- return Promise.reject('The client has already been closed.');
+ stub => (...args: Array<{}>) => {
+ if (this._terminated) {
+ if (methodName in this.descriptors.stream) {
+ const stream = new PassThrough({objectMode: true});
+ setImmediate(() => {
+ stream.emit('error', new this._gaxModule.GoogleError('The client has already been closed.'));
+ });
+ return stream;
}
- const func = stub[methodName];
- return func.apply(stub, args);
- },
- (err: Error | null | undefined) => () => {
- throw err;
+ return Promise.reject('The client has already been closed.');
+ }
+ const func = stub[methodName];
+ return func.apply(stub, args);
},
- );
+ (err: Error|null|undefined) => () => {
+ throw err;
+ });
const descriptor =
this.descriptors.page[methodName] ||
@@ -346,7 +276,7 @@ export class SpannerClient {
callPromise,
this._defaults[methodName],
descriptor,
- this._opts.fallback,
+ this._opts.fallback
);
this.innerApiCalls[methodName] = apiCall;
@@ -361,14 +291,8 @@ export class SpannerClient {
* @returns {string} The DNS address for this service.
*/
static get servicePath() {
- if (
- typeof process === 'object' &&
- typeof process.emitWarning === 'function'
- ) {
- process.emitWarning(
- 'Static servicePath is deprecated, please use the instance method instead.',
- 'DeprecationWarning',
- );
+ if (typeof process === 'object' && typeof process.emitWarning === 'function') {
+ process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning');
}
return 'spanner.googleapis.com';
}
@@ -379,14 +303,8 @@ export class SpannerClient {
* @returns {string} The DNS address for this service.
*/
static get apiEndpoint() {
- if (
- typeof process === 'object' &&
- typeof process.emitWarning === 'function'
- ) {
- process.emitWarning(
- 'Static apiEndpoint is deprecated, please use the instance method instead.',
- 'DeprecationWarning',
- );
+ if (typeof process === 'object' && typeof process.emitWarning === 'function') {
+ process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning');
}
return 'spanner.googleapis.com';
}
@@ -419,7 +337,7 @@ export class SpannerClient {
static get scopes() {
return [
'https://www.googleapis.com/auth/cloud-platform',
- 'https://www.googleapis.com/auth/spanner.data',
+ 'https://www.googleapis.com/auth/spanner.data'
];
}
@@ -429,9 +347,8 @@ export class SpannerClient {
* Return the project ID used by this class.
* @returns {Promise} A promise that resolves to string containing the project ID.
*/
- getProjectId(
- callback?: Callback,
- ): Promise | void {
+ getProjectId(callback?: Callback):
+ Promise|void {
if (callback) {
this.auth.getProjectId(callback);
return;
@@ -442,2341 +359,1973 @@ export class SpannerClient {
// -------------------
// -- Service calls --
// -------------------
- /**
- * Creates a new session. A session can be used to perform
- * transactions that read and/or modify data in a Cloud Spanner database.
- * Sessions are meant to be reused for many consecutive
- * transactions.
- *
- * Sessions can only execute one transaction at a time. To execute
- * multiple concurrent read-write/write-only transactions, create
- * multiple sessions. Note that standalone reads and queries use a
- * transaction internally, and count toward the one transaction
- * limit.
- *
- * Active sessions use additional server resources, so it's a good idea to
- * delete idle and unneeded sessions.
- * Aside from explicit deletes, Cloud Spanner can delete sessions when no
- * operations are sent for more than an hour. If a session is deleted,
- * requests to it return `NOT_FOUND`.
- *
- * Idle sessions can be kept alive by sending a trivial SQL query
- * periodically, for example, `"SELECT 1"`.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.database
- * Required. The database in which the new session is created.
- * @param {google.spanner.v1.Session} request.session
- * Required. The session to create.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is an object representing {@link protos.google.spanner.v1.Session|Session}.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
- * for more details and examples.
- */
+/**
+ * Creates a new session. A session can be used to perform
+ * transactions that read and/or modify data in a Cloud Spanner database.
+ * Sessions are meant to be reused for many consecutive
+ * transactions.
+ *
+ * Sessions can only execute one transaction at a time. To execute
+ * multiple concurrent read-write/write-only transactions, create
+ * multiple sessions. Note that standalone reads and queries use a
+ * transaction internally, and count toward the one transaction
+ * limit.
+ *
+ * Active sessions use additional server resources, so it's a good idea to
+ * delete idle and unneeded sessions.
+ * Aside from explicit deletes, Cloud Spanner can delete sessions when no
+ * operations are sent for more than an hour. If a session is deleted,
+ * requests to it return `NOT_FOUND`.
+ *
+ * Idle sessions can be kept alive by sending a trivial SQL query
+ * periodically, for example, `"SELECT 1"`.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.database
+ * Required. The database in which the new session is created.
+ * @param {google.spanner.v1.Session} request.session
+ * Required. The session to create.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is an object representing {@link protos.google.spanner.v1.Session|Session}.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
+ * for more details and examples.
+ */
createSession(
- request?: protos.google.spanner.v1.ICreateSessionRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.ICreateSessionRequest | undefined,
- {} | undefined,
- ]
- >;
+ request?: protos.google.spanner.v1.ICreateSessionRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.ICreateSessionRequest|undefined, {}|undefined
+ ]>;
createSession(
- request: protos.google.spanner.v1.ICreateSessionRequest,
- options: CallOptions,
- callback: Callback<
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.ICreateSessionRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.ICreateSessionRequest,
+ options: CallOptions,
+ callback: Callback<
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.ICreateSessionRequest|null|undefined,
+ {}|null|undefined>): void;
createSession(
- request: protos.google.spanner.v1.ICreateSessionRequest,
- callback: Callback<
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.ICreateSessionRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.ICreateSessionRequest,
+ callback: Callback<
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.ICreateSessionRequest|null|undefined,
+ {}|null|undefined>): void;
createSession(
- request?: protos.google.spanner.v1.ICreateSessionRequest,
- optionsOrCallback?:
- | CallOptions
- | Callback<
+ request?: protos.google.spanner.v1.ICreateSessionRequest,
+ optionsOrCallback?: CallOptions|Callback<
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.ICreateSessionRequest|null|undefined,
+ {}|null|undefined>,
+ callback?: Callback<
protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.ICreateSessionRequest | null | undefined,
- {} | null | undefined
- >,
- callback?: Callback<
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.ICreateSessionRequest | null | undefined,
- {} | null | undefined
- >,
- ): Promise<
- [
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.ICreateSessionRequest | undefined,
- {} | undefined,
- ]
- > | void {
+ protos.google.spanner.v1.ICreateSessionRequest|null|undefined,
+ {}|null|undefined>):
+ Promise<[
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.ICreateSessionRequest|undefined, {}|undefined
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- database: request.database ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'database': request.database ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('createSession request %j', request);
- const wrappedCallback:
- | Callback<
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.ICreateSessionRequest | null | undefined,
- {} | null | undefined
- >
- | undefined = callback
+ const wrappedCallback: Callback<
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.ICreateSessionRequest|null|undefined,
+ {}|null|undefined>|undefined = callback
? (error, response, options, rawResponse) => {
this._log.info('createSession response %j', response);
callback!(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
- return this.innerApiCalls
- .createSession(request, options, wrappedCallback)
- ?.then(
- ([response, options, rawResponse]: [
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.ICreateSessionRequest | undefined,
- {} | undefined,
- ]) => {
- this._log.info('createSession response %j', response);
- return [response, options, rawResponse];
- },
- )
- .catch((error: any) => {
- if (
- error &&
- 'statusDetails' in error &&
- error.statusDetails instanceof Array
- ) {
- const protos = this._gaxModule.protobuf.Root.fromJSON(
- jsonProtos,
- ) as unknown as gax.protobuf.Type;
- error.statusDetails = decodeAnyProtosInArray(
- error.statusDetails,
- protos,
- );
+ return this.innerApiCalls.createSession(request, options, wrappedCallback)
+ ?.then(([response, options, rawResponse]: [
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.ICreateSessionRequest|undefined,
+ {}|undefined
+ ]) => {
+ this._log.info('createSession response %j', response);
+ return [response, options, rawResponse];
+ }).catch((error: any) => {
+ if (error && 'statusDetails' in error && error.statusDetails instanceof Array) {
+ const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type;
+ error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos);
}
throw error;
});
}
- /**
- * Creates multiple new sessions.
- *
- * This API can be used to initialize a session cache on the clients.
- * See https://goo.gl/TgSFN2 for best practices on session cache management.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.database
- * Required. The database in which the new sessions are created.
- * @param {google.spanner.v1.Session} request.sessionTemplate
- * Parameters to apply to each created session.
- * @param {number} request.sessionCount
- * Required. The number of sessions to be created in this batch call. At least
- * one session is created. The API can return fewer than the requested number
- * of sessions. If a specific number of sessions are desired, the client can
- * make additional calls to `BatchCreateSessions` (adjusting
- * {@link protos.google.spanner.v1.BatchCreateSessionsRequest.session_count|session_count}
- * as necessary).
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is an object representing {@link protos.google.spanner.v1.BatchCreateSessionsResponse|BatchCreateSessionsResponse}.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
- * for more details and examples.
- */
+/**
+ * Creates multiple new sessions.
+ *
+ * This API can be used to initialize a session cache on the clients.
+ * See https://goo.gl/TgSFN2 for best practices on session cache management.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.database
+ * Required. The database in which the new sessions are created.
+ * @param {google.spanner.v1.Session} request.sessionTemplate
+ * Parameters to apply to each created session.
+ * @param {number} request.sessionCount
+ * Required. The number of sessions to be created in this batch call. At least
+ * one session is created. The API can return fewer than the requested number
+ * of sessions. If a specific number of sessions are desired, the client can
+ * make additional calls to `BatchCreateSessions` (adjusting
+ * {@link protos.google.spanner.v1.BatchCreateSessionsRequest.session_count|session_count}
+ * as necessary).
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is an object representing {@link protos.google.spanner.v1.BatchCreateSessionsResponse|BatchCreateSessionsResponse}.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
+ * for more details and examples.
+ */
batchCreateSessions(
- request?: protos.google.spanner.v1.IBatchCreateSessionsRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.spanner.v1.IBatchCreateSessionsResponse,
- protos.google.spanner.v1.IBatchCreateSessionsRequest | undefined,
- {} | undefined,
- ]
- >;
+ request?: protos.google.spanner.v1.IBatchCreateSessionsRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.spanner.v1.IBatchCreateSessionsResponse,
+ protos.google.spanner.v1.IBatchCreateSessionsRequest|undefined, {}|undefined
+ ]>;
batchCreateSessions(
- request: protos.google.spanner.v1.IBatchCreateSessionsRequest,
- options: CallOptions,
- callback: Callback<
- protos.google.spanner.v1.IBatchCreateSessionsResponse,
- protos.google.spanner.v1.IBatchCreateSessionsRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IBatchCreateSessionsRequest,
+ options: CallOptions,
+ callback: Callback<
+ protos.google.spanner.v1.IBatchCreateSessionsResponse,
+ protos.google.spanner.v1.IBatchCreateSessionsRequest|null|undefined,
+ {}|null|undefined>): void;
batchCreateSessions(
- request: protos.google.spanner.v1.IBatchCreateSessionsRequest,
- callback: Callback<
- protos.google.spanner.v1.IBatchCreateSessionsResponse,
- protos.google.spanner.v1.IBatchCreateSessionsRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IBatchCreateSessionsRequest,
+ callback: Callback<
+ protos.google.spanner.v1.IBatchCreateSessionsResponse,
+ protos.google.spanner.v1.IBatchCreateSessionsRequest|null|undefined,
+ {}|null|undefined>): void;
batchCreateSessions(
- request?: protos.google.spanner.v1.IBatchCreateSessionsRequest,
- optionsOrCallback?:
- | CallOptions
- | Callback<
+ request?: protos.google.spanner.v1.IBatchCreateSessionsRequest,
+ optionsOrCallback?: CallOptions|Callback<
protos.google.spanner.v1.IBatchCreateSessionsResponse,
- | protos.google.spanner.v1.IBatchCreateSessionsRequest
- | null
- | undefined,
- {} | null | undefined
- >,
- callback?: Callback<
- protos.google.spanner.v1.IBatchCreateSessionsResponse,
- protos.google.spanner.v1.IBatchCreateSessionsRequest | null | undefined,
- {} | null | undefined
- >,
- ): Promise<
- [
- protos.google.spanner.v1.IBatchCreateSessionsResponse,
- protos.google.spanner.v1.IBatchCreateSessionsRequest | undefined,
- {} | undefined,
- ]
- > | void {
+ protos.google.spanner.v1.IBatchCreateSessionsRequest|null|undefined,
+ {}|null|undefined>,
+ callback?: Callback<
+ protos.google.spanner.v1.IBatchCreateSessionsResponse,
+ protos.google.spanner.v1.IBatchCreateSessionsRequest|null|undefined,
+ {}|null|undefined>):
+ Promise<[
+ protos.google.spanner.v1.IBatchCreateSessionsResponse,
+ protos.google.spanner.v1.IBatchCreateSessionsRequest|undefined, {}|undefined
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- database: request.database ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'database': request.database ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('batchCreateSessions request %j', request);
- const wrappedCallback:
- | Callback<
- protos.google.spanner.v1.IBatchCreateSessionsResponse,
- | protos.google.spanner.v1.IBatchCreateSessionsRequest
- | null
- | undefined,
- {} | null | undefined
- >
- | undefined = callback
+ const wrappedCallback: Callback<
+ protos.google.spanner.v1.IBatchCreateSessionsResponse,
+ protos.google.spanner.v1.IBatchCreateSessionsRequest|null|undefined,
+ {}|null|undefined>|undefined = callback
? (error, response, options, rawResponse) => {
this._log.info('batchCreateSessions response %j', response);
callback!(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
- return this.innerApiCalls
- .batchCreateSessions(request, options, wrappedCallback)
- ?.then(
- ([response, options, rawResponse]: [
- protos.google.spanner.v1.IBatchCreateSessionsResponse,
- protos.google.spanner.v1.IBatchCreateSessionsRequest | undefined,
- {} | undefined,
- ]) => {
- this._log.info('batchCreateSessions response %j', response);
- return [response, options, rawResponse];
- },
- )
- .catch((error: any) => {
- if (
- error &&
- 'statusDetails' in error &&
- error.statusDetails instanceof Array
- ) {
- const protos = this._gaxModule.protobuf.Root.fromJSON(
- jsonProtos,
- ) as unknown as gax.protobuf.Type;
- error.statusDetails = decodeAnyProtosInArray(
- error.statusDetails,
- protos,
- );
+ return this.innerApiCalls.batchCreateSessions(request, options, wrappedCallback)
+ ?.then(([response, options, rawResponse]: [
+ protos.google.spanner.v1.IBatchCreateSessionsResponse,
+ protos.google.spanner.v1.IBatchCreateSessionsRequest|undefined,
+ {}|undefined
+ ]) => {
+ this._log.info('batchCreateSessions response %j', response);
+ return [response, options, rawResponse];
+ }).catch((error: any) => {
+ if (error && 'statusDetails' in error && error.statusDetails instanceof Array) {
+ const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type;
+ error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos);
}
throw error;
});
}
- /**
- * Gets a session. Returns `NOT_FOUND` if the session doesn't exist.
- * This is mainly useful for determining whether a session is still
- * alive.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.name
- * Required. The name of the session to retrieve.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is an object representing {@link protos.google.spanner.v1.Session|Session}.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
- * for more details and examples.
- */
+/**
+ * Gets a session. Returns `NOT_FOUND` if the session doesn't exist.
+ * This is mainly useful for determining whether a session is still
+ * alive.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.name
+ * Required. The name of the session to retrieve.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is an object representing {@link protos.google.spanner.v1.Session|Session}.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
+ * for more details and examples.
+ */
getSession(
- request?: protos.google.spanner.v1.IGetSessionRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.IGetSessionRequest | undefined,
- {} | undefined,
- ]
- >;
+ request?: protos.google.spanner.v1.IGetSessionRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.IGetSessionRequest|undefined, {}|undefined
+ ]>;
getSession(
- request: protos.google.spanner.v1.IGetSessionRequest,
- options: CallOptions,
- callback: Callback<
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.IGetSessionRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IGetSessionRequest,
+ options: CallOptions,
+ callback: Callback<
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.IGetSessionRequest|null|undefined,
+ {}|null|undefined>): void;
getSession(
- request: protos.google.spanner.v1.IGetSessionRequest,
- callback: Callback<
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.IGetSessionRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IGetSessionRequest,
+ callback: Callback<
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.IGetSessionRequest|null|undefined,
+ {}|null|undefined>): void;
getSession(
- request?: protos.google.spanner.v1.IGetSessionRequest,
- optionsOrCallback?:
- | CallOptions
- | Callback<
+ request?: protos.google.spanner.v1.IGetSessionRequest,
+ optionsOrCallback?: CallOptions|Callback<
protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.IGetSessionRequest | null | undefined,
- {} | null | undefined
- >,
- callback?: Callback<
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.IGetSessionRequest | null | undefined,
- {} | null | undefined
- >,
- ): Promise<
- [
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.IGetSessionRequest | undefined,
- {} | undefined,
- ]
- > | void {
+ protos.google.spanner.v1.IGetSessionRequest|null|undefined,
+ {}|null|undefined>,
+ callback?: Callback<
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.IGetSessionRequest|null|undefined,
+ {}|null|undefined>):
+ Promise<[
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.IGetSessionRequest|undefined, {}|undefined
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- name: request.name ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'name': request.name ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('getSession request %j', request);
- const wrappedCallback:
- | Callback<
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.IGetSessionRequest | null | undefined,
- {} | null | undefined
- >
- | undefined = callback
+ const wrappedCallback: Callback<
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.IGetSessionRequest|null|undefined,
+ {}|null|undefined>|undefined = callback
? (error, response, options, rawResponse) => {
this._log.info('getSession response %j', response);
callback!(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
- return this.innerApiCalls
- .getSession(request, options, wrappedCallback)
- ?.then(
- ([response, options, rawResponse]: [
- protos.google.spanner.v1.ISession,
- protos.google.spanner.v1.IGetSessionRequest | undefined,
- {} | undefined,
- ]) => {
- this._log.info('getSession response %j', response);
- return [response, options, rawResponse];
- },
- )
- .catch((error: any) => {
- if (
- error &&
- 'statusDetails' in error &&
- error.statusDetails instanceof Array
- ) {
- const protos = this._gaxModule.protobuf.Root.fromJSON(
- jsonProtos,
- ) as unknown as gax.protobuf.Type;
- error.statusDetails = decodeAnyProtosInArray(
- error.statusDetails,
- protos,
- );
+ return this.innerApiCalls.getSession(request, options, wrappedCallback)
+ ?.then(([response, options, rawResponse]: [
+ protos.google.spanner.v1.ISession,
+ protos.google.spanner.v1.IGetSessionRequest|undefined,
+ {}|undefined
+ ]) => {
+ this._log.info('getSession response %j', response);
+ return [response, options, rawResponse];
+ }).catch((error: any) => {
+ if (error && 'statusDetails' in error && error.statusDetails instanceof Array) {
+ const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type;
+ error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos);
}
throw error;
});
}
- /**
- * Ends a session, releasing server resources associated with it. This
- * asynchronously triggers the cancellation of any operations that are running
- * with this session.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.name
- * Required. The name of the session to delete.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is an object representing {@link protos.google.protobuf.Empty|Empty}.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
- * for more details and examples.
- */
+/**
+ * Ends a session, releasing server resources associated with it. This
+ * asynchronously triggers the cancellation of any operations that are running
+ * with this session.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.name
+ * Required. The name of the session to delete.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is an object representing {@link protos.google.protobuf.Empty|Empty}.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
+ * for more details and examples.
+ */
deleteSession(
- request?: protos.google.spanner.v1.IDeleteSessionRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IDeleteSessionRequest | undefined,
- {} | undefined,
- ]
- >;
+ request?: protos.google.spanner.v1.IDeleteSessionRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IDeleteSessionRequest|undefined, {}|undefined
+ ]>;
deleteSession(
- request: protos.google.spanner.v1.IDeleteSessionRequest,
- options: CallOptions,
- callback: Callback<
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IDeleteSessionRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IDeleteSessionRequest,
+ options: CallOptions,
+ callback: Callback<
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IDeleteSessionRequest|null|undefined,
+ {}|null|undefined>): void;
deleteSession(
- request: protos.google.spanner.v1.IDeleteSessionRequest,
- callback: Callback<
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IDeleteSessionRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IDeleteSessionRequest,
+ callback: Callback<
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IDeleteSessionRequest|null|undefined,
+ {}|null|undefined>): void;
deleteSession(
- request?: protos.google.spanner.v1.IDeleteSessionRequest,
- optionsOrCallback?:
- | CallOptions
- | Callback<
+ request?: protos.google.spanner.v1.IDeleteSessionRequest,
+ optionsOrCallback?: CallOptions|Callback<
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IDeleteSessionRequest|null|undefined,
+ {}|null|undefined>,
+ callback?: Callback<
protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IDeleteSessionRequest | null | undefined,
- {} | null | undefined
- >,
- callback?: Callback<
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IDeleteSessionRequest | null | undefined,
- {} | null | undefined
- >,
- ): Promise<
- [
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IDeleteSessionRequest | undefined,
- {} | undefined,
- ]
- > | void {
+ protos.google.spanner.v1.IDeleteSessionRequest|null|undefined,
+ {}|null|undefined>):
+ Promise<[
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IDeleteSessionRequest|undefined, {}|undefined
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- name: request.name ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'name': request.name ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('deleteSession request %j', request);
- const wrappedCallback:
- | Callback<
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IDeleteSessionRequest | null | undefined,
- {} | null | undefined
- >
- | undefined = callback
+ const wrappedCallback: Callback<
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IDeleteSessionRequest|null|undefined,
+ {}|null|undefined>|undefined = callback
? (error, response, options, rawResponse) => {
this._log.info('deleteSession response %j', response);
callback!(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
- return this.innerApiCalls
- .deleteSession(request, options, wrappedCallback)
- ?.then(
- ([response, options, rawResponse]: [
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IDeleteSessionRequest | undefined,
- {} | undefined,
- ]) => {
- this._log.info('deleteSession response %j', response);
- return [response, options, rawResponse];
- },
- )
- .catch((error: any) => {
- if (
- error &&
- 'statusDetails' in error &&
- error.statusDetails instanceof Array
- ) {
- const protos = this._gaxModule.protobuf.Root.fromJSON(
- jsonProtos,
- ) as unknown as gax.protobuf.Type;
- error.statusDetails = decodeAnyProtosInArray(
- error.statusDetails,
- protos,
- );
+ return this.innerApiCalls.deleteSession(request, options, wrappedCallback)
+ ?.then(([response, options, rawResponse]: [
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IDeleteSessionRequest|undefined,
+ {}|undefined
+ ]) => {
+ this._log.info('deleteSession response %j', response);
+ return [response, options, rawResponse];
+ }).catch((error: any) => {
+ if (error && 'statusDetails' in error && error.statusDetails instanceof Array) {
+ const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type;
+ error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos);
}
throw error;
});
}
- /**
- * Executes an SQL statement, returning all results in a single reply. This
- * method can't be used to return a result set larger than 10 MiB;
- * if the query yields more data than that, the query fails with
- * a `FAILED_PRECONDITION` error.
- *
- * Operations inside read-write transactions might return `ABORTED`. If
- * this occurs, the application should restart the transaction from
- * the beginning. See {@link protos.google.spanner.v1.Transaction|Transaction} for more
- * details.
- *
- * Larger result sets can be fetched in streaming fashion by calling
- * {@link protos.google.spanner.v1.Spanner.ExecuteStreamingSql|ExecuteStreamingSql}
- * instead.
- *
- * The query string can be SQL or [Graph Query Language
- * (GQL)](https://cloud.google.com/spanner/docs/reference/standard-sql/graph-intro).
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.session
- * Required. The session in which the SQL query should be performed.
- * @param {google.spanner.v1.TransactionSelector} request.transaction
- * 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.
- * @param {string} request.sql
- * Required. The SQL string.
- * @param {google.protobuf.Struct} request.params
- * Parameter names and values that bind to placeholders in the SQL string.
- *
- * A parameter placeholder consists of the `@` character followed by the
- * parameter name (for example, `@firstName`). Parameter names must conform
- * to the naming requirements of identifiers as specified at
- * https://cloud.google.com/spanner/docs/lexical#identifiers.
- *
- * Parameters can appear anywhere that a literal value is expected. The same
- * parameter name can be used more than once, for example:
- *
- * `"WHERE id > @msg_id AND id < @msg_id + 100"`
- *
- * It's an error to execute a SQL statement with unbound parameters.
- * @param {number[]} request.paramTypes
- * It isn't always possible for Cloud Spanner to infer the right SQL type
- * from a JSON value. For example, values of type `BYTES` and values
- * of type `STRING` both appear in
- * {@link protos.google.spanner.v1.ExecuteSqlRequest.params|params} as JSON strings.
- *
- * In these cases, you can use `param_types` to specify the exact
- * SQL type for some or all of the SQL statement parameters. See the
- * definition of {@link protos.google.spanner.v1.Type|Type} for more information
- * about SQL types.
- * @param {Buffer} request.resumeToken
- * If this request is resuming a previously interrupted SQL statement
- * execution, `resume_token` should be copied from the last
- * {@link protos.google.spanner.v1.PartialResultSet|PartialResultSet} yielded before the
- * interruption. Doing this enables the new SQL statement execution to resume
- * where the last one left off. The rest of the request parameters must
- * exactly match the request that yielded this token.
- * @param {google.spanner.v1.ExecuteSqlRequest.QueryMode} request.queryMode
- * Used to control the amount of debugging information returned in
- * {@link protos.google.spanner.v1.ResultSetStats|ResultSetStats}. If
- * {@link protos.google.spanner.v1.ExecuteSqlRequest.partition_token|partition_token} is
- * set, {@link protos.google.spanner.v1.ExecuteSqlRequest.query_mode|query_mode} can only
- * be set to
- * {@link protos.google.spanner.v1.ExecuteSqlRequest.QueryMode.NORMAL|QueryMode.NORMAL}.
- * @param {Buffer} request.partitionToken
- * If present, results are restricted to the specified partition
- * previously created using `PartitionQuery`. There must be an exact
- * match for the values of fields common to this message and the
- * `PartitionQueryRequest` message used to create this `partition_token`.
- * @param {number} request.seqno
- * A per-transaction sequence number used to identify this request. This field
- * makes each request idempotent such that if the request is received multiple
- * times, at most one succeeds.
- *
- * The sequence number must be monotonically increasing within the
- * transaction. If a request arrives for the first time with an out-of-order
- * sequence number, the transaction can be aborted. Replays of previously
- * handled requests yield the same response as the first execution.
- *
- * Required for DML statements. Ignored for queries.
- * @param {google.spanner.v1.ExecuteSqlRequest.QueryOptions} request.queryOptions
- * Query optimizer configuration to use for the given query.
- * @param {google.spanner.v1.RequestOptions} request.requestOptions
- * Common options for this request.
- * @param {google.spanner.v1.DirectedReadOptions} request.directedReadOptions
- * Directed read options for this request.
- * @param {boolean} request.dataBoostEnabled
- * If this is for a partitioned query and this field is set to `true`, the
- * request is executed with Spanner Data Boost independent compute resources.
- *
- * If the field is set to `true` but the request doesn't set
- * `partition_token`, the API returns an `INVALID_ARGUMENT` error.
- * @param {boolean} [request.lastStatement]
- * Optional. If set to `true`, this statement marks the end of the
- * transaction. After this statement executes, you must commit or abort the
- * transaction. Attempts to execute any other requests against this
- * transaction (including reads and queries) are rejected.
- *
- * For DML statements, setting this option might cause some error reporting to
- * be deferred until commit time (for example, validation of unique
- * constraints). Given this, successful execution of a DML statement shouldn't
- * be assumed until a subsequent `Commit` call completes successfully.
- * @param {google.spanner.v1.RoutingHint} [request.routingHint]
- * Optional. If present, it makes the Spanner requests location-aware.
- *
- * It gives the server hints that can be used to route the request
- * to an appropriate server, potentially significantly decreasing latency and
- * improving throughput. To achieve improved performance, most fields must be
- * filled in with accurate values.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is an object representing {@link protos.google.spanner.v1.ResultSet|ResultSet}.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
- * for more details and examples.
- */
+/**
+ * Executes an SQL statement, returning all results in a single reply. This
+ * method can't be used to return a result set larger than 10 MiB;
+ * if the query yields more data than that, the query fails with
+ * a `FAILED_PRECONDITION` error.
+ *
+ * Operations inside read-write transactions might return `ABORTED`. If
+ * this occurs, the application should restart the transaction from
+ * the beginning. See {@link protos.google.spanner.v1.Transaction|Transaction} for more
+ * details.
+ *
+ * Larger result sets can be fetched in streaming fashion by calling
+ * {@link protos.google.spanner.v1.Spanner.ExecuteStreamingSql|ExecuteStreamingSql}
+ * instead.
+ *
+ * The query string can be SQL or [Graph Query Language
+ * (GQL)](https://cloud.google.com/spanner/docs/reference/standard-sql/graph-intro).
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.session
+ * Required. The session in which the SQL query should be performed.
+ * @param {google.spanner.v1.TransactionSelector} request.transaction
+ * 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.
+ * @param {string} request.sql
+ * Required. The SQL string.
+ * @param {google.protobuf.Struct} request.params
+ * Parameter names and values that bind to placeholders in the SQL string.
+ *
+ * A parameter placeholder consists of the `@` character followed by the
+ * parameter name (for example, `@firstName`). Parameter names must conform
+ * to the naming requirements of identifiers as specified at
+ * https://cloud.google.com/spanner/docs/lexical#identifiers.
+ *
+ * Parameters can appear anywhere that a literal value is expected. The same
+ * parameter name can be used more than once, for example:
+ *
+ * `"WHERE id > @msg_id AND id < @msg_id + 100"`
+ *
+ * It's an error to execute a SQL statement with unbound parameters.
+ * @param {number[]} request.paramTypes
+ * It isn't always possible for Cloud Spanner to infer the right SQL type
+ * from a JSON value. For example, values of type `BYTES` and values
+ * of type `STRING` both appear in
+ * {@link protos.google.spanner.v1.ExecuteSqlRequest.params|params} as JSON strings.
+ *
+ * In these cases, you can use `param_types` to specify the exact
+ * SQL type for some or all of the SQL statement parameters. See the
+ * definition of {@link protos.google.spanner.v1.Type|Type} for more information
+ * about SQL types.
+ * @param {Buffer} request.resumeToken
+ * If this request is resuming a previously interrupted SQL statement
+ * execution, `resume_token` should be copied from the last
+ * {@link protos.google.spanner.v1.PartialResultSet|PartialResultSet} yielded before the
+ * interruption. Doing this enables the new SQL statement execution to resume
+ * where the last one left off. The rest of the request parameters must
+ * exactly match the request that yielded this token.
+ * @param {google.spanner.v1.ExecuteSqlRequest.QueryMode} request.queryMode
+ * Used to control the amount of debugging information returned in
+ * {@link protos.google.spanner.v1.ResultSetStats|ResultSetStats}. If
+ * {@link protos.google.spanner.v1.ExecuteSqlRequest.partition_token|partition_token} is
+ * set, {@link protos.google.spanner.v1.ExecuteSqlRequest.query_mode|query_mode} can only
+ * be set to
+ * {@link protos.google.spanner.v1.ExecuteSqlRequest.QueryMode.NORMAL|QueryMode.NORMAL}.
+ * @param {Buffer} request.partitionToken
+ * If present, results are restricted to the specified partition
+ * previously created using `PartitionQuery`. There must be an exact
+ * match for the values of fields common to this message and the
+ * `PartitionQueryRequest` message used to create this `partition_token`.
+ * @param {number} request.seqno
+ * A per-transaction sequence number used to identify this request. This field
+ * makes each request idempotent such that if the request is received multiple
+ * times, at most one succeeds.
+ *
+ * The sequence number must be monotonically increasing within the
+ * transaction. If a request arrives for the first time with an out-of-order
+ * sequence number, the transaction can be aborted. Replays of previously
+ * handled requests yield the same response as the first execution.
+ *
+ * Required for DML statements. Ignored for queries.
+ * @param {google.spanner.v1.ExecuteSqlRequest.QueryOptions} request.queryOptions
+ * Query optimizer configuration to use for the given query.
+ * @param {google.spanner.v1.RequestOptions} request.requestOptions
+ * Common options for this request.
+ * @param {google.spanner.v1.DirectedReadOptions} request.directedReadOptions
+ * Directed read options for this request.
+ * @param {boolean} request.dataBoostEnabled
+ * If this is for a partitioned query and this field is set to `true`, the
+ * request is executed with Spanner Data Boost independent compute resources.
+ *
+ * If the field is set to `true` but the request doesn't set
+ * `partition_token`, the API returns an `INVALID_ARGUMENT` error.
+ * @param {boolean} [request.lastStatement]
+ * Optional. If set to `true`, this statement marks the end of the
+ * transaction. After this statement executes, you must commit or abort the
+ * transaction. Attempts to execute any other requests against this
+ * transaction (including reads and queries) are rejected.
+ *
+ * For DML statements, setting this option might cause some error reporting to
+ * be deferred until commit time (for example, validation of unique
+ * constraints). Given this, successful execution of a DML statement shouldn't
+ * be assumed until a subsequent `Commit` call completes successfully.
+ * @param {google.spanner.v1.RoutingHint} [request.routingHint]
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is an object representing {@link protos.google.spanner.v1.ResultSet|ResultSet}.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
+ * for more details and examples.
+ */
executeSql(
- request?: protos.google.spanner.v1.IExecuteSqlRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IExecuteSqlRequest | undefined,
- {} | undefined,
- ]
- >;
+ request?: protos.google.spanner.v1.IExecuteSqlRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IExecuteSqlRequest|undefined, {}|undefined
+ ]>;
executeSql(
- request: protos.google.spanner.v1.IExecuteSqlRequest,
- options: CallOptions,
- callback: Callback<
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IExecuteSqlRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IExecuteSqlRequest,
+ options: CallOptions,
+ callback: Callback<
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IExecuteSqlRequest|null|undefined,
+ {}|null|undefined>): void;
executeSql(
- request: protos.google.spanner.v1.IExecuteSqlRequest,
- callback: Callback<
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IExecuteSqlRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IExecuteSqlRequest,
+ callback: Callback<
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IExecuteSqlRequest|null|undefined,
+ {}|null|undefined>): void;
executeSql(
- request?: protos.google.spanner.v1.IExecuteSqlRequest,
- optionsOrCallback?:
- | CallOptions
- | Callback<
+ request?: protos.google.spanner.v1.IExecuteSqlRequest,
+ optionsOrCallback?: CallOptions|Callback<
protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IExecuteSqlRequest | null | undefined,
- {} | null | undefined
- >,
- callback?: Callback<
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IExecuteSqlRequest | null | undefined,
- {} | null | undefined
- >,
- ): Promise<
- [
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IExecuteSqlRequest | undefined,
- {} | undefined,
- ]
- > | void {
+ protos.google.spanner.v1.IExecuteSqlRequest|null|undefined,
+ {}|null|undefined>,
+ callback?: Callback<
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IExecuteSqlRequest|null|undefined,
+ {}|null|undefined>):
+ Promise<[
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IExecuteSqlRequest|undefined, {}|undefined
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- session: request.session ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'session': request.session ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('executeSql request %j', request);
- const wrappedCallback:
- | Callback<
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IExecuteSqlRequest | null | undefined,
- {} | null | undefined
- >
- | undefined = callback
+ const wrappedCallback: Callback<
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IExecuteSqlRequest|null|undefined,
+ {}|null|undefined>|undefined = callback
? (error, response, options, rawResponse) => {
this._log.info('executeSql response %j', response);
callback!(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
- return this.innerApiCalls
- .executeSql(request, options, wrappedCallback)
- ?.then(
- ([response, options, rawResponse]: [
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IExecuteSqlRequest | undefined,
- {} | undefined,
- ]) => {
- this._log.info('executeSql response %j', response);
- return [response, options, rawResponse];
- },
- )
- .catch((error: any) => {
- if (
- error &&
- 'statusDetails' in error &&
- error.statusDetails instanceof Array
- ) {
- const protos = this._gaxModule.protobuf.Root.fromJSON(
- jsonProtos,
- ) as unknown as gax.protobuf.Type;
- error.statusDetails = decodeAnyProtosInArray(
- error.statusDetails,
- protos,
- );
+ return this.innerApiCalls.executeSql(request, options, wrappedCallback)
+ ?.then(([response, options, rawResponse]: [
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IExecuteSqlRequest|undefined,
+ {}|undefined
+ ]) => {
+ this._log.info('executeSql response %j', response);
+ return [response, options, rawResponse];
+ }).catch((error: any) => {
+ if (error && 'statusDetails' in error && error.statusDetails instanceof Array) {
+ const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type;
+ error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos);
}
throw error;
});
}
- /**
- * Executes a batch of SQL DML statements. This method allows many statements
- * to be run with lower latency than submitting them sequentially with
- * {@link protos.google.spanner.v1.Spanner.ExecuteSql|ExecuteSql}.
- *
- * Statements are executed in sequential order. A request can succeed even if
- * a statement fails. The
- * {@link protos.google.spanner.v1.ExecuteBatchDmlResponse.status|ExecuteBatchDmlResponse.status}
- * field in the response provides information about the statement that failed.
- * Clients must inspect this field to determine whether an error occurred.
- *
- * Execution stops after the first failed statement; the remaining statements
- * are not executed.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.session
- * Required. The session in which the DML statements should be performed.
- * @param {google.spanner.v1.TransactionSelector} request.transaction
- * 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.
- * @param {number[]} request.statements
- * Required. The list of statements to execute in this batch. Statements are
- * executed 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.
- * @param {number} request.seqno
- * Required. A per-transaction sequence number used to identify this request.
- * This field makes each request idempotent such that if the request is
- * received multiple times, at most one succeeds.
- *
- * The sequence number must be monotonically increasing within the
- * transaction. If a request arrives for the first time with an out-of-order
- * sequence number, the transaction might be aborted. Replays of previously
- * handled requests yield the same response as the first execution.
- * @param {google.spanner.v1.RequestOptions} request.requestOptions
- * Common options for this request.
- * @param {boolean} [request.lastStatements]
- * Optional. If set to `true`, this request marks the end of the transaction.
- * After these statements execute, you must commit or abort the transaction.
- * Attempts to execute any other requests against this transaction
- * (including reads and queries) are rejected.
- *
- * Setting this option might cause some error reporting to be deferred until
- * commit time (for example, validation of unique constraints). Given this,
- * successful execution of statements shouldn't be assumed until a subsequent
- * `Commit` call completes successfully.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is an object representing {@link protos.google.spanner.v1.ExecuteBatchDmlResponse|ExecuteBatchDmlResponse}.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
- * for more details and examples.
- */
+/**
+ * Executes a batch of SQL DML statements. This method allows many statements
+ * to be run with lower latency than submitting them sequentially with
+ * {@link protos.google.spanner.v1.Spanner.ExecuteSql|ExecuteSql}.
+ *
+ * Statements are executed in sequential order. A request can succeed even if
+ * a statement fails. The
+ * {@link protos.google.spanner.v1.ExecuteBatchDmlResponse.status|ExecuteBatchDmlResponse.status}
+ * field in the response provides information about the statement that failed.
+ * Clients must inspect this field to determine whether an error occurred.
+ *
+ * Execution stops after the first failed statement; the remaining statements
+ * are not executed.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.session
+ * Required. The session in which the DML statements should be performed.
+ * @param {google.spanner.v1.TransactionSelector} request.transaction
+ * 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.
+ * @param {number[]} request.statements
+ * Required. The list of statements to execute in this batch. Statements are
+ * executed 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.
+ * @param {number} request.seqno
+ * Required. A per-transaction sequence number used to identify this request.
+ * This field makes each request idempotent such that if the request is
+ * received multiple times, at most one succeeds.
+ *
+ * The sequence number must be monotonically increasing within the
+ * transaction. If a request arrives for the first time with an out-of-order
+ * sequence number, the transaction might be aborted. Replays of previously
+ * handled requests yield the same response as the first execution.
+ * @param {google.spanner.v1.RequestOptions} request.requestOptions
+ * Common options for this request.
+ * @param {boolean} [request.lastStatements]
+ * Optional. If set to `true`, this request marks the end of the transaction.
+ * After these statements execute, you must commit or abort the transaction.
+ * Attempts to execute any other requests against this transaction
+ * (including reads and queries) are rejected.
+ *
+ * Setting this option might cause some error reporting to be deferred until
+ * commit time (for example, validation of unique constraints). Given this,
+ * successful execution of statements shouldn't be assumed until a subsequent
+ * `Commit` call completes successfully.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is an object representing {@link protos.google.spanner.v1.ExecuteBatchDmlResponse|ExecuteBatchDmlResponse}.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
+ * for more details and examples.
+ */
executeBatchDml(
- request?: protos.google.spanner.v1.IExecuteBatchDmlRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.spanner.v1.IExecuteBatchDmlResponse,
- protos.google.spanner.v1.IExecuteBatchDmlRequest | undefined,
- {} | undefined,
- ]
- >;
+ request?: protos.google.spanner.v1.IExecuteBatchDmlRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.spanner.v1.IExecuteBatchDmlResponse,
+ protos.google.spanner.v1.IExecuteBatchDmlRequest|undefined, {}|undefined
+ ]>;
executeBatchDml(
- request: protos.google.spanner.v1.IExecuteBatchDmlRequest,
- options: CallOptions,
- callback: Callback<
- protos.google.spanner.v1.IExecuteBatchDmlResponse,
- protos.google.spanner.v1.IExecuteBatchDmlRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IExecuteBatchDmlRequest,
+ options: CallOptions,
+ callback: Callback<
+ protos.google.spanner.v1.IExecuteBatchDmlResponse,
+ protos.google.spanner.v1.IExecuteBatchDmlRequest|null|undefined,
+ {}|null|undefined>): void;
executeBatchDml(
- request: protos.google.spanner.v1.IExecuteBatchDmlRequest,
- callback: Callback<
- protos.google.spanner.v1.IExecuteBatchDmlResponse,
- protos.google.spanner.v1.IExecuteBatchDmlRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IExecuteBatchDmlRequest,
+ callback: Callback<
+ protos.google.spanner.v1.IExecuteBatchDmlResponse,
+ protos.google.spanner.v1.IExecuteBatchDmlRequest|null|undefined,
+ {}|null|undefined>): void;
executeBatchDml(
- request?: protos.google.spanner.v1.IExecuteBatchDmlRequest,
- optionsOrCallback?:
- | CallOptions
- | Callback<
+ request?: protos.google.spanner.v1.IExecuteBatchDmlRequest,
+ optionsOrCallback?: CallOptions|Callback<
protos.google.spanner.v1.IExecuteBatchDmlResponse,
- protos.google.spanner.v1.IExecuteBatchDmlRequest | null | undefined,
- {} | null | undefined
- >,
- callback?: Callback<
- protos.google.spanner.v1.IExecuteBatchDmlResponse,
- protos.google.spanner.v1.IExecuteBatchDmlRequest | null | undefined,
- {} | null | undefined
- >,
- ): Promise<
- [
- protos.google.spanner.v1.IExecuteBatchDmlResponse,
- protos.google.spanner.v1.IExecuteBatchDmlRequest | undefined,
- {} | undefined,
- ]
- > | void {
+ protos.google.spanner.v1.IExecuteBatchDmlRequest|null|undefined,
+ {}|null|undefined>,
+ callback?: Callback<
+ protos.google.spanner.v1.IExecuteBatchDmlResponse,
+ protos.google.spanner.v1.IExecuteBatchDmlRequest|null|undefined,
+ {}|null|undefined>):
+ Promise<[
+ protos.google.spanner.v1.IExecuteBatchDmlResponse,
+ protos.google.spanner.v1.IExecuteBatchDmlRequest|undefined, {}|undefined
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- session: request.session ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'session': request.session ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('executeBatchDml request %j', request);
- const wrappedCallback:
- | Callback<
- protos.google.spanner.v1.IExecuteBatchDmlResponse,
- protos.google.spanner.v1.IExecuteBatchDmlRequest | null | undefined,
- {} | null | undefined
- >
- | undefined = callback
+ const wrappedCallback: Callback<
+ protos.google.spanner.v1.IExecuteBatchDmlResponse,
+ protos.google.spanner.v1.IExecuteBatchDmlRequest|null|undefined,
+ {}|null|undefined>|undefined = callback
? (error, response, options, rawResponse) => {
this._log.info('executeBatchDml response %j', response);
callback!(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
- return this.innerApiCalls
- .executeBatchDml(request, options, wrappedCallback)
- ?.then(
- ([response, options, rawResponse]: [
- protos.google.spanner.v1.IExecuteBatchDmlResponse,
- protos.google.spanner.v1.IExecuteBatchDmlRequest | undefined,
- {} | undefined,
- ]) => {
- this._log.info('executeBatchDml response %j', response);
- return [response, options, rawResponse];
- },
- )
- .catch((error: any) => {
- if (
- error &&
- 'statusDetails' in error &&
- error.statusDetails instanceof Array
- ) {
- const protos = this._gaxModule.protobuf.Root.fromJSON(
- jsonProtos,
- ) as unknown as gax.protobuf.Type;
- error.statusDetails = decodeAnyProtosInArray(
- error.statusDetails,
- protos,
- );
+ return this.innerApiCalls.executeBatchDml(request, options, wrappedCallback)
+ ?.then(([response, options, rawResponse]: [
+ protos.google.spanner.v1.IExecuteBatchDmlResponse,
+ protos.google.spanner.v1.IExecuteBatchDmlRequest|undefined,
+ {}|undefined
+ ]) => {
+ this._log.info('executeBatchDml response %j', response);
+ return [response, options, rawResponse];
+ }).catch((error: any) => {
+ if (error && 'statusDetails' in error && error.statusDetails instanceof Array) {
+ const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type;
+ error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos);
}
throw error;
});
}
- /**
- * Reads rows from the database using key lookups and scans, as a
- * simple key/value style alternative to
- * {@link protos.google.spanner.v1.Spanner.ExecuteSql|ExecuteSql}. This method can't be
- * used to return a result set larger than 10 MiB; if the read matches more
- * data than that, the read fails with a `FAILED_PRECONDITION`
- * error.
- *
- * Reads inside read-write transactions might return `ABORTED`. If
- * this occurs, the application should restart the transaction from
- * the beginning. See {@link protos.google.spanner.v1.Transaction|Transaction} for more
- * details.
- *
- * Larger result sets can be yielded in streaming fashion by calling
- * {@link protos.google.spanner.v1.Spanner.StreamingRead|StreamingRead} instead.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.session
- * Required. The session in which the read should be performed.
- * @param {google.spanner.v1.TransactionSelector} request.transaction
- * The transaction to use. If none is provided, the default is a
- * temporary read-only transaction with strong concurrency.
- * @param {string} request.table
- * Required. The name of the table in the database to be read.
- * @param {string} request.index
- * If non-empty, the name of an index on
- * {@link protos.google.spanner.v1.ReadRequest.table|table}. This index is used instead of
- * the table primary key when interpreting
- * {@link protos.google.spanner.v1.ReadRequest.key_set|key_set} and sorting result rows.
- * See {@link protos.google.spanner.v1.ReadRequest.key_set|key_set} for further
- * information.
- * @param {string[]} request.columns
- * Required. The columns of {@link protos.google.spanner.v1.ReadRequest.table|table} to be
- * returned for each row matching this request.
- * @param {google.spanner.v1.KeySet} request.keySet
- * Required. `key_set` identifies the rows to be yielded. `key_set` names the
- * primary keys of the rows in {@link protos.google.spanner.v1.ReadRequest.table|table} to
- * be yielded, unless {@link protos.google.spanner.v1.ReadRequest.index|index} is present.
- * If {@link protos.google.spanner.v1.ReadRequest.index|index} is present, then
- * {@link protos.google.spanner.v1.ReadRequest.key_set|key_set} instead names index keys
- * in {@link protos.google.spanner.v1.ReadRequest.index|index}.
- *
- * If the {@link protos.google.spanner.v1.ReadRequest.partition_token|partition_token}
- * field is empty, rows are yielded in table primary key order (if
- * {@link protos.google.spanner.v1.ReadRequest.index|index} is empty) or index key order
- * (if {@link protos.google.spanner.v1.ReadRequest.index|index} is non-empty). If the
- * {@link protos.google.spanner.v1.ReadRequest.partition_token|partition_token} field
- * isn't empty, rows are yielded in an unspecified order.
- *
- * It isn't an error for the `key_set` to name rows that don't
- * exist in the database. Read yields nothing for nonexistent rows.
- * @param {number} request.limit
- * If greater than zero, only the first `limit` rows are yielded. If `limit`
- * is zero, the default is no limit. A limit can't be specified if
- * `partition_token` is set.
- * @param {Buffer} request.resumeToken
- * If this request is resuming a previously interrupted read,
- * `resume_token` should be copied from the last
- * {@link protos.google.spanner.v1.PartialResultSet|PartialResultSet} yielded before the
- * interruption. Doing this enables the new read to resume where the last read
- * left off. The rest of the request parameters must exactly match the request
- * that yielded this token.
- * @param {Buffer} request.partitionToken
- * If present, results are restricted to the specified partition
- * previously created using `PartitionRead`. There must be an exact
- * match for the values of fields common to this message and the
- * PartitionReadRequest message used to create this partition_token.
- * @param {google.spanner.v1.RequestOptions} request.requestOptions
- * Common options for this request.
- * @param {google.spanner.v1.DirectedReadOptions} request.directedReadOptions
- * Directed read options for this request.
- * @param {boolean} request.dataBoostEnabled
- * If this is for a partitioned read and this field is set to `true`, the
- * request is executed with Spanner Data Boost independent compute resources.
- *
- * If the field is set to `true` but the request doesn't set
- * `partition_token`, the API returns an `INVALID_ARGUMENT` error.
- * @param {google.spanner.v1.ReadRequest.OrderBy} [request.orderBy]
- * Optional. Order for the returned rows.
- *
- * By default, Spanner returns result rows in primary key order except for
- * PartitionRead requests. For applications that don't require rows to be
- * returned in primary key (`ORDER_BY_PRIMARY_KEY`) order, setting
- * `ORDER_BY_NO_ORDER` option allows Spanner to optimize row retrieval,
- * resulting in lower latencies in certain cases (for example, bulk point
- * lookups).
- * @param {google.spanner.v1.ReadRequest.LockHint} [request.lockHint]
- * Optional. Lock Hint for the request, it can only be used with read-write
- * transactions.
- * @param {google.spanner.v1.RoutingHint} [request.routingHint]
- * Optional. If present, it makes the Spanner requests location-aware.
- *
- * It gives the server hints that can be used to route the request
- * to an appropriate server, potentially significantly decreasing latency and
- * improving throughput. To achieve improved performance, most fields must be
- * filled in with accurate values.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is an object representing {@link protos.google.spanner.v1.ResultSet|ResultSet}.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
- * for more details and examples.
- */
+/**
+ * Reads rows from the database using key lookups and scans, as a
+ * simple key/value style alternative to
+ * {@link protos.google.spanner.v1.Spanner.ExecuteSql|ExecuteSql}. This method can't be
+ * used to return a result set larger than 10 MiB; if the read matches more
+ * data than that, the read fails with a `FAILED_PRECONDITION`
+ * error.
+ *
+ * Reads inside read-write transactions might return `ABORTED`. If
+ * this occurs, the application should restart the transaction from
+ * the beginning. See {@link protos.google.spanner.v1.Transaction|Transaction} for more
+ * details.
+ *
+ * Larger result sets can be yielded in streaming fashion by calling
+ * {@link protos.google.spanner.v1.Spanner.StreamingRead|StreamingRead} instead.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.session
+ * Required. The session in which the read should be performed.
+ * @param {google.spanner.v1.TransactionSelector} request.transaction
+ * The transaction to use. If none is provided, the default is a
+ * temporary read-only transaction with strong concurrency.
+ * @param {string} request.table
+ * Required. The name of the table in the database to be read.
+ * @param {string} request.index
+ * If non-empty, the name of an index on
+ * {@link protos.google.spanner.v1.ReadRequest.table|table}. This index is used instead of
+ * the table primary key when interpreting
+ * {@link protos.google.spanner.v1.ReadRequest.key_set|key_set} and sorting result rows.
+ * See {@link protos.google.spanner.v1.ReadRequest.key_set|key_set} for further
+ * information.
+ * @param {string[]} request.columns
+ * Required. The columns of {@link protos.google.spanner.v1.ReadRequest.table|table} to be
+ * returned for each row matching this request.
+ * @param {google.spanner.v1.KeySet} request.keySet
+ * Required. `key_set` identifies the rows to be yielded. `key_set` names the
+ * primary keys of the rows in {@link protos.google.spanner.v1.ReadRequest.table|table} to
+ * be yielded, unless {@link protos.google.spanner.v1.ReadRequest.index|index} is present.
+ * If {@link protos.google.spanner.v1.ReadRequest.index|index} is present, then
+ * {@link protos.google.spanner.v1.ReadRequest.key_set|key_set} instead names index keys
+ * in {@link protos.google.spanner.v1.ReadRequest.index|index}.
+ *
+ * If the {@link protos.google.spanner.v1.ReadRequest.partition_token|partition_token}
+ * field is empty, rows are yielded in table primary key order (if
+ * {@link protos.google.spanner.v1.ReadRequest.index|index} is empty) or index key order
+ * (if {@link protos.google.spanner.v1.ReadRequest.index|index} is non-empty). If the
+ * {@link protos.google.spanner.v1.ReadRequest.partition_token|partition_token} field
+ * isn't empty, rows are yielded in an unspecified order.
+ *
+ * It isn't an error for the `key_set` to name rows that don't
+ * exist in the database. Read yields nothing for nonexistent rows.
+ * @param {number} request.limit
+ * If greater than zero, only the first `limit` rows are yielded. If `limit`
+ * is zero, the default is no limit. A limit can't be specified if
+ * `partition_token` is set.
+ * @param {Buffer} request.resumeToken
+ * If this request is resuming a previously interrupted read,
+ * `resume_token` should be copied from the last
+ * {@link protos.google.spanner.v1.PartialResultSet|PartialResultSet} yielded before the
+ * interruption. Doing this enables the new read to resume where the last read
+ * left off. The rest of the request parameters must exactly match the request
+ * that yielded this token.
+ * @param {Buffer} request.partitionToken
+ * If present, results are restricted to the specified partition
+ * previously created using `PartitionRead`. There must be an exact
+ * match for the values of fields common to this message and the
+ * PartitionReadRequest message used to create this partition_token.
+ * @param {google.spanner.v1.RequestOptions} request.requestOptions
+ * Common options for this request.
+ * @param {google.spanner.v1.DirectedReadOptions} request.directedReadOptions
+ * Directed read options for this request.
+ * @param {boolean} request.dataBoostEnabled
+ * If this is for a partitioned read and this field is set to `true`, the
+ * request is executed with Spanner Data Boost independent compute resources.
+ *
+ * If the field is set to `true` but the request doesn't set
+ * `partition_token`, the API returns an `INVALID_ARGUMENT` error.
+ * @param {google.spanner.v1.ReadRequest.OrderBy} [request.orderBy]
+ * Optional. Order for the returned rows.
+ *
+ * By default, Spanner returns result rows in primary key order except for
+ * PartitionRead requests. For applications that don't require rows to be
+ * returned in primary key (`ORDER_BY_PRIMARY_KEY`) order, setting
+ * `ORDER_BY_NO_ORDER` option allows Spanner to optimize row retrieval,
+ * resulting in lower latencies in certain cases (for example, bulk point
+ * lookups).
+ * @param {google.spanner.v1.ReadRequest.LockHint} [request.lockHint]
+ * Optional. Lock Hint for the request, it can only be used with read-write
+ * transactions.
+ * @param {google.spanner.v1.RoutingHint} [request.routingHint]
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is an object representing {@link protos.google.spanner.v1.ResultSet|ResultSet}.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
+ * for more details and examples.
+ */
read(
- request?: protos.google.spanner.v1.IReadRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IReadRequest | undefined,
- {} | undefined,
- ]
- >;
+ request?: protos.google.spanner.v1.IReadRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IReadRequest|undefined, {}|undefined
+ ]>;
read(
- request: protos.google.spanner.v1.IReadRequest,
- options: CallOptions,
- callback: Callback<
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IReadRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IReadRequest,
+ options: CallOptions,
+ callback: Callback<
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IReadRequest|null|undefined,
+ {}|null|undefined>): void;
read(
- request: protos.google.spanner.v1.IReadRequest,
- callback: Callback<
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IReadRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IReadRequest,
+ callback: Callback<
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IReadRequest|null|undefined,
+ {}|null|undefined>): void;
read(
- request?: protos.google.spanner.v1.IReadRequest,
- optionsOrCallback?:
- | CallOptions
- | Callback<
+ request?: protos.google.spanner.v1.IReadRequest,
+ optionsOrCallback?: CallOptions|Callback<
protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IReadRequest | null | undefined,
- {} | null | undefined
- >,
- callback?: Callback<
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IReadRequest | null | undefined,
- {} | null | undefined
- >,
- ): Promise<
- [
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IReadRequest | undefined,
- {} | undefined,
- ]
- > | void {
+ protos.google.spanner.v1.IReadRequest|null|undefined,
+ {}|null|undefined>,
+ callback?: Callback<
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IReadRequest|null|undefined,
+ {}|null|undefined>):
+ Promise<[
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IReadRequest|undefined, {}|undefined
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- session: request.session ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'session': request.session ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('read request %j', request);
- const wrappedCallback:
- | Callback<
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IReadRequest | null | undefined,
- {} | null | undefined
- >
- | undefined = callback
+ const wrappedCallback: Callback<
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IReadRequest|null|undefined,
+ {}|null|undefined>|undefined = callback
? (error, response, options, rawResponse) => {
this._log.info('read response %j', response);
callback!(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
- return this.innerApiCalls
- .read(request, options, wrappedCallback)
- ?.then(
- ([response, options, rawResponse]: [
- protos.google.spanner.v1.IResultSet,
- protos.google.spanner.v1.IReadRequest | undefined,
- {} | undefined,
- ]) => {
- this._log.info('read response %j', response);
- return [response, options, rawResponse];
- },
- )
- .catch((error: any) => {
- if (
- error &&
- 'statusDetails' in error &&
- error.statusDetails instanceof Array
- ) {
- const protos = this._gaxModule.protobuf.Root.fromJSON(
- jsonProtos,
- ) as unknown as gax.protobuf.Type;
- error.statusDetails = decodeAnyProtosInArray(
- error.statusDetails,
- protos,
- );
+ return this.innerApiCalls.read(request, options, wrappedCallback)
+ ?.then(([response, options, rawResponse]: [
+ protos.google.spanner.v1.IResultSet,
+ protos.google.spanner.v1.IReadRequest|undefined,
+ {}|undefined
+ ]) => {
+ this._log.info('read response %j', response);
+ return [response, options, rawResponse];
+ }).catch((error: any) => {
+ if (error && 'statusDetails' in error && error.statusDetails instanceof Array) {
+ const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type;
+ error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos);
}
throw error;
});
}
- /**
- * Begins a new transaction. This step can often be skipped:
- * {@link protos.google.spanner.v1.Spanner.Read|Read},
- * {@link protos.google.spanner.v1.Spanner.ExecuteSql|ExecuteSql} and
- * {@link protos.google.spanner.v1.Spanner.Commit|Commit} can begin a new transaction as a
- * side-effect.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.session
- * Required. The session in which the transaction runs.
- * @param {google.spanner.v1.TransactionOptions} request.options
- * Required. Options for the new transaction.
- * @param {google.spanner.v1.RequestOptions} request.requestOptions
- * Common options for this request.
- * Priority is ignored for this request. Setting the priority in this
- * `request_options` struct doesn't do anything. To set the priority for a
- * transaction, set it on the reads and writes that are part of this
- * transaction instead.
- * @param {google.spanner.v1.Mutation} [request.mutationKey]
- * Optional. Required for read-write transactions on a multiplexed session
- * that commit mutations but don't perform any reads or queries. You must
- * randomly select one of the mutations from the mutation set and send it as a
- * part of this request.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is an object representing {@link protos.google.spanner.v1.Transaction|Transaction}.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
- * for more details and examples.
- */
+/**
+ * Begins a new transaction. This step can often be skipped:
+ * {@link protos.google.spanner.v1.Spanner.Read|Read},
+ * {@link protos.google.spanner.v1.Spanner.ExecuteSql|ExecuteSql} and
+ * {@link protos.google.spanner.v1.Spanner.Commit|Commit} can begin a new transaction as a
+ * side-effect.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.session
+ * Required. The session in which the transaction runs.
+ * @param {google.spanner.v1.TransactionOptions} request.options
+ * Required. Options for the new transaction.
+ * @param {google.spanner.v1.RequestOptions} request.requestOptions
+ * Common options for this request.
+ * Priority is ignored for this request. Setting the priority in this
+ * `request_options` struct doesn't do anything. To set the priority for a
+ * transaction, set it on the reads and writes that are part of this
+ * transaction instead.
+ * @param {google.spanner.v1.Mutation} [request.mutationKey]
+ * Optional. Required for read-write transactions on a multiplexed session
+ * that commit mutations but don't perform any reads or queries. You must
+ * randomly select one of the mutations from the mutation set and send it as a
+ * part of this request.
+ * @param {google.spanner.v1.RoutingHint} [request.routingHint]
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is an object representing {@link protos.google.spanner.v1.Transaction|Transaction}.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
+ * for more details and examples.
+ */
beginTransaction(
- request?: protos.google.spanner.v1.IBeginTransactionRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.spanner.v1.ITransaction,
- protos.google.spanner.v1.IBeginTransactionRequest | undefined,
- {} | undefined,
- ]
- >;
+ request?: protos.google.spanner.v1.IBeginTransactionRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.spanner.v1.ITransaction,
+ protos.google.spanner.v1.IBeginTransactionRequest|undefined, {}|undefined
+ ]>;
beginTransaction(
- request: protos.google.spanner.v1.IBeginTransactionRequest,
- options: CallOptions,
- callback: Callback<
- protos.google.spanner.v1.ITransaction,
- protos.google.spanner.v1.IBeginTransactionRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IBeginTransactionRequest,
+ options: CallOptions,
+ callback: Callback<
+ protos.google.spanner.v1.ITransaction,
+ protos.google.spanner.v1.IBeginTransactionRequest|null|undefined,
+ {}|null|undefined>): void;
beginTransaction(
- request: protos.google.spanner.v1.IBeginTransactionRequest,
- callback: Callback<
- protos.google.spanner.v1.ITransaction,
- protos.google.spanner.v1.IBeginTransactionRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IBeginTransactionRequest,
+ callback: Callback<
+ protos.google.spanner.v1.ITransaction,
+ protos.google.spanner.v1.IBeginTransactionRequest|null|undefined,
+ {}|null|undefined>): void;
beginTransaction(
- request?: protos.google.spanner.v1.IBeginTransactionRequest,
- optionsOrCallback?:
- | CallOptions
- | Callback<
+ request?: protos.google.spanner.v1.IBeginTransactionRequest,
+ optionsOrCallback?: CallOptions|Callback<
+ protos.google.spanner.v1.ITransaction,
+ protos.google.spanner.v1.IBeginTransactionRequest|null|undefined,
+ {}|null|undefined>,
+ callback?: Callback<
protos.google.spanner.v1.ITransaction,
- protos.google.spanner.v1.IBeginTransactionRequest | null | undefined,
- {} | null | undefined
- >,
- callback?: Callback<
- protos.google.spanner.v1.ITransaction,
- protos.google.spanner.v1.IBeginTransactionRequest | null | undefined,
- {} | null | undefined
- >,
- ): Promise<
- [
- protos.google.spanner.v1.ITransaction,
- protos.google.spanner.v1.IBeginTransactionRequest | undefined,
- {} | undefined,
- ]
- > | void {
+ protos.google.spanner.v1.IBeginTransactionRequest|null|undefined,
+ {}|null|undefined>):
+ Promise<[
+ protos.google.spanner.v1.ITransaction,
+ protos.google.spanner.v1.IBeginTransactionRequest|undefined, {}|undefined
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- session: request.session ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'session': request.session ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('beginTransaction request %j', request);
- const wrappedCallback:
- | Callback<
- protos.google.spanner.v1.ITransaction,
- protos.google.spanner.v1.IBeginTransactionRequest | null | undefined,
- {} | null | undefined
- >
- | undefined = callback
+ const wrappedCallback: Callback<
+ protos.google.spanner.v1.ITransaction,
+ protos.google.spanner.v1.IBeginTransactionRequest|null|undefined,
+ {}|null|undefined>|undefined = callback
? (error, response, options, rawResponse) => {
this._log.info('beginTransaction response %j', response);
callback!(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
- return this.innerApiCalls
- .beginTransaction(request, options, wrappedCallback)
- ?.then(
- ([response, options, rawResponse]: [
- protos.google.spanner.v1.ITransaction,
- protos.google.spanner.v1.IBeginTransactionRequest | undefined,
- {} | undefined,
- ]) => {
- this._log.info('beginTransaction response %j', response);
- return [response, options, rawResponse];
- },
- )
- .catch((error: any) => {
- if (
- error &&
- 'statusDetails' in error &&
- error.statusDetails instanceof Array
- ) {
- const protos = this._gaxModule.protobuf.Root.fromJSON(
- jsonProtos,
- ) as unknown as gax.protobuf.Type;
- error.statusDetails = decodeAnyProtosInArray(
- error.statusDetails,
- protos,
- );
+ return this.innerApiCalls.beginTransaction(request, options, wrappedCallback)
+ ?.then(([response, options, rawResponse]: [
+ protos.google.spanner.v1.ITransaction,
+ protos.google.spanner.v1.IBeginTransactionRequest|undefined,
+ {}|undefined
+ ]) => {
+ this._log.info('beginTransaction response %j', response);
+ return [response, options, rawResponse];
+ }).catch((error: any) => {
+ if (error && 'statusDetails' in error && error.statusDetails instanceof Array) {
+ const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type;
+ error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos);
}
throw error;
});
}
- /**
- * Commits a transaction. The request includes the mutations to be
- * applied to rows in the database.
- *
- * `Commit` might return an `ABORTED` error. This can occur at any time;
- * commonly, the cause is conflicts with concurrent
- * transactions. However, it can also happen for a variety of other
- * reasons. If `Commit` returns `ABORTED`, the caller should retry
- * the transaction from the beginning, reusing the same session.
- *
- * On very rare occasions, `Commit` might return `UNKNOWN`. This can happen,
- * for example, if the client job experiences a 1+ hour networking failure.
- * At that point, Cloud Spanner has lost track of the transaction outcome and
- * we recommend that you perform another read from the database to see the
- * state of things as they are now.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.session
- * Required. The session in which the transaction to be committed is running.
- * @param {Buffer} request.transactionId
- * Commit a previously-started transaction.
- * @param {google.spanner.v1.TransactionOptions} request.singleUseTransaction
- * Execute mutations in a temporary transaction. Note that unlike
- * commit of a previously-started transaction, commit with a
- * temporary transaction is non-idempotent. That is, if the
- * `CommitRequest` is sent to Cloud Spanner more than once (for
- * instance, due to retries in the application, or in the
- * transport library), it's possible that the mutations are
- * executed more than once. If this is undesirable, use
- * {@link protos.google.spanner.v1.Spanner.BeginTransaction|BeginTransaction} and
- * {@link protos.google.spanner.v1.Spanner.Commit|Commit} instead.
- * @param {number[]} request.mutations
- * The mutations to be executed when this transaction commits. All
- * mutations are applied atomically, in the order they appear in
- * this list.
- * @param {boolean} request.returnCommitStats
- * If `true`, then statistics related to the transaction is included in
- * the {@link protos.google.spanner.v1.CommitResponse.commit_stats|CommitResponse}.
- * Default value is `false`.
- * @param {google.protobuf.Duration} [request.maxCommitDelay]
- * Optional. The amount of latency this request is configured to incur in
- * order to improve throughput. If this field isn't set, Spanner assumes
- * requests are relatively latency sensitive and automatically determines an
- * appropriate delay time. You can specify a commit delay value between 0 and
- * 500 ms.
- * @param {google.spanner.v1.RequestOptions} request.requestOptions
- * Common options for this request.
- * @param {google.spanner.v1.MultiplexedSessionPrecommitToken} [request.precommitToken]
- * Optional. If the read-write transaction was executed on a multiplexed
- * session, then you must include the precommit token with the highest
- * sequence number received in this transaction attempt. Failing to do so
- * results in a `FailedPrecondition` error.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is an object representing {@link protos.google.spanner.v1.CommitResponse|CommitResponse}.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
- * for more details and examples.
- */
+/**
+ * Commits a transaction. The request includes the mutations to be
+ * applied to rows in the database.
+ *
+ * `Commit` might return an `ABORTED` error. This can occur at any time;
+ * commonly, the cause is conflicts with concurrent
+ * transactions. However, it can also happen for a variety of other
+ * reasons. If `Commit` returns `ABORTED`, the caller should retry
+ * the transaction from the beginning, reusing the same session.
+ *
+ * On very rare occasions, `Commit` might return `UNKNOWN`. This can happen,
+ * for example, if the client job experiences a 1+ hour networking failure.
+ * At that point, Cloud Spanner has lost track of the transaction outcome and
+ * we recommend that you perform another read from the database to see the
+ * state of things as they are now.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.session
+ * Required. The session in which the transaction to be committed is running.
+ * @param {Buffer} request.transactionId
+ * Commit a previously-started transaction.
+ * @param {google.spanner.v1.TransactionOptions} request.singleUseTransaction
+ * Execute mutations in a temporary transaction. Note that unlike
+ * commit of a previously-started transaction, commit with a
+ * temporary transaction is non-idempotent. That is, if the
+ * `CommitRequest` is sent to Cloud Spanner more than once (for
+ * instance, due to retries in the application, or in the
+ * transport library), it's possible that the mutations are
+ * executed more than once. If this is undesirable, use
+ * {@link protos.google.spanner.v1.Spanner.BeginTransaction|BeginTransaction} and
+ * {@link protos.google.spanner.v1.Spanner.Commit|Commit} instead.
+ * @param {number[]} request.mutations
+ * The mutations to be executed when this transaction commits. All
+ * mutations are applied atomically, in the order they appear in
+ * this list.
+ * @param {boolean} request.returnCommitStats
+ * If `true`, then statistics related to the transaction is included in
+ * the {@link protos.google.spanner.v1.CommitResponse.commit_stats|CommitResponse}.
+ * Default value is `false`.
+ * @param {google.protobuf.Duration} [request.maxCommitDelay]
+ * Optional. The amount of latency this request is configured to incur in
+ * order to improve throughput. If this field isn't set, Spanner assumes
+ * requests are relatively latency sensitive and automatically determines an
+ * appropriate delay time. You can specify a commit delay value between 0 and
+ * 500 ms.
+ * @param {google.spanner.v1.RequestOptions} request.requestOptions
+ * Common options for this request.
+ * @param {google.spanner.v1.MultiplexedSessionPrecommitToken} [request.precommitToken]
+ * Optional. If the read-write transaction was executed on a multiplexed
+ * session, then you must include the precommit token with the highest
+ * sequence number received in this transaction attempt. Failing to do so
+ * results in a `FailedPrecondition` error.
+ * @param {google.spanner.v1.RoutingHint} [request.routingHint]
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is an object representing {@link protos.google.spanner.v1.CommitResponse|CommitResponse}.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
+ * for more details and examples.
+ */
commit(
- request?: protos.google.spanner.v1.ICommitRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.spanner.v1.ICommitResponse,
- protos.google.spanner.v1.ICommitRequest | undefined,
- {} | undefined,
- ]
- >;
+ request?: protos.google.spanner.v1.ICommitRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.spanner.v1.ICommitResponse,
+ protos.google.spanner.v1.ICommitRequest|undefined, {}|undefined
+ ]>;
commit(
- request: protos.google.spanner.v1.ICommitRequest,
- options: CallOptions,
- callback: Callback<
- protos.google.spanner.v1.ICommitResponse,
- protos.google.spanner.v1.ICommitRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.ICommitRequest,
+ options: CallOptions,
+ callback: Callback<
+ protos.google.spanner.v1.ICommitResponse,
+ protos.google.spanner.v1.ICommitRequest|null|undefined,
+ {}|null|undefined>): void;
commit(
- request: protos.google.spanner.v1.ICommitRequest,
- callback: Callback<
- protos.google.spanner.v1.ICommitResponse,
- protos.google.spanner.v1.ICommitRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.ICommitRequest,
+ callback: Callback<
+ protos.google.spanner.v1.ICommitResponse,
+ protos.google.spanner.v1.ICommitRequest|null|undefined,
+ {}|null|undefined>): void;
commit(
- request?: protos.google.spanner.v1.ICommitRequest,
- optionsOrCallback?:
- | CallOptions
- | Callback<
+ request?: protos.google.spanner.v1.ICommitRequest,
+ optionsOrCallback?: CallOptions|Callback<
protos.google.spanner.v1.ICommitResponse,
- protos.google.spanner.v1.ICommitRequest | null | undefined,
- {} | null | undefined
- >,
- callback?: Callback<
- protos.google.spanner.v1.ICommitResponse,
- protos.google.spanner.v1.ICommitRequest | null | undefined,
- {} | null | undefined
- >,
- ): Promise<
- [
- protos.google.spanner.v1.ICommitResponse,
- protos.google.spanner.v1.ICommitRequest | undefined,
- {} | undefined,
- ]
- > | void {
+ protos.google.spanner.v1.ICommitRequest|null|undefined,
+ {}|null|undefined>,
+ callback?: Callback<
+ protos.google.spanner.v1.ICommitResponse,
+ protos.google.spanner.v1.ICommitRequest|null|undefined,
+ {}|null|undefined>):
+ Promise<[
+ protos.google.spanner.v1.ICommitResponse,
+ protos.google.spanner.v1.ICommitRequest|undefined, {}|undefined
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- session: request.session ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'session': request.session ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('commit request %j', request);
- const wrappedCallback:
- | Callback<
- protos.google.spanner.v1.ICommitResponse,
- protos.google.spanner.v1.ICommitRequest | null | undefined,
- {} | null | undefined
- >
- | undefined = callback
+ const wrappedCallback: Callback<
+ protos.google.spanner.v1.ICommitResponse,
+ protos.google.spanner.v1.ICommitRequest|null|undefined,
+ {}|null|undefined>|undefined = callback
? (error, response, options, rawResponse) => {
this._log.info('commit response %j', response);
callback!(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
- return this.innerApiCalls
- .commit(request, options, wrappedCallback)
- ?.then(
- ([response, options, rawResponse]: [
- protos.google.spanner.v1.ICommitResponse,
- protos.google.spanner.v1.ICommitRequest | undefined,
- {} | undefined,
- ]) => {
- this._log.info('commit response %j', response);
- return [response, options, rawResponse];
- },
- )
- .catch((error: any) => {
- if (
- error &&
- 'statusDetails' in error &&
- error.statusDetails instanceof Array
- ) {
- const protos = this._gaxModule.protobuf.Root.fromJSON(
- jsonProtos,
- ) as unknown as gax.protobuf.Type;
- error.statusDetails = decodeAnyProtosInArray(
- error.statusDetails,
- protos,
- );
+ return this.innerApiCalls.commit(request, options, wrappedCallback)
+ ?.then(([response, options, rawResponse]: [
+ protos.google.spanner.v1.ICommitResponse,
+ protos.google.spanner.v1.ICommitRequest|undefined,
+ {}|undefined
+ ]) => {
+ this._log.info('commit response %j', response);
+ return [response, options, rawResponse];
+ }).catch((error: any) => {
+ if (error && 'statusDetails' in error && error.statusDetails instanceof Array) {
+ const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type;
+ error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos);
}
throw error;
});
}
- /**
- * Rolls back a transaction, releasing any locks it holds. It's a good
- * idea to call this for any transaction that includes one or more
- * {@link protos.google.spanner.v1.Spanner.Read|Read} or
- * {@link protos.google.spanner.v1.Spanner.ExecuteSql|ExecuteSql} requests and ultimately
- * decides not to commit.
- *
- * `Rollback` returns `OK` if it successfully aborts the transaction, the
- * transaction was already aborted, or the transaction isn't
- * found. `Rollback` never returns `ABORTED`.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.session
- * Required. The session in which the transaction to roll back is running.
- * @param {Buffer} request.transactionId
- * Required. The transaction to roll back.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is an object representing {@link protos.google.protobuf.Empty|Empty}.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
- * for more details and examples.
- */
+/**
+ * Rolls back a transaction, releasing any locks it holds. It's a good
+ * idea to call this for any transaction that includes one or more
+ * {@link protos.google.spanner.v1.Spanner.Read|Read} or
+ * {@link protos.google.spanner.v1.Spanner.ExecuteSql|ExecuteSql} requests and ultimately
+ * decides not to commit.
+ *
+ * `Rollback` returns `OK` if it successfully aborts the transaction, the
+ * transaction was already aborted, or the transaction isn't
+ * found. `Rollback` never returns `ABORTED`.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.session
+ * Required. The session in which the transaction to roll back is running.
+ * @param {Buffer} request.transactionId
+ * Required. The transaction to roll back.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is an object representing {@link protos.google.protobuf.Empty|Empty}.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
+ * for more details and examples.
+ */
rollback(
- request?: protos.google.spanner.v1.IRollbackRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IRollbackRequest | undefined,
- {} | undefined,
- ]
- >;
+ request?: protos.google.spanner.v1.IRollbackRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IRollbackRequest|undefined, {}|undefined
+ ]>;
rollback(
- request: protos.google.spanner.v1.IRollbackRequest,
- options: CallOptions,
- callback: Callback<
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IRollbackRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IRollbackRequest,
+ options: CallOptions,
+ callback: Callback<
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IRollbackRequest|null|undefined,
+ {}|null|undefined>): void;
rollback(
- request: protos.google.spanner.v1.IRollbackRequest,
- callback: Callback<
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IRollbackRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IRollbackRequest,
+ callback: Callback<
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IRollbackRequest|null|undefined,
+ {}|null|undefined>): void;
rollback(
- request?: protos.google.spanner.v1.IRollbackRequest,
- optionsOrCallback?:
- | CallOptions
- | Callback<
+ request?: protos.google.spanner.v1.IRollbackRequest,
+ optionsOrCallback?: CallOptions|Callback<
protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IRollbackRequest | null | undefined,
- {} | null | undefined
- >,
- callback?: Callback<
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IRollbackRequest | null | undefined,
- {} | null | undefined
- >,
- ): Promise<
- [
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IRollbackRequest | undefined,
- {} | undefined,
- ]
- > | void {
+ protos.google.spanner.v1.IRollbackRequest|null|undefined,
+ {}|null|undefined>,
+ callback?: Callback<
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IRollbackRequest|null|undefined,
+ {}|null|undefined>):
+ Promise<[
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IRollbackRequest|undefined, {}|undefined
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- session: request.session ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'session': request.session ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('rollback request %j', request);
- const wrappedCallback:
- | Callback<
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IRollbackRequest | null | undefined,
- {} | null | undefined
- >
- | undefined = callback
+ const wrappedCallback: Callback<
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IRollbackRequest|null|undefined,
+ {}|null|undefined>|undefined = callback
? (error, response, options, rawResponse) => {
this._log.info('rollback response %j', response);
callback!(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
- return this.innerApiCalls
- .rollback(request, options, wrappedCallback)
- ?.then(
- ([response, options, rawResponse]: [
- protos.google.protobuf.IEmpty,
- protos.google.spanner.v1.IRollbackRequest | undefined,
- {} | undefined,
- ]) => {
- this._log.info('rollback response %j', response);
- return [response, options, rawResponse];
- },
- )
- .catch((error: any) => {
- if (
- error &&
- 'statusDetails' in error &&
- error.statusDetails instanceof Array
- ) {
- const protos = this._gaxModule.protobuf.Root.fromJSON(
- jsonProtos,
- ) as unknown as gax.protobuf.Type;
- error.statusDetails = decodeAnyProtosInArray(
- error.statusDetails,
- protos,
- );
+ return this.innerApiCalls.rollback(request, options, wrappedCallback)
+ ?.then(([response, options, rawResponse]: [
+ protos.google.protobuf.IEmpty,
+ protos.google.spanner.v1.IRollbackRequest|undefined,
+ {}|undefined
+ ]) => {
+ this._log.info('rollback response %j', response);
+ return [response, options, rawResponse];
+ }).catch((error: any) => {
+ if (error && 'statusDetails' in error && error.statusDetails instanceof Array) {
+ const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type;
+ error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos);
}
throw error;
});
}
- /**
- * Creates a set of partition tokens that can be used to execute a query
- * operation in parallel. Each of the returned partition tokens can be used
- * by {@link protos.google.spanner.v1.Spanner.ExecuteStreamingSql|ExecuteStreamingSql} to
- * specify a subset of the query result to read. The same session and
- * read-only transaction must be used by the `PartitionQueryRequest` used to
- * create the partition tokens and the `ExecuteSqlRequests` that use the
- * partition tokens.
- *
- * Partition tokens become invalid when the session used to create them
- * is deleted, is idle for too long, begins a new transaction, or becomes too
- * old. When any of these happen, it isn't possible to resume the query, and
- * the whole operation must be restarted from the beginning.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.session
- * Required. The session used to create the partitions.
- * @param {google.spanner.v1.TransactionSelector} request.transaction
- * Read-only snapshot transactions are supported, read and write and
- * single-use transactions are not.
- * @param {string} request.sql
- * Required. The query request to generate partitions for. The request fails
- * if the query isn't root partitionable. For a query to be root
- * partitionable, it needs to satisfy a few conditions. For example, if the
- * query execution plan contains a distributed union operator, then it must be
- * the first operator in the plan. For more information about other
- * conditions, see [Read data in
- * parallel](https://cloud.google.com/spanner/docs/reads#read_data_in_parallel).
- *
- * The query request must not contain DML commands, such as `INSERT`,
- * `UPDATE`, or `DELETE`. Use
- * {@link protos.google.spanner.v1.Spanner.ExecuteStreamingSql|`ExecuteStreamingSql`} with
- * a `PartitionedDml` transaction for large, partition-friendly DML
- * operations.
- * @param {google.protobuf.Struct} [request.params]
- * Optional. Parameter names and values that bind to placeholders in the SQL
- * string.
- *
- * A parameter placeholder consists of the `@` character followed by the
- * parameter name (for example, `@firstName`). Parameter names can contain
- * letters, numbers, and underscores.
- *
- * Parameters can appear anywhere that a literal value is expected. The same
- * parameter name can be used more than once, for example:
- *
- * `"WHERE id > @msg_id AND id < @msg_id + 100"`
- *
- * It's an error to execute a SQL statement with unbound parameters.
- * @param {number[]} [request.paramTypes]
- * Optional. It isn't always possible for Cloud Spanner to infer the right SQL
- * type from a JSON value. For example, values of type `BYTES` and values of
- * type `STRING` both appear in
- * {@link protos.google.spanner.v1.PartitionQueryRequest.params|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 {@link protos.google.spanner.v1.Type|Type} for more information
- * about SQL types.
- * @param {google.spanner.v1.PartitionOptions} request.partitionOptions
- * Additional options that affect how many partitions are created.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is an object representing {@link protos.google.spanner.v1.PartitionResponse|PartitionResponse}.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
- * for more details and examples.
- */
+/**
+ * Creates a set of partition tokens that can be used to execute a query
+ * operation in parallel. Each of the returned partition tokens can be used
+ * by {@link protos.google.spanner.v1.Spanner.ExecuteStreamingSql|ExecuteStreamingSql} to
+ * specify a subset of the query result to read. The same session and
+ * read-only transaction must be used by the `PartitionQueryRequest` used to
+ * create the partition tokens and the `ExecuteSqlRequests` that use the
+ * partition tokens.
+ *
+ * Partition tokens become invalid when the session used to create them
+ * is deleted, is idle for too long, begins a new transaction, or becomes too
+ * old. When any of these happen, it isn't possible to resume the query, and
+ * the whole operation must be restarted from the beginning.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.session
+ * Required. The session used to create the partitions.
+ * @param {google.spanner.v1.TransactionSelector} request.transaction
+ * Read-only snapshot transactions are supported, read and write and
+ * single-use transactions are not.
+ * @param {string} request.sql
+ * Required. The query request to generate partitions for. The request fails
+ * if the query isn't root partitionable. For a query to be root
+ * partitionable, it needs to satisfy a few conditions. For example, if the
+ * query execution plan contains a distributed union operator, then it must be
+ * the first operator in the plan. For more information about other
+ * conditions, see [Read data in
+ * parallel](https://cloud.google.com/spanner/docs/reads#read_data_in_parallel).
+ *
+ * The query request must not contain DML commands, such as `INSERT`,
+ * `UPDATE`, or `DELETE`. Use
+ * {@link protos.google.spanner.v1.Spanner.ExecuteStreamingSql|`ExecuteStreamingSql`} with
+ * a `PartitionedDml` transaction for large, partition-friendly DML
+ * operations.
+ * @param {google.protobuf.Struct} [request.params]
+ * Optional. Parameter names and values that bind to placeholders in the SQL
+ * string.
+ *
+ * A parameter placeholder consists of the `@` character followed by the
+ * parameter name (for example, `@firstName`). Parameter names can contain
+ * letters, numbers, and underscores.
+ *
+ * Parameters can appear anywhere that a literal value is expected. The same
+ * parameter name can be used more than once, for example:
+ *
+ * `"WHERE id > @msg_id AND id < @msg_id + 100"`
+ *
+ * It's an error to execute a SQL statement with unbound parameters.
+ * @param {number[]} [request.paramTypes]
+ * Optional. It isn't always possible for Cloud Spanner to infer the right SQL
+ * type from a JSON value. For example, values of type `BYTES` and values of
+ * type `STRING` both appear in
+ * {@link protos.google.spanner.v1.PartitionQueryRequest.params|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 {@link protos.google.spanner.v1.Type|Type} for more information
+ * about SQL types.
+ * @param {google.spanner.v1.PartitionOptions} request.partitionOptions
+ * Additional options that affect how many partitions are created.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is an object representing {@link protos.google.spanner.v1.PartitionResponse|PartitionResponse}.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
+ * for more details and examples.
+ */
partitionQuery(
- request?: protos.google.spanner.v1.IPartitionQueryRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionQueryRequest | undefined,
- {} | undefined,
- ]
- >;
+ request?: protos.google.spanner.v1.IPartitionQueryRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionQueryRequest|undefined, {}|undefined
+ ]>;
partitionQuery(
- request: protos.google.spanner.v1.IPartitionQueryRequest,
- options: CallOptions,
- callback: Callback<
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionQueryRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IPartitionQueryRequest,
+ options: CallOptions,
+ callback: Callback<
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionQueryRequest|null|undefined,
+ {}|null|undefined>): void;
partitionQuery(
- request: protos.google.spanner.v1.IPartitionQueryRequest,
- callback: Callback<
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionQueryRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IPartitionQueryRequest,
+ callback: Callback<
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionQueryRequest|null|undefined,
+ {}|null|undefined>): void;
partitionQuery(
- request?: protos.google.spanner.v1.IPartitionQueryRequest,
- optionsOrCallback?:
- | CallOptions
- | Callback<
+ request?: protos.google.spanner.v1.IPartitionQueryRequest,
+ optionsOrCallback?: CallOptions|Callback<
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionQueryRequest|null|undefined,
+ {}|null|undefined>,
+ callback?: Callback<
protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionQueryRequest | null | undefined,
- {} | null | undefined
- >,
- callback?: Callback<
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionQueryRequest | null | undefined,
- {} | null | undefined
- >,
- ): Promise<
- [
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionQueryRequest | undefined,
- {} | undefined,
- ]
- > | void {
+ protos.google.spanner.v1.IPartitionQueryRequest|null|undefined,
+ {}|null|undefined>):
+ Promise<[
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionQueryRequest|undefined, {}|undefined
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- session: request.session ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'session': request.session ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('partitionQuery request %j', request);
- const wrappedCallback:
- | Callback<
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionQueryRequest | null | undefined,
- {} | null | undefined
- >
- | undefined = callback
+ const wrappedCallback: Callback<
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionQueryRequest|null|undefined,
+ {}|null|undefined>|undefined = callback
? (error, response, options, rawResponse) => {
this._log.info('partitionQuery response %j', response);
callback!(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
- return this.innerApiCalls
- .partitionQuery(request, options, wrappedCallback)
- ?.then(
- ([response, options, rawResponse]: [
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionQueryRequest | undefined,
- {} | undefined,
- ]) => {
- this._log.info('partitionQuery response %j', response);
- return [response, options, rawResponse];
- },
- )
- .catch((error: any) => {
- if (
- error &&
- 'statusDetails' in error &&
- error.statusDetails instanceof Array
- ) {
- const protos = this._gaxModule.protobuf.Root.fromJSON(
- jsonProtos,
- ) as unknown as gax.protobuf.Type;
- error.statusDetails = decodeAnyProtosInArray(
- error.statusDetails,
- protos,
- );
+ return this.innerApiCalls.partitionQuery(request, options, wrappedCallback)
+ ?.then(([response, options, rawResponse]: [
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionQueryRequest|undefined,
+ {}|undefined
+ ]) => {
+ this._log.info('partitionQuery response %j', response);
+ return [response, options, rawResponse];
+ }).catch((error: any) => {
+ if (error && 'statusDetails' in error && error.statusDetails instanceof Array) {
+ const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type;
+ error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos);
}
throw error;
});
}
- /**
- * Creates a set of partition tokens that can be used to execute a read
- * operation in parallel. Each of the returned partition tokens can be used
- * by {@link protos.google.spanner.v1.Spanner.StreamingRead|StreamingRead} to specify a
- * subset of the read result to read. The same session and read-only
- * transaction must be used by the `PartitionReadRequest` used to create the
- * partition tokens and the `ReadRequests` that use the partition tokens.
- * There are no ordering guarantees on rows returned among the returned
- * partition tokens, or even within each individual `StreamingRead` call
- * issued with a `partition_token`.
- *
- * Partition tokens become invalid when the session used to create them
- * is deleted, is idle for too long, begins a new transaction, or becomes too
- * old. When any of these happen, it isn't possible to resume the read, and
- * the whole operation must be restarted from the beginning.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.session
- * Required. The session used to create the partitions.
- * @param {google.spanner.v1.TransactionSelector} request.transaction
- * Read only snapshot transactions are supported, read/write and single use
- * transactions are not.
- * @param {string} request.table
- * Required. The name of the table in the database to be read.
- * @param {string} request.index
- * If non-empty, the name of an index on
- * {@link protos.google.spanner.v1.PartitionReadRequest.table|table}. This index is used
- * instead of the table primary key when interpreting
- * {@link protos.google.spanner.v1.PartitionReadRequest.key_set|key_set} and sorting
- * result rows. See {@link protos.google.spanner.v1.PartitionReadRequest.key_set|key_set}
- * for further information.
- * @param {string[]} request.columns
- * The columns of {@link protos.google.spanner.v1.PartitionReadRequest.table|table} to be
- * returned for each row matching this request.
- * @param {google.spanner.v1.KeySet} request.keySet
- * Required. `key_set` identifies the rows to be yielded. `key_set` names the
- * primary keys of the rows in
- * {@link protos.google.spanner.v1.PartitionReadRequest.table|table} to be yielded, unless
- * {@link protos.google.spanner.v1.PartitionReadRequest.index|index} is present. If
- * {@link protos.google.spanner.v1.PartitionReadRequest.index|index} is present, then
- * {@link protos.google.spanner.v1.PartitionReadRequest.key_set|key_set} instead names
- * index keys in {@link protos.google.spanner.v1.PartitionReadRequest.index|index}.
- *
- * It isn't an error for the `key_set` to name rows that don't
- * exist in the database. Read yields nothing for nonexistent rows.
- * @param {google.spanner.v1.PartitionOptions} request.partitionOptions
- * Additional options that affect how many partitions are created.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is an object representing {@link protos.google.spanner.v1.PartitionResponse|PartitionResponse}.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
- * for more details and examples.
- */
+/**
+ * Creates a set of partition tokens that can be used to execute a read
+ * operation in parallel. Each of the returned partition tokens can be used
+ * by {@link protos.google.spanner.v1.Spanner.StreamingRead|StreamingRead} to specify a
+ * subset of the read result to read. The same session and read-only
+ * transaction must be used by the `PartitionReadRequest` used to create the
+ * partition tokens and the `ReadRequests` that use the partition tokens.
+ * There are no ordering guarantees on rows returned among the returned
+ * partition tokens, or even within each individual `StreamingRead` call
+ * issued with a `partition_token`.
+ *
+ * Partition tokens become invalid when the session used to create them
+ * is deleted, is idle for too long, begins a new transaction, or becomes too
+ * old. When any of these happen, it isn't possible to resume the read, and
+ * the whole operation must be restarted from the beginning.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.session
+ * Required. The session used to create the partitions.
+ * @param {google.spanner.v1.TransactionSelector} request.transaction
+ * Read only snapshot transactions are supported, read/write and single use
+ * transactions are not.
+ * @param {string} request.table
+ * Required. The name of the table in the database to be read.
+ * @param {string} request.index
+ * If non-empty, the name of an index on
+ * {@link protos.google.spanner.v1.PartitionReadRequest.table|table}. This index is used
+ * instead of the table primary key when interpreting
+ * {@link protos.google.spanner.v1.PartitionReadRequest.key_set|key_set} and sorting
+ * result rows. See {@link protos.google.spanner.v1.PartitionReadRequest.key_set|key_set}
+ * for further information.
+ * @param {string[]} request.columns
+ * The columns of {@link protos.google.spanner.v1.PartitionReadRequest.table|table} to be
+ * returned for each row matching this request.
+ * @param {google.spanner.v1.KeySet} request.keySet
+ * Required. `key_set` identifies the rows to be yielded. `key_set` names the
+ * primary keys of the rows in
+ * {@link protos.google.spanner.v1.PartitionReadRequest.table|table} to be yielded, unless
+ * {@link protos.google.spanner.v1.PartitionReadRequest.index|index} is present. If
+ * {@link protos.google.spanner.v1.PartitionReadRequest.index|index} is present, then
+ * {@link protos.google.spanner.v1.PartitionReadRequest.key_set|key_set} instead names
+ * index keys in {@link protos.google.spanner.v1.PartitionReadRequest.index|index}.
+ *
+ * It isn't an error for the `key_set` to name rows that don't
+ * exist in the database. Read yields nothing for nonexistent rows.
+ * @param {google.spanner.v1.PartitionOptions} request.partitionOptions
+ * Additional options that affect how many partitions are created.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is an object representing {@link protos.google.spanner.v1.PartitionResponse|PartitionResponse}.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
+ * for more details and examples.
+ */
partitionRead(
- request?: protos.google.spanner.v1.IPartitionReadRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionReadRequest | undefined,
- {} | undefined,
- ]
- >;
+ request?: protos.google.spanner.v1.IPartitionReadRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionReadRequest|undefined, {}|undefined
+ ]>;
partitionRead(
- request: protos.google.spanner.v1.IPartitionReadRequest,
- options: CallOptions,
- callback: Callback<
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionReadRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IPartitionReadRequest,
+ options: CallOptions,
+ callback: Callback<
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionReadRequest|null|undefined,
+ {}|null|undefined>): void;
partitionRead(
- request: protos.google.spanner.v1.IPartitionReadRequest,
- callback: Callback<
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionReadRequest | null | undefined,
- {} | null | undefined
- >,
- ): void;
+ request: protos.google.spanner.v1.IPartitionReadRequest,
+ callback: Callback<
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionReadRequest|null|undefined,
+ {}|null|undefined>): void;
partitionRead(
- request?: protos.google.spanner.v1.IPartitionReadRequest,
- optionsOrCallback?:
- | CallOptions
- | Callback<
+ request?: protos.google.spanner.v1.IPartitionReadRequest,
+ optionsOrCallback?: CallOptions|Callback<
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionReadRequest|null|undefined,
+ {}|null|undefined>,
+ callback?: Callback<
protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionReadRequest | null | undefined,
- {} | null | undefined
- >,
- callback?: Callback<
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionReadRequest | null | undefined,
- {} | null | undefined
- >,
- ): Promise<
- [
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionReadRequest | undefined,
- {} | undefined,
- ]
- > | void {
+ protos.google.spanner.v1.IPartitionReadRequest|null|undefined,
+ {}|null|undefined>):
+ Promise<[
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionReadRequest|undefined, {}|undefined
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- session: request.session ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'session': request.session ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('partitionRead request %j', request);
- const wrappedCallback:
- | Callback<
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionReadRequest | null | undefined,
- {} | null | undefined
- >
- | undefined = callback
+ const wrappedCallback: Callback<
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionReadRequest|null|undefined,
+ {}|null|undefined>|undefined = callback
? (error, response, options, rawResponse) => {
this._log.info('partitionRead response %j', response);
callback!(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
- return this.innerApiCalls
- .partitionRead(request, options, wrappedCallback)
- ?.then(
- ([response, options, rawResponse]: [
- protos.google.spanner.v1.IPartitionResponse,
- protos.google.spanner.v1.IPartitionReadRequest | undefined,
- {} | undefined,
- ]) => {
- this._log.info('partitionRead response %j', response);
- return [response, options, rawResponse];
- },
- )
- .catch((error: any) => {
- if (
- error &&
- 'statusDetails' in error &&
- error.statusDetails instanceof Array
- ) {
- const protos = this._gaxModule.protobuf.Root.fromJSON(
- jsonProtos,
- ) as unknown as gax.protobuf.Type;
- error.statusDetails = decodeAnyProtosInArray(
- error.statusDetails,
- protos,
- );
+ return this.innerApiCalls.partitionRead(request, options, wrappedCallback)
+ ?.then(([response, options, rawResponse]: [
+ protos.google.spanner.v1.IPartitionResponse,
+ protos.google.spanner.v1.IPartitionReadRequest|undefined,
+ {}|undefined
+ ]) => {
+ this._log.info('partitionRead response %j', response);
+ return [response, options, rawResponse];
+ }).catch((error: any) => {
+ if (error && 'statusDetails' in error && error.statusDetails instanceof Array) {
+ const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type;
+ error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos);
}
throw error;
});
}
- /**
- * Like {@link protos.google.spanner.v1.Spanner.ExecuteSql|ExecuteSql}, except returns the
- * result set as a stream. Unlike
- * {@link protos.google.spanner.v1.Spanner.ExecuteSql|ExecuteSql}, there is no limit on
- * the size of the returned result set. However, no individual row in the
- * result set can exceed 100 MiB, and no column value can exceed 10 MiB.
- *
- * The query string can be SQL or [Graph Query Language
- * (GQL)](https://cloud.google.com/spanner/docs/reference/standard-sql/graph-intro).
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.session
- * Required. The session in which the SQL query should be performed.
- * @param {google.spanner.v1.TransactionSelector} request.transaction
- * 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.
- * @param {string} request.sql
- * Required. The SQL string.
- * @param {google.protobuf.Struct} request.params
- * Parameter names and values that bind to placeholders in the SQL string.
- *
- * A parameter placeholder consists of the `@` character followed by the
- * parameter name (for example, `@firstName`). Parameter names must conform
- * to the naming requirements of identifiers as specified at
- * https://cloud.google.com/spanner/docs/lexical#identifiers.
- *
- * Parameters can appear anywhere that a literal value is expected. The same
- * parameter name can be used more than once, for example:
- *
- * `"WHERE id > @msg_id AND id < @msg_id + 100"`
- *
- * It's an error to execute a SQL statement with unbound parameters.
- * @param {number[]} request.paramTypes
- * It isn't always possible for Cloud Spanner to infer the right SQL type
- * from a JSON value. For example, values of type `BYTES` and values
- * of type `STRING` both appear in
- * {@link protos.google.spanner.v1.ExecuteSqlRequest.params|params} as JSON strings.
- *
- * In these cases, you can use `param_types` to specify the exact
- * SQL type for some or all of the SQL statement parameters. See the
- * definition of {@link protos.google.spanner.v1.Type|Type} for more information
- * about SQL types.
- * @param {Buffer} request.resumeToken
- * If this request is resuming a previously interrupted SQL statement
- * execution, `resume_token` should be copied from the last
- * {@link protos.google.spanner.v1.PartialResultSet|PartialResultSet} yielded before the
- * interruption. Doing this enables the new SQL statement execution to resume
- * where the last one left off. The rest of the request parameters must
- * exactly match the request that yielded this token.
- * @param {google.spanner.v1.ExecuteSqlRequest.QueryMode} request.queryMode
- * Used to control the amount of debugging information returned in
- * {@link protos.google.spanner.v1.ResultSetStats|ResultSetStats}. If
- * {@link protos.google.spanner.v1.ExecuteSqlRequest.partition_token|partition_token} is
- * set, {@link protos.google.spanner.v1.ExecuteSqlRequest.query_mode|query_mode} can only
- * be set to
- * {@link protos.google.spanner.v1.ExecuteSqlRequest.QueryMode.NORMAL|QueryMode.NORMAL}.
- * @param {Buffer} request.partitionToken
- * If present, results are restricted to the specified partition
- * previously created using `PartitionQuery`. There must be an exact
- * match for the values of fields common to this message and the
- * `PartitionQueryRequest` message used to create this `partition_token`.
- * @param {number} request.seqno
- * A per-transaction sequence number used to identify this request. This field
- * makes each request idempotent such that if the request is received multiple
- * times, at most one succeeds.
- *
- * The sequence number must be monotonically increasing within the
- * transaction. If a request arrives for the first time with an out-of-order
- * sequence number, the transaction can be aborted. Replays of previously
- * handled requests yield the same response as the first execution.
- *
- * Required for DML statements. Ignored for queries.
- * @param {google.spanner.v1.ExecuteSqlRequest.QueryOptions} request.queryOptions
- * Query optimizer configuration to use for the given query.
- * @param {google.spanner.v1.RequestOptions} request.requestOptions
- * Common options for this request.
- * @param {google.spanner.v1.DirectedReadOptions} request.directedReadOptions
- * Directed read options for this request.
- * @param {boolean} request.dataBoostEnabled
- * If this is for a partitioned query and this field is set to `true`, the
- * request is executed with Spanner Data Boost independent compute resources.
- *
- * If the field is set to `true` but the request doesn't set
- * `partition_token`, the API returns an `INVALID_ARGUMENT` error.
- * @param {boolean} [request.lastStatement]
- * Optional. If set to `true`, this statement marks the end of the
- * transaction. After this statement executes, you must commit or abort the
- * transaction. Attempts to execute any other requests against this
- * transaction (including reads and queries) are rejected.
- *
- * For DML statements, setting this option might cause some error reporting to
- * be deferred until commit time (for example, validation of unique
- * constraints). Given this, successful execution of a DML statement shouldn't
- * be assumed until a subsequent `Commit` call completes successfully.
- * @param {google.spanner.v1.RoutingHint} [request.routingHint]
- * Optional. If present, it makes the Spanner requests location-aware.
- *
- * It gives the server hints that can be used to route the request
- * to an appropriate server, potentially significantly decreasing latency and
- * improving throughput. To achieve improved performance, most fields must be
- * filled in with accurate values.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Stream}
- * An object stream which emits {@link protos.google.spanner.v1.PartialResultSet|PartialResultSet} on 'data' event.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#server-streaming | documentation }
- * for more details and examples.
- */
+/**
+ * Like {@link protos.google.spanner.v1.Spanner.ExecuteSql|ExecuteSql}, except returns the
+ * result set as a stream. Unlike
+ * {@link protos.google.spanner.v1.Spanner.ExecuteSql|ExecuteSql}, there is no limit on
+ * the size of the returned result set. However, no individual row in the
+ * result set can exceed 100 MiB, and no column value can exceed 10 MiB.
+ *
+ * The query string can be SQL or [Graph Query Language
+ * (GQL)](https://cloud.google.com/spanner/docs/reference/standard-sql/graph-intro).
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.session
+ * Required. The session in which the SQL query should be performed.
+ * @param {google.spanner.v1.TransactionSelector} request.transaction
+ * 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.
+ * @param {string} request.sql
+ * Required. The SQL string.
+ * @param {google.protobuf.Struct} request.params
+ * Parameter names and values that bind to placeholders in the SQL string.
+ *
+ * A parameter placeholder consists of the `@` character followed by the
+ * parameter name (for example, `@firstName`). Parameter names must conform
+ * to the naming requirements of identifiers as specified at
+ * https://cloud.google.com/spanner/docs/lexical#identifiers.
+ *
+ * Parameters can appear anywhere that a literal value is expected. The same
+ * parameter name can be used more than once, for example:
+ *
+ * `"WHERE id > @msg_id AND id < @msg_id + 100"`
+ *
+ * It's an error to execute a SQL statement with unbound parameters.
+ * @param {number[]} request.paramTypes
+ * It isn't always possible for Cloud Spanner to infer the right SQL type
+ * from a JSON value. For example, values of type `BYTES` and values
+ * of type `STRING` both appear in
+ * {@link protos.google.spanner.v1.ExecuteSqlRequest.params|params} as JSON strings.
+ *
+ * In these cases, you can use `param_types` to specify the exact
+ * SQL type for some or all of the SQL statement parameters. See the
+ * definition of {@link protos.google.spanner.v1.Type|Type} for more information
+ * about SQL types.
+ * @param {Buffer} request.resumeToken
+ * If this request is resuming a previously interrupted SQL statement
+ * execution, `resume_token` should be copied from the last
+ * {@link protos.google.spanner.v1.PartialResultSet|PartialResultSet} yielded before the
+ * interruption. Doing this enables the new SQL statement execution to resume
+ * where the last one left off. The rest of the request parameters must
+ * exactly match the request that yielded this token.
+ * @param {google.spanner.v1.ExecuteSqlRequest.QueryMode} request.queryMode
+ * Used to control the amount of debugging information returned in
+ * {@link protos.google.spanner.v1.ResultSetStats|ResultSetStats}. If
+ * {@link protos.google.spanner.v1.ExecuteSqlRequest.partition_token|partition_token} is
+ * set, {@link protos.google.spanner.v1.ExecuteSqlRequest.query_mode|query_mode} can only
+ * be set to
+ * {@link protos.google.spanner.v1.ExecuteSqlRequest.QueryMode.NORMAL|QueryMode.NORMAL}.
+ * @param {Buffer} request.partitionToken
+ * If present, results are restricted to the specified partition
+ * previously created using `PartitionQuery`. There must be an exact
+ * match for the values of fields common to this message and the
+ * `PartitionQueryRequest` message used to create this `partition_token`.
+ * @param {number} request.seqno
+ * A per-transaction sequence number used to identify this request. This field
+ * makes each request idempotent such that if the request is received multiple
+ * times, at most one succeeds.
+ *
+ * The sequence number must be monotonically increasing within the
+ * transaction. If a request arrives for the first time with an out-of-order
+ * sequence number, the transaction can be aborted. Replays of previously
+ * handled requests yield the same response as the first execution.
+ *
+ * Required for DML statements. Ignored for queries.
+ * @param {google.spanner.v1.ExecuteSqlRequest.QueryOptions} request.queryOptions
+ * Query optimizer configuration to use for the given query.
+ * @param {google.spanner.v1.RequestOptions} request.requestOptions
+ * Common options for this request.
+ * @param {google.spanner.v1.DirectedReadOptions} request.directedReadOptions
+ * Directed read options for this request.
+ * @param {boolean} request.dataBoostEnabled
+ * If this is for a partitioned query and this field is set to `true`, the
+ * request is executed with Spanner Data Boost independent compute resources.
+ *
+ * If the field is set to `true` but the request doesn't set
+ * `partition_token`, the API returns an `INVALID_ARGUMENT` error.
+ * @param {boolean} [request.lastStatement]
+ * Optional. If set to `true`, this statement marks the end of the
+ * transaction. After this statement executes, you must commit or abort the
+ * transaction. Attempts to execute any other requests against this
+ * transaction (including reads and queries) are rejected.
+ *
+ * For DML statements, setting this option might cause some error reporting to
+ * be deferred until commit time (for example, validation of unique
+ * constraints). Given this, successful execution of a DML statement shouldn't
+ * be assumed until a subsequent `Commit` call completes successfully.
+ * @param {google.spanner.v1.RoutingHint} [request.routingHint]
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Stream}
+ * An object stream which emits {@link protos.google.spanner.v1.PartialResultSet|PartialResultSet} on 'data' event.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#server-streaming | documentation }
+ * for more details and examples.
+ */
executeStreamingSql(
- request?: protos.google.spanner.v1.IExecuteSqlRequest,
- options?: CallOptions,
- ): gax.CancellableStream {
+ request?: protos.google.spanner.v1.IExecuteSqlRequest,
+ options?: CallOptions):
+ gax.CancellableStream{
request = request || {};
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- session: request.session ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'session': request.session ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('executeStreamingSql stream %j', options);
return this.innerApiCalls.executeStreamingSql(request, options);
}
- /**
- * Like {@link protos.google.spanner.v1.Spanner.Read|Read}, except returns the result set
- * as a stream. Unlike {@link protos.google.spanner.v1.Spanner.Read|Read}, there is no
- * limit on the size of the returned result set. However, no individual row in
- * the result set can exceed 100 MiB, and no column value can exceed
- * 10 MiB.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.session
- * Required. The session in which the read should be performed.
- * @param {google.spanner.v1.TransactionSelector} request.transaction
- * The transaction to use. If none is provided, the default is a
- * temporary read-only transaction with strong concurrency.
- * @param {string} request.table
- * Required. The name of the table in the database to be read.
- * @param {string} request.index
- * If non-empty, the name of an index on
- * {@link protos.google.spanner.v1.ReadRequest.table|table}. This index is used instead of
- * the table primary key when interpreting
- * {@link protos.google.spanner.v1.ReadRequest.key_set|key_set} and sorting result rows.
- * See {@link protos.google.spanner.v1.ReadRequest.key_set|key_set} for further
- * information.
- * @param {string[]} request.columns
- * Required. The columns of {@link protos.google.spanner.v1.ReadRequest.table|table} to be
- * returned for each row matching this request.
- * @param {google.spanner.v1.KeySet} request.keySet
- * Required. `key_set` identifies the rows to be yielded. `key_set` names the
- * primary keys of the rows in {@link protos.google.spanner.v1.ReadRequest.table|table} to
- * be yielded, unless {@link protos.google.spanner.v1.ReadRequest.index|index} is present.
- * If {@link protos.google.spanner.v1.ReadRequest.index|index} is present, then
- * {@link protos.google.spanner.v1.ReadRequest.key_set|key_set} instead names index keys
- * in {@link protos.google.spanner.v1.ReadRequest.index|index}.
- *
- * If the {@link protos.google.spanner.v1.ReadRequest.partition_token|partition_token}
- * field is empty, rows are yielded in table primary key order (if
- * {@link protos.google.spanner.v1.ReadRequest.index|index} is empty) or index key order
- * (if {@link protos.google.spanner.v1.ReadRequest.index|index} is non-empty). If the
- * {@link protos.google.spanner.v1.ReadRequest.partition_token|partition_token} field
- * isn't empty, rows are yielded in an unspecified order.
- *
- * It isn't an error for the `key_set` to name rows that don't
- * exist in the database. Read yields nothing for nonexistent rows.
- * @param {number} request.limit
- * If greater than zero, only the first `limit` rows are yielded. If `limit`
- * is zero, the default is no limit. A limit can't be specified if
- * `partition_token` is set.
- * @param {Buffer} request.resumeToken
- * If this request is resuming a previously interrupted read,
- * `resume_token` should be copied from the last
- * {@link protos.google.spanner.v1.PartialResultSet|PartialResultSet} yielded before the
- * interruption. Doing this enables the new read to resume where the last read
- * left off. The rest of the request parameters must exactly match the request
- * that yielded this token.
- * @param {Buffer} request.partitionToken
- * If present, results are restricted to the specified partition
- * previously created using `PartitionRead`. There must be an exact
- * match for the values of fields common to this message and the
- * PartitionReadRequest message used to create this partition_token.
- * @param {google.spanner.v1.RequestOptions} request.requestOptions
- * Common options for this request.
- * @param {google.spanner.v1.DirectedReadOptions} request.directedReadOptions
- * Directed read options for this request.
- * @param {boolean} request.dataBoostEnabled
- * If this is for a partitioned read and this field is set to `true`, the
- * request is executed with Spanner Data Boost independent compute resources.
- *
- * If the field is set to `true` but the request doesn't set
- * `partition_token`, the API returns an `INVALID_ARGUMENT` error.
- * @param {google.spanner.v1.ReadRequest.OrderBy} [request.orderBy]
- * Optional. Order for the returned rows.
- *
- * By default, Spanner returns result rows in primary key order except for
- * PartitionRead requests. For applications that don't require rows to be
- * returned in primary key (`ORDER_BY_PRIMARY_KEY`) order, setting
- * `ORDER_BY_NO_ORDER` option allows Spanner to optimize row retrieval,
- * resulting in lower latencies in certain cases (for example, bulk point
- * lookups).
- * @param {google.spanner.v1.ReadRequest.LockHint} [request.lockHint]
- * Optional. Lock Hint for the request, it can only be used with read-write
- * transactions.
- * @param {google.spanner.v1.RoutingHint} [request.routingHint]
- * Optional. If present, it makes the Spanner requests location-aware.
- *
- * It gives the server hints that can be used to route the request
- * to an appropriate server, potentially significantly decreasing latency and
- * improving throughput. To achieve improved performance, most fields must be
- * filled in with accurate values.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Stream}
- * An object stream which emits {@link protos.google.spanner.v1.PartialResultSet|PartialResultSet} on 'data' event.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#server-streaming | documentation }
- * for more details and examples.
- */
+/**
+ * Like {@link protos.google.spanner.v1.Spanner.Read|Read}, except returns the result set
+ * as a stream. Unlike {@link protos.google.spanner.v1.Spanner.Read|Read}, there is no
+ * limit on the size of the returned result set. However, no individual row in
+ * the result set can exceed 100 MiB, and no column value can exceed
+ * 10 MiB.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.session
+ * Required. The session in which the read should be performed.
+ * @param {google.spanner.v1.TransactionSelector} request.transaction
+ * The transaction to use. If none is provided, the default is a
+ * temporary read-only transaction with strong concurrency.
+ * @param {string} request.table
+ * Required. The name of the table in the database to be read.
+ * @param {string} request.index
+ * If non-empty, the name of an index on
+ * {@link protos.google.spanner.v1.ReadRequest.table|table}. This index is used instead of
+ * the table primary key when interpreting
+ * {@link protos.google.spanner.v1.ReadRequest.key_set|key_set} and sorting result rows.
+ * See {@link protos.google.spanner.v1.ReadRequest.key_set|key_set} for further
+ * information.
+ * @param {string[]} request.columns
+ * Required. The columns of {@link protos.google.spanner.v1.ReadRequest.table|table} to be
+ * returned for each row matching this request.
+ * @param {google.spanner.v1.KeySet} request.keySet
+ * Required. `key_set` identifies the rows to be yielded. `key_set` names the
+ * primary keys of the rows in {@link protos.google.spanner.v1.ReadRequest.table|table} to
+ * be yielded, unless {@link protos.google.spanner.v1.ReadRequest.index|index} is present.
+ * If {@link protos.google.spanner.v1.ReadRequest.index|index} is present, then
+ * {@link protos.google.spanner.v1.ReadRequest.key_set|key_set} instead names index keys
+ * in {@link protos.google.spanner.v1.ReadRequest.index|index}.
+ *
+ * If the {@link protos.google.spanner.v1.ReadRequest.partition_token|partition_token}
+ * field is empty, rows are yielded in table primary key order (if
+ * {@link protos.google.spanner.v1.ReadRequest.index|index} is empty) or index key order
+ * (if {@link protos.google.spanner.v1.ReadRequest.index|index} is non-empty). If the
+ * {@link protos.google.spanner.v1.ReadRequest.partition_token|partition_token} field
+ * isn't empty, rows are yielded in an unspecified order.
+ *
+ * It isn't an error for the `key_set` to name rows that don't
+ * exist in the database. Read yields nothing for nonexistent rows.
+ * @param {number} request.limit
+ * If greater than zero, only the first `limit` rows are yielded. If `limit`
+ * is zero, the default is no limit. A limit can't be specified if
+ * `partition_token` is set.
+ * @param {Buffer} request.resumeToken
+ * If this request is resuming a previously interrupted read,
+ * `resume_token` should be copied from the last
+ * {@link protos.google.spanner.v1.PartialResultSet|PartialResultSet} yielded before the
+ * interruption. Doing this enables the new read to resume where the last read
+ * left off. The rest of the request parameters must exactly match the request
+ * that yielded this token.
+ * @param {Buffer} request.partitionToken
+ * If present, results are restricted to the specified partition
+ * previously created using `PartitionRead`. There must be an exact
+ * match for the values of fields common to this message and the
+ * PartitionReadRequest message used to create this partition_token.
+ * @param {google.spanner.v1.RequestOptions} request.requestOptions
+ * Common options for this request.
+ * @param {google.spanner.v1.DirectedReadOptions} request.directedReadOptions
+ * Directed read options for this request.
+ * @param {boolean} request.dataBoostEnabled
+ * If this is for a partitioned read and this field is set to `true`, the
+ * request is executed with Spanner Data Boost independent compute resources.
+ *
+ * If the field is set to `true` but the request doesn't set
+ * `partition_token`, the API returns an `INVALID_ARGUMENT` error.
+ * @param {google.spanner.v1.ReadRequest.OrderBy} [request.orderBy]
+ * Optional. Order for the returned rows.
+ *
+ * By default, Spanner returns result rows in primary key order except for
+ * PartitionRead requests. For applications that don't require rows to be
+ * returned in primary key (`ORDER_BY_PRIMARY_KEY`) order, setting
+ * `ORDER_BY_NO_ORDER` option allows Spanner to optimize row retrieval,
+ * resulting in lower latencies in certain cases (for example, bulk point
+ * lookups).
+ * @param {google.spanner.v1.ReadRequest.LockHint} [request.lockHint]
+ * Optional. Lock Hint for the request, it can only be used with read-write
+ * transactions.
+ * @param {google.spanner.v1.RoutingHint} [request.routingHint]
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Stream}
+ * An object stream which emits {@link protos.google.spanner.v1.PartialResultSet|PartialResultSet} on 'data' event.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#server-streaming | documentation }
+ * for more details and examples.
+ */
streamingRead(
- request?: protos.google.spanner.v1.IReadRequest,
- options?: CallOptions,
- ): gax.CancellableStream {
+ request?: protos.google.spanner.v1.IReadRequest,
+ options?: CallOptions):
+ gax.CancellableStream{
request = request || {};
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- session: request.session ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'session': request.session ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('streamingRead stream %j', options);
return this.innerApiCalls.streamingRead(request, options);
}
- /**
- * Batches the supplied mutation groups in a collection of efficient
- * transactions. All mutations in a group are committed atomically. However,
- * mutations across groups can be committed non-atomically in an unspecified
- * order and thus, they must be independent of each other. Partial failure is
- * possible, that is, some groups might have been committed successfully,
- * while some might have failed. The results of individual batches are
- * streamed into the response as the batches are applied.
- *
- * `BatchWrite` requests are not replay protected, meaning that each mutation
- * group can be applied more than once. Replays of non-idempotent mutations
- * can have undesirable effects. For example, replays of an insert mutation
- * can produce an already exists error or if you use generated or commit
- * timestamp-based keys, it can result in additional rows being added to the
- * mutation's table. We recommend structuring your mutation groups to be
- * idempotent to avoid this issue.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.session
- * Required. The session in which the batch request is to be run.
- * @param {google.spanner.v1.RequestOptions} request.requestOptions
- * Common options for this request.
- * @param {number[]} request.mutationGroups
- * Required. The groups of mutations to be applied.
- * @param {boolean} [request.excludeTxnFromChangeStreams]
- * Optional. If you don't set the `exclude_txn_from_change_streams` option or
- * if it's set to `false`, then any change streams monitoring columns modified
- * by transactions will capture the updates made within that transaction.
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Stream}
- * An object stream which emits {@link protos.google.spanner.v1.BatchWriteResponse|BatchWriteResponse} on 'data' event.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#server-streaming | documentation }
- * for more details and examples.
- */
+/**
+ * Batches the supplied mutation groups in a collection of efficient
+ * transactions. All mutations in a group are committed atomically. However,
+ * mutations across groups can be committed non-atomically in an unspecified
+ * order and thus, they must be independent of each other. Partial failure is
+ * possible, that is, some groups might have been committed successfully,
+ * while some might have failed. The results of individual batches are
+ * streamed into the response as the batches are applied.
+ *
+ * `BatchWrite` requests are not replay protected, meaning that each mutation
+ * group can be applied more than once. Replays of non-idempotent mutations
+ * can have undesirable effects. For example, replays of an insert mutation
+ * can produce an already exists error or if you use generated or commit
+ * timestamp-based keys, it can result in additional rows being added to the
+ * mutation's table. We recommend structuring your mutation groups to be
+ * idempotent to avoid this issue.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.session
+ * Required. The session in which the batch request is to be run.
+ * @param {google.spanner.v1.RequestOptions} request.requestOptions
+ * Common options for this request.
+ * @param {number[]} request.mutationGroups
+ * Required. The groups of mutations to be applied.
+ * @param {boolean} [request.excludeTxnFromChangeStreams]
+ * Optional. If you don't set the `exclude_txn_from_change_streams` option or
+ * if it's set to `false`, then any change streams monitoring columns modified
+ * by transactions will capture the updates made within that transaction.
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Stream}
+ * An object stream which emits {@link protos.google.spanner.v1.BatchWriteResponse|BatchWriteResponse} on 'data' event.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#server-streaming | documentation }
+ * for more details and examples.
+ */
batchWrite(
- request?: protos.google.spanner.v1.IBatchWriteRequest,
- options?: CallOptions,
- ): gax.CancellableStream {
+ request?: protos.google.spanner.v1.IBatchWriteRequest,
+ options?: CallOptions):
+ gax.CancellableStream{
request = request || {};
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- session: request.session ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'session': request.session ?? '',
});
+ this.initialize().catch(err => {throw err});
this._log.info('batchWrite stream %j', options);
return this.innerApiCalls.batchWrite(request, options);
}
- /**
- * Lists all sessions in a given database.
- *
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.database
- * Required. The database in which to list sessions.
- * @param {number} request.pageSize
- * Number of sessions to be returned in the response. If 0 or less, defaults
- * to the server's maximum allowed page size.
- * @param {string} request.pageToken
- * If non-empty, `page_token` should contain a
- * {@link protos.google.spanner.v1.ListSessionsResponse.next_page_token|next_page_token}
- * from a previous
- * {@link protos.google.spanner.v1.ListSessionsResponse|ListSessionsResponse}.
- * @param {string} request.filter
- * 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".
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Promise} - The promise which resolves to an array.
- * The first element of the array is Array of {@link protos.google.spanner.v1.Session|Session}.
- * The client library will perform auto-pagination by default: it will call the API as many
- * times as needed and will merge results from all the pages into this array.
- * Note that it can affect your quota.
- * We recommend using `listSessionsAsync()`
- * method described below for async iteration which you can stop as needed.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
- * for more details and examples.
- */
+ /**
+ * Lists all sessions in a given database.
+ *
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.database
+ * Required. The database in which to list sessions.
+ * @param {number} request.pageSize
+ * Number of sessions to be returned in the response. If 0 or less, defaults
+ * to the server's maximum allowed page size.
+ * @param {string} request.pageToken
+ * If non-empty, `page_token` should contain a
+ * {@link protos.google.spanner.v1.ListSessionsResponse.next_page_token|next_page_token}
+ * from a previous
+ * {@link protos.google.spanner.v1.ListSessionsResponse|ListSessionsResponse}.
+ * @param {string} request.filter
+ * 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".
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Promise} - The promise which resolves to an array.
+ * The first element of the array is Array of {@link protos.google.spanner.v1.Session|Session}.
+ * The client library will perform auto-pagination by default: it will call the API as many
+ * times as needed and will merge results from all the pages into this array.
+ * Note that it can affect your quota.
+ * We recommend using `listSessionsAsync()`
+ * method described below for async iteration which you can stop as needed.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
+ * for more details and examples.
+ */
listSessions(
- request?: protos.google.spanner.v1.IListSessionsRequest,
- options?: CallOptions,
- ): Promise<
- [
- protos.google.spanner.v1.ISession[],
- protos.google.spanner.v1.IListSessionsRequest | null,
- protos.google.spanner.v1.IListSessionsResponse,
- ]
- >;
+ request?: protos.google.spanner.v1.IListSessionsRequest,
+ options?: CallOptions):
+ Promise<[
+ protos.google.spanner.v1.ISession[],
+ protos.google.spanner.v1.IListSessionsRequest|null,
+ protos.google.spanner.v1.IListSessionsResponse
+ ]>;
listSessions(
- request: protos.google.spanner.v1.IListSessionsRequest,
- options: CallOptions,
- callback: PaginationCallback<
- protos.google.spanner.v1.IListSessionsRequest,
- protos.google.spanner.v1.IListSessionsResponse | null | undefined,
- protos.google.spanner.v1.ISession
- >,
- ): void;
+ request: protos.google.spanner.v1.IListSessionsRequest,
+ options: CallOptions,
+ callback: PaginationCallback<
+ protos.google.spanner.v1.IListSessionsRequest,
+ protos.google.spanner.v1.IListSessionsResponse|null|undefined,
+ protos.google.spanner.v1.ISession>): void;
listSessions(
- request: protos.google.spanner.v1.IListSessionsRequest,
- callback: PaginationCallback<
- protos.google.spanner.v1.IListSessionsRequest,
- protos.google.spanner.v1.IListSessionsResponse | null | undefined,
- protos.google.spanner.v1.ISession
- >,
- ): void;
+ request: protos.google.spanner.v1.IListSessionsRequest,
+ callback: PaginationCallback<
+ protos.google.spanner.v1.IListSessionsRequest,
+ protos.google.spanner.v1.IListSessionsResponse|null|undefined,
+ protos.google.spanner.v1.ISession>): void;
listSessions(
- request?: protos.google.spanner.v1.IListSessionsRequest,
- optionsOrCallback?:
- | CallOptions
- | PaginationCallback<
+ request?: protos.google.spanner.v1.IListSessionsRequest,
+ optionsOrCallback?: CallOptions|PaginationCallback<
protos.google.spanner.v1.IListSessionsRequest,
- protos.google.spanner.v1.IListSessionsResponse | null | undefined,
- protos.google.spanner.v1.ISession
- >,
- callback?: PaginationCallback<
- protos.google.spanner.v1.IListSessionsRequest,
- protos.google.spanner.v1.IListSessionsResponse | null | undefined,
- protos.google.spanner.v1.ISession
- >,
- ): Promise<
- [
- protos.google.spanner.v1.ISession[],
- protos.google.spanner.v1.IListSessionsRequest | null,
- protos.google.spanner.v1.IListSessionsResponse,
- ]
- > | void {
+ protos.google.spanner.v1.IListSessionsResponse|null|undefined,
+ protos.google.spanner.v1.ISession>,
+ callback?: PaginationCallback<
+ protos.google.spanner.v1.IListSessionsRequest,
+ protos.google.spanner.v1.IListSessionsResponse|null|undefined,
+ protos.google.spanner.v1.ISession>):
+ Promise<[
+ protos.google.spanner.v1.ISession[],
+ protos.google.spanner.v1.IListSessionsRequest|null,
+ protos.google.spanner.v1.IListSessionsResponse
+ ]>|void {
request = request || {};
let options: CallOptions;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
- } else {
+ }
+ else {
options = optionsOrCallback as CallOptions;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- database: request.database ?? '',
- });
- this.initialize().catch(err => {
- throw err;
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'database': request.database ?? '',
});
- const wrappedCallback:
- | PaginationCallback<
- protos.google.spanner.v1.IListSessionsRequest,
- protos.google.spanner.v1.IListSessionsResponse | null | undefined,
- protos.google.spanner.v1.ISession
- >
- | undefined = callback
+ this.initialize().catch(err => {throw err});
+ const wrappedCallback: PaginationCallback<
+ protos.google.spanner.v1.IListSessionsRequest,
+ protos.google.spanner.v1.IListSessionsResponse|null|undefined,
+ protos.google.spanner.v1.ISession>|undefined = callback
? (error, values, nextPageRequest, rawResponse) => {
this._log.info('listSessions values %j', values);
callback!(error, values, nextPageRequest, rawResponse); // We verified callback above.
@@ -2785,138 +2334,134 @@ export class SpannerClient {
this._log.info('listSessions request %j', request);
return this.innerApiCalls
.listSessions(request, options, wrappedCallback)
- ?.then(
- ([response, input, output]: [
- protos.google.spanner.v1.ISession[],
- protos.google.spanner.v1.IListSessionsRequest | null,
- protos.google.spanner.v1.IListSessionsResponse,
- ]) => {
- this._log.info('listSessions values %j', response);
- return [response, input, output];
- },
- );
+ ?.then(([response, input, output]: [
+ protos.google.spanner.v1.ISession[],
+ protos.google.spanner.v1.IListSessionsRequest|null,
+ protos.google.spanner.v1.IListSessionsResponse
+ ]) => {
+ this._log.info('listSessions values %j', response);
+ return [response, input, output];
+ });
}
- /**
- * Equivalent to `listSessions`, but returns a NodeJS Stream object.
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.database
- * Required. The database in which to list sessions.
- * @param {number} request.pageSize
- * Number of sessions to be returned in the response. If 0 or less, defaults
- * to the server's maximum allowed page size.
- * @param {string} request.pageToken
- * If non-empty, `page_token` should contain a
- * {@link protos.google.spanner.v1.ListSessionsResponse.next_page_token|next_page_token}
- * from a previous
- * {@link protos.google.spanner.v1.ListSessionsResponse|ListSessionsResponse}.
- * @param {string} request.filter
- * 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".
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Stream}
- * An object stream which emits an object representing {@link protos.google.spanner.v1.Session|Session} on 'data' event.
- * The client library will perform auto-pagination by default: it will call the API as many
- * times as needed. Note that it can affect your quota.
- * We recommend using `listSessionsAsync()`
- * method described below for async iteration which you can stop as needed.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
- * for more details and examples.
- */
+/**
+ * Equivalent to `listSessions`, but returns a NodeJS Stream object.
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.database
+ * Required. The database in which to list sessions.
+ * @param {number} request.pageSize
+ * Number of sessions to be returned in the response. If 0 or less, defaults
+ * to the server's maximum allowed page size.
+ * @param {string} request.pageToken
+ * If non-empty, `page_token` should contain a
+ * {@link protos.google.spanner.v1.ListSessionsResponse.next_page_token|next_page_token}
+ * from a previous
+ * {@link protos.google.spanner.v1.ListSessionsResponse|ListSessionsResponse}.
+ * @param {string} request.filter
+ * 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".
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Stream}
+ * An object stream which emits an object representing {@link protos.google.spanner.v1.Session|Session} on 'data' event.
+ * The client library will perform auto-pagination by default: it will call the API as many
+ * times as needed. Note that it can affect your quota.
+ * We recommend using `listSessionsAsync()`
+ * method described below for async iteration which you can stop as needed.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
+ * for more details and examples.
+ */
listSessionsStream(
- request?: protos.google.spanner.v1.IListSessionsRequest,
- options?: CallOptions,
- ): Transform {
+ request?: protos.google.spanner.v1.IListSessionsRequest,
+ options?: CallOptions):
+ Transform{
request = request || {};
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- database: request.database ?? '',
- });
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'database': request.database ?? '',
+ });
const defaultCallSettings = this._defaults['listSessions'];
const callSettings = defaultCallSettings.merge(options);
- this.initialize().catch(err => {
- throw err;
- });
+ this.initialize().catch(err => {throw err});
this._log.info('listSessions stream %j', request);
return this.descriptors.page.listSessions.createStream(
this.innerApiCalls.listSessions as GaxCall,
request,
- callSettings,
+ callSettings
);
}
- /**
- * Equivalent to `listSessions`, but returns an iterable object.
- *
- * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
- * @param {Object} request
- * The request object that will be sent.
- * @param {string} request.database
- * Required. The database in which to list sessions.
- * @param {number} request.pageSize
- * Number of sessions to be returned in the response. If 0 or less, defaults
- * to the server's maximum allowed page size.
- * @param {string} request.pageToken
- * If non-empty, `page_token` should contain a
- * {@link protos.google.spanner.v1.ListSessionsResponse.next_page_token|next_page_token}
- * from a previous
- * {@link protos.google.spanner.v1.ListSessionsResponse|ListSessionsResponse}.
- * @param {string} request.filter
- * 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".
- * @param {object} [options]
- * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
- * @returns {Object}
- * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
- * When you iterate the returned iterable, each element will be an object representing
- * {@link protos.google.spanner.v1.Session|Session}. The API will be called under the hood as needed, once per the page,
- * so you can stop the iteration when you don't need more results.
- * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
- * for more details and examples.
- */
+/**
+ * Equivalent to `listSessions`, but returns an iterable object.
+ *
+ * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
+ * @param {Object} request
+ * The request object that will be sent.
+ * @param {string} request.database
+ * Required. The database in which to list sessions.
+ * @param {number} request.pageSize
+ * Number of sessions to be returned in the response. If 0 or less, defaults
+ * to the server's maximum allowed page size.
+ * @param {string} request.pageToken
+ * If non-empty, `page_token` should contain a
+ * {@link protos.google.spanner.v1.ListSessionsResponse.next_page_token|next_page_token}
+ * from a previous
+ * {@link protos.google.spanner.v1.ListSessionsResponse|ListSessionsResponse}.
+ * @param {string} request.filter
+ * 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".
+ * @param {object} [options]
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
+ * @returns {Object}
+ * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
+ * When you iterate the returned iterable, each element will be an object representing
+ * {@link protos.google.spanner.v1.Session|Session}. The API will be called under the hood as needed, once per the page,
+ * so you can stop the iteration when you don't need more results.
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
+ * for more details and examples.
+ */
listSessionsAsync(
- request?: protos.google.spanner.v1.IListSessionsRequest,
- options?: CallOptions,
- ): AsyncIterable {
+ request?: protos.google.spanner.v1.IListSessionsRequest,
+ options?: CallOptions):
+ AsyncIterable{
request = request || {};
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
- options.otherArgs.headers['x-goog-request-params'] =
- this._gaxModule.routingHeader.fromParams({
- database: request.database ?? '',
- });
+ options.otherArgs.headers[
+ 'x-goog-request-params'
+ ] = this._gaxModule.routingHeader.fromParams({
+ 'database': request.database ?? '',
+ });
const defaultCallSettings = this._defaults['listSessions'];
const callSettings = defaultCallSettings.merge(options);
- this.initialize().catch(err => {
- throw err;
- });
+ this.initialize().catch(err => {throw err});
this._log.info('listSessions iterate %j', request);
return this.descriptors.page.listSessions.asyncIterate(
this.innerApiCalls['listSessions'] as GaxCall,
request as {},
- callSettings,
+ callSettings
) as AsyncIterable;
}
// --------------------
@@ -2931,7 +2476,7 @@ export class SpannerClient {
* @param {string} database
* @returns {string} Resource name string.
*/
- databasePath(project: string, instance: string, database: string) {
+ databasePath(project:string,instance:string,database:string) {
return this.pathTemplates.databasePathTemplate.render({
project: project,
instance: instance,
@@ -2981,12 +2526,7 @@ export class SpannerClient {
* @param {string} session
* @returns {string} Resource name string.
*/
- sessionPath(
- project: string,
- instance: string,
- database: string,
- session: string,
- ) {
+ sessionPath(project:string,instance:string,database:string,session:string) {
return this.pathTemplates.sessionPathTemplate.render({
project: project,
instance: instance,
@@ -3055,4 +2595,4 @@ export class SpannerClient {
}
return Promise.resolve();
}
-}
+}
\ No newline at end of file
diff --git a/handwritten/spanner/test/gapic_spanner_v1.ts b/handwritten/spanner/test/gapic_spanner_v1.ts
index d215e9a3836a..e308561cbfd8 100644
--- a/handwritten/spanner/test/gapic_spanner_v1.ts
+++ b/handwritten/spanner/test/gapic_spanner_v1.ts
@@ -29,2846 +29,2309 @@ import {protobuf} from 'google-gax';
// Dynamically loaded proto JSON is needed to get the type information
// to fill in default values for request objects
-const root = protobuf.Root.fromJSON(
- require('../protos/protos.json'),
-).resolveAll();
+const root = protobuf.Root.fromJSON(require('../protos/protos.json')).resolveAll();
// eslint-disable-next-line @typescript-eslint/no-unused-vars
function getTypeDefaultValue(typeName: string, fields: string[]) {
- let type = root.lookupType(typeName) as protobuf.Type;
- for (const field of fields.slice(0, -1)) {
- type = type.fields[field]?.resolvedType as protobuf.Type;
- }
- return type.fields[fields[fields.length - 1]]?.defaultValue;
+ let type = root.lookupType(typeName) as protobuf.Type;
+ for (const field of fields.slice(0, -1)) {
+ type = type.fields[field]?.resolvedType as protobuf.Type;
+ }
+ return type.fields[fields[fields.length - 1]]?.defaultValue;
}
function generateSampleMessage(instance: T) {
- const filledObject = (
- instance.constructor as typeof protobuf.Message
- ).toObject(instance as protobuf.Message, {defaults: true});
- return (instance.constructor as typeof protobuf.Message).fromObject(
- filledObject,
- ) as T;
+ const filledObject = (instance.constructor as typeof protobuf.Message)
+ .toObject(instance as protobuf.Message, {defaults: true});
+ return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T;
}
function stubSimpleCall(response?: ResponseType, error?: Error) {
- return error
- ? sinon.stub().rejects(error)
- : sinon.stub().resolves([response]);
+ return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]);
}
-function stubSimpleCallWithCallback(
- response?: ResponseType,
- error?: Error,
-) {
- return error
- ? sinon.stub().callsArgWith(2, error)
- : sinon.stub().callsArgWith(2, null, response);
+function stubSimpleCallWithCallback(response?: ResponseType, error?: Error) {
+ return error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response);
}
-function stubServerStreamingCall(
- response?: ResponseType,
- error?: Error,
-) {
- const transformStub = error
- ? sinon.stub().callsArgWith(2, error)
- : sinon.stub().callsArgWith(2, null, response);
- const mockStream = new PassThrough({
- objectMode: true,
- transform: transformStub,
- });
- // write something to the stream to trigger transformStub and send the response back to the client
- setImmediate(() => {
- mockStream.write({});
- });
- setImmediate(() => {
- mockStream.end();
- });
- return sinon.stub().returns(mockStream);
+function stubServerStreamingCall(response?: ResponseType, error?: Error) {
+ const transformStub = error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response);
+ const mockStream = new PassThrough({
+ objectMode: true,
+ transform: transformStub,
+ });
+ // write something to the stream to trigger transformStub and send the response back to the client
+ setImmediate(() => { mockStream.write({}); });
+ setImmediate(() => { mockStream.end(); });
+ return sinon.stub().returns(mockStream);
}
-function stubPageStreamingCall(
- responses?: ResponseType[],
- error?: Error,
-) {
- const pagingStub = sinon.stub();
- if (responses) {
- for (let i = 0; i < responses.length; ++i) {
- pagingStub.onCall(i).callsArgWith(2, null, responses[i]);
+function stubPageStreamingCall(responses?: ResponseType[], error?: Error) {
+ const pagingStub = sinon.stub();
+ if (responses) {
+ for (let i = 0; i < responses.length; ++i) {
+ pagingStub.onCall(i).callsArgWith(2, null, responses[i]);
+ }
}
- }
- const transformStub = error
- ? sinon.stub().callsArgWith(2, error)
- : pagingStub;
- const mockStream = new PassThrough({
- objectMode: true,
- transform: transformStub,
- });
- // trigger as many responses as needed
- if (responses) {
- for (let i = 0; i < responses.length; ++i) {
- setImmediate(() => {
- mockStream.write({});
- });
+ const transformStub = error ? sinon.stub().callsArgWith(2, error) : pagingStub;
+ const mockStream = new PassThrough({
+ objectMode: true,
+ transform: transformStub,
+ });
+ // trigger as many responses as needed
+ if (responses) {
+ for (let i = 0; i < responses.length; ++i) {
+ setImmediate(() => { mockStream.write({}); });
+ }
+ setImmediate(() => { mockStream.end(); });
+ } else {
+ setImmediate(() => { mockStream.write({}); });
+ setImmediate(() => { mockStream.end(); });
}
- setImmediate(() => {
- mockStream.end();
- });
- } else {
- setImmediate(() => {
- mockStream.write({});
- });
- setImmediate(() => {
- mockStream.end();
- });
- }
- return sinon.stub().returns(mockStream);
+ return sinon.stub().returns(mockStream);
}
-function stubAsyncIterationCall(
- responses?: ResponseType[],
- error?: Error,
-) {
- let counter = 0;
- const asyncIterable = {
- [Symbol.asyncIterator]() {
- return {
- async next() {
- if (error) {
- return Promise.reject(error);
- }
- if (counter >= responses!.length) {
- return Promise.resolve({done: true, value: undefined});
- }
- return Promise.resolve({done: false, value: responses![counter++]});
- },
- };
- },
- };
- return sinon.stub().returns(asyncIterable);
+function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) {
+ let counter = 0;
+ const asyncIterable = {
+ [Symbol.asyncIterator]() {
+ return {
+ async next() {
+ if (error) {
+ return Promise.reject(error);
+ }
+ if (counter >= responses!.length) {
+ return Promise.resolve({done: true, value: undefined});
+ }
+ return Promise.resolve({done: false, value: responses![counter++]});
+ }
+ };
+ }
+ };
+ return sinon.stub().returns(asyncIterable);
}
describe('v1.SpannerClient', () => {
- describe('Common methods', () => {
- it('has apiEndpoint', () => {
- const client = new spannerModule.v1.SpannerClient();
- const apiEndpoint = client.apiEndpoint;
- assert.strictEqual(apiEndpoint, 'spanner.googleapis.com');
- });
+ describe('Common methods', () => {
+ it('has apiEndpoint', () => {
+ const client = new spannerModule.v1.SpannerClient();
+ const apiEndpoint = client.apiEndpoint;
+ assert.strictEqual(apiEndpoint, 'spanner.googleapis.com');
+ });
- it('has universeDomain', () => {
- const client = new spannerModule.v1.SpannerClient();
- const universeDomain = client.universeDomain;
- assert.strictEqual(universeDomain, 'googleapis.com');
- });
+ it('has universeDomain', () => {
+ const client = new spannerModule.v1.SpannerClient();
+ const universeDomain = client.universeDomain;
+ assert.strictEqual(universeDomain, "googleapis.com");
+ });
- if (
- typeof process === 'object' &&
- typeof process.emitWarning === 'function'
- ) {
- it('throws DeprecationWarning if static servicePath is used', () => {
- const stub = sinon.stub(process, 'emitWarning');
- const servicePath = spannerModule.v1.SpannerClient.servicePath;
- assert.strictEqual(servicePath, 'spanner.googleapis.com');
- assert(stub.called);
- stub.restore();
- });
-
- it('throws DeprecationWarning if static apiEndpoint is used', () => {
- const stub = sinon.stub(process, 'emitWarning');
- const apiEndpoint = spannerModule.v1.SpannerClient.apiEndpoint;
- assert.strictEqual(apiEndpoint, 'spanner.googleapis.com');
- assert(stub.called);
- stub.restore();
- });
- }
- it('sets apiEndpoint according to universe domain camelCase', () => {
- const client = new spannerModule.v1.SpannerClient({
- universeDomain: 'example.com',
- });
- const servicePath = client.apiEndpoint;
- assert.strictEqual(servicePath, 'spanner.example.com');
- });
+ if (typeof process === 'object' && typeof process.emitWarning === 'function') {
+ it('throws DeprecationWarning if static servicePath is used', () => {
+ const stub = sinon.stub(process, 'emitWarning');
+ const servicePath = spannerModule.v1.SpannerClient.servicePath;
+ assert.strictEqual(servicePath, 'spanner.googleapis.com');
+ assert(stub.called);
+ stub.restore();
+ });
+
+ it('throws DeprecationWarning if static apiEndpoint is used', () => {
+ const stub = sinon.stub(process, 'emitWarning');
+ const apiEndpoint = spannerModule.v1.SpannerClient.apiEndpoint;
+ assert.strictEqual(apiEndpoint, 'spanner.googleapis.com');
+ assert(stub.called);
+ stub.restore();
+ });
+ }
+ it('sets apiEndpoint according to universe domain camelCase', () => {
+ const client = new spannerModule.v1.SpannerClient({universeDomain: 'example.com'});
+ const servicePath = client.apiEndpoint;
+ assert.strictEqual(servicePath, 'spanner.example.com');
+ });
- it('sets apiEndpoint according to universe domain snakeCase', () => {
- const client = new spannerModule.v1.SpannerClient({
- universe_domain: 'example.com',
- });
- const servicePath = client.apiEndpoint;
- assert.strictEqual(servicePath, 'spanner.example.com');
- });
+ it('sets apiEndpoint according to universe domain snakeCase', () => {
+ const client = new spannerModule.v1.SpannerClient({universe_domain: 'example.com'});
+ const servicePath = client.apiEndpoint;
+ assert.strictEqual(servicePath, 'spanner.example.com');
+ });
- if (typeof process === 'object' && 'env' in process) {
- describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => {
- it('sets apiEndpoint from environment variable', () => {
- const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'];
- process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com';
- const client = new spannerModule.v1.SpannerClient();
- const servicePath = client.apiEndpoint;
- assert.strictEqual(servicePath, 'spanner.example.com');
- if (saved) {
- process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved;
- } else {
- delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'];
- }
- });
-
- it('value configured in code has priority over environment variable', () => {
- const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'];
- process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com';
- const client = new spannerModule.v1.SpannerClient({
- universeDomain: 'configured.example.com',
- });
- const servicePath = client.apiEndpoint;
- assert.strictEqual(servicePath, 'spanner.configured.example.com');
- if (saved) {
- process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved;
- } else {
- delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'];
- }
- });
- });
- }
- it('does not allow setting both universeDomain and universe_domain', () => {
- assert.throws(() => {
- new spannerModule.v1.SpannerClient({
- universe_domain: 'example.com',
- universeDomain: 'example.net',
+ if (typeof process === 'object' && 'env' in process) {
+ describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => {
+ it('sets apiEndpoint from environment variable', () => {
+ const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'];
+ process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com';
+ const client = new spannerModule.v1.SpannerClient();
+ const servicePath = client.apiEndpoint;
+ assert.strictEqual(servicePath, 'spanner.example.com');
+ if (saved) {
+ process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved;
+ } else {
+ delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'];
+ }
+ });
+
+ it('value configured in code has priority over environment variable', () => {
+ const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'];
+ process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com';
+ const client = new spannerModule.v1.SpannerClient({universeDomain: 'configured.example.com'});
+ const servicePath = client.apiEndpoint;
+ assert.strictEqual(servicePath, 'spanner.configured.example.com');
+ if (saved) {
+ process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved;
+ } else {
+ delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'];
+ }
+ });
+ });
+ }
+ it('does not allow setting both universeDomain and universe_domain', () => {
+ assert.throws(() => { new spannerModule.v1.SpannerClient({universe_domain: 'example.com', universeDomain: 'example.net'}); });
});
- });
- });
- it('has port', () => {
- const port = spannerModule.v1.SpannerClient.port;
- assert(port);
- assert(typeof port === 'number');
- });
+ it('has port', () => {
+ const port = spannerModule.v1.SpannerClient.port;
+ assert(port);
+ assert(typeof port === 'number');
+ });
- it('should create a client with no option', () => {
- const client = new spannerModule.v1.SpannerClient();
- assert(client);
- });
+ it('should create a client with no option', () => {
+ const client = new spannerModule.v1.SpannerClient();
+ assert(client);
+ });
- it('should create a client with gRPC fallback', () => {
- const client = new spannerModule.v1.SpannerClient({
- fallback: true,
- });
- assert(client);
- });
+ it('should create a client with gRPC fallback', () => {
+ const client = new spannerModule.v1.SpannerClient({
+ fallback: true,
+ });
+ assert(client);
+ });
- it('has initialize method and supports deferred initialization', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- assert.strictEqual(client.spannerStub, undefined);
- await client.initialize();
- assert(client.spannerStub);
- });
+ it('has initialize method and supports deferred initialization', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ assert.strictEqual(client.spannerStub, undefined);
+ await client.initialize();
+ assert(client.spannerStub);
+ });
- it('has close method for the initialized client', done => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- client.initialize().catch(err => {
- throw err;
- });
- assert(client.spannerStub);
- client
- .close()
- .then(() => {
- done();
- })
- .catch(err => {
- throw err;
+ it('has close method for the initialized client', done => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ client.initialize().catch(err => {throw err});
+ assert(client.spannerStub);
+ client.close().then(() => {
+ done();
+ }).catch(err => {throw err});
});
- });
- it('has close method for the non-initialized client', done => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- assert.strictEqual(client.spannerStub, undefined);
- client
- .close()
- .then(() => {
- done();
- })
- .catch(err => {
- throw err;
+ it('has close method for the non-initialized client', done => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ assert.strictEqual(client.spannerStub, undefined);
+ client.close().then(() => {
+ done();
+ }).catch(err => {throw err});
});
- });
- it('has getProjectId method', async () => {
- const fakeProjectId = 'fake-project-id';
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- client.auth.getProjectId = sinon.stub().resolves(fakeProjectId);
- const result = await client.getProjectId();
- assert.strictEqual(result, fakeProjectId);
- assert((client.auth.getProjectId as SinonStub).calledWithExactly());
- });
+ it('has getProjectId method', async () => {
+ const fakeProjectId = 'fake-project-id';
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ client.auth.getProjectId = sinon.stub().resolves(fakeProjectId);
+ const result = await client.getProjectId();
+ assert.strictEqual(result, fakeProjectId);
+ assert((client.auth.getProjectId as SinonStub).calledWithExactly());
+ });
- it('has getProjectId method with callback', async () => {
- const fakeProjectId = 'fake-project-id';
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- client.auth.getProjectId = sinon
- .stub()
- .callsArgWith(0, null, fakeProjectId);
- const promise = new Promise((resolve, reject) => {
- client.getProjectId((err?: Error | null, projectId?: string | null) => {
- if (err) {
- reject(err);
- } else {
- resolve(projectId);
- }
- });
- });
- const result = await promise;
- assert.strictEqual(result, fakeProjectId);
- });
- });
-
- describe('createSession', () => {
- it('invokes createSession without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.CreateSessionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.CreateSessionRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.Session(),
- );
- client.innerApiCalls.createSession = stubSimpleCall(expectedResponse);
- const [response] = await client.createSession(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.createSession as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.createSession as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ it('has getProjectId method with callback', async () => {
+ const fakeProjectId = 'fake-project-id';
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ client.auth.getProjectId = sinon.stub().callsArgWith(0, null, fakeProjectId);
+ const promise = new Promise((resolve, reject) => {
+ client.getProjectId((err?: Error|null, projectId?: string|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(projectId);
+ }
+ });
+ });
+ const result = await promise;
+ assert.strictEqual(result, fakeProjectId);
+ });
});
- it('invokes createSession without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.CreateSessionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.CreateSessionRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.Session(),
- );
- client.innerApiCalls.createSession =
- stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.createSession(
- request,
- (
- err?: Error | null,
- result?: protos.google.spanner.v1.ISession | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.createSession as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.createSession as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ describe('createSession', () => {
+ it('invokes createSession without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.CreateSessionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.CreateSessionRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.Session()
+ );
+ client.innerApiCalls.createSession = stubSimpleCall(expectedResponse);
+ const [response] = await client.createSession(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.createSession as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.createSession as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes createSession with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.CreateSessionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.CreateSessionRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.createSession = stubSimpleCall(
- undefined,
- expectedError,
- );
- await assert.rejects(client.createSession(request), expectedError);
- const actualRequest = (
- client.innerApiCalls.createSession as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.createSession as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes createSession without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.CreateSessionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.CreateSessionRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.Session()
+ );
+ client.innerApiCalls.createSession = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.createSession(
+ request,
+ (err?: Error|null, result?: protos.google.spanner.v1.ISession|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.createSession as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.createSession as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes createSession with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.CreateSessionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.CreateSessionRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- await assert.rejects(client.createSession(request), expectedError);
- });
- });
-
- describe('batchCreateSessions', () => {
- it('invokes batchCreateSessions without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.BatchCreateSessionsRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.BatchCreateSessionsRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.BatchCreateSessionsResponse(),
- );
- client.innerApiCalls.batchCreateSessions =
- stubSimpleCall(expectedResponse);
- const [response] = await client.batchCreateSessions(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.batchCreateSessions as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.batchCreateSessions as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes createSession with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.CreateSessionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.CreateSessionRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.createSession = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.createSession(request), expectedError);
+ const actualRequest = (client.innerApiCalls.createSession as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.createSession as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes batchCreateSessions without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.BatchCreateSessionsRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.BatchCreateSessionsRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.BatchCreateSessionsResponse(),
- );
- client.innerApiCalls.batchCreateSessions =
- stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.batchCreateSessions(
- request,
- (
- err?: Error | null,
- result?: protos.google.spanner.v1.IBatchCreateSessionsResponse | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.batchCreateSessions as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.batchCreateSessions as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ it('invokes createSession with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.CreateSessionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.CreateSessionRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ await assert.rejects(client.createSession(request), expectedError);
+ });
});
- it('invokes batchCreateSessions with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.BatchCreateSessionsRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.BatchCreateSessionsRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.batchCreateSessions = stubSimpleCall(
- undefined,
- expectedError,
- );
- await assert.rejects(client.batchCreateSessions(request), expectedError);
- const actualRequest = (
- client.innerApiCalls.batchCreateSessions as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.batchCreateSessions as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ describe('batchCreateSessions', () => {
+ it('invokes batchCreateSessions without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.BatchCreateSessionsRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.BatchCreateSessionsRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.BatchCreateSessionsResponse()
+ );
+ client.innerApiCalls.batchCreateSessions = stubSimpleCall(expectedResponse);
+ const [response] = await client.batchCreateSessions(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.batchCreateSessions as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.batchCreateSessions as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes batchCreateSessions with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.BatchCreateSessionsRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.BatchCreateSessionsRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- await assert.rejects(client.batchCreateSessions(request), expectedError);
- });
- });
-
- describe('getSession', () => {
- it('invokes getSession without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.GetSessionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.GetSessionRequest',
- ['name'],
- );
- request.name = defaultValue1;
- const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.Session(),
- );
- client.innerApiCalls.getSession = stubSimpleCall(expectedResponse);
- const [response] = await client.getSession(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.getSession as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.getSession as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes batchCreateSessions without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.BatchCreateSessionsRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.BatchCreateSessionsRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.BatchCreateSessionsResponse()
+ );
+ client.innerApiCalls.batchCreateSessions = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.batchCreateSessions(
+ request,
+ (err?: Error|null, result?: protos.google.spanner.v1.IBatchCreateSessionsResponse|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.batchCreateSessions as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.batchCreateSessions as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes getSession without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.GetSessionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.GetSessionRequest',
- ['name'],
- );
- request.name = defaultValue1;
- const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.Session(),
- );
- client.innerApiCalls.getSession =
- stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.getSession(
- request,
- (
- err?: Error | null,
- result?: protos.google.spanner.v1.ISession | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.getSession as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.getSession as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes batchCreateSessions with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.BatchCreateSessionsRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.BatchCreateSessionsRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.batchCreateSessions = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.batchCreateSessions(request), expectedError);
+ const actualRequest = (client.innerApiCalls.batchCreateSessions as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.batchCreateSessions as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes getSession with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.GetSessionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.GetSessionRequest',
- ['name'],
- );
- request.name = defaultValue1;
- const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.getSession = stubSimpleCall(
- undefined,
- expectedError,
- );
- await assert.rejects(client.getSession(request), expectedError);
- const actualRequest = (
- client.innerApiCalls.getSession as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.getSession as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ it('invokes batchCreateSessions with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.BatchCreateSessionsRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.BatchCreateSessionsRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ await assert.rejects(client.batchCreateSessions(request), expectedError);
+ });
});
- it('invokes getSession with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.GetSessionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.GetSessionRequest',
- ['name'],
- );
- request.name = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- await assert.rejects(client.getSession(request), expectedError);
- });
- });
-
- describe('deleteSession', () => {
- it('invokes deleteSession without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.DeleteSessionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.DeleteSessionRequest',
- ['name'],
- );
- request.name = defaultValue1;
- const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.protobuf.Empty(),
- );
- client.innerApiCalls.deleteSession = stubSimpleCall(expectedResponse);
- const [response] = await client.deleteSession(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.deleteSession as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.deleteSession as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ describe('getSession', () => {
+ it('invokes getSession without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.GetSessionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.GetSessionRequest', ['name']);
+ request.name = defaultValue1;
+ const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.Session()
+ );
+ client.innerApiCalls.getSession = stubSimpleCall(expectedResponse);
+ const [response] = await client.getSession(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.getSession as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.getSession as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes deleteSession without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.DeleteSessionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.DeleteSessionRequest',
- ['name'],
- );
- request.name = defaultValue1;
- const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.protobuf.Empty(),
- );
- client.innerApiCalls.deleteSession =
- stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.deleteSession(
- request,
- (
- err?: Error | null,
- result?: protos.google.protobuf.IEmpty | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.deleteSession as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.deleteSession as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes getSession without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.GetSessionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.GetSessionRequest', ['name']);
+ request.name = defaultValue1;
+ const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.Session()
+ );
+ client.innerApiCalls.getSession = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.getSession(
+ request,
+ (err?: Error|null, result?: protos.google.spanner.v1.ISession|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.getSession as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.getSession as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes deleteSession with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.DeleteSessionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.DeleteSessionRequest',
- ['name'],
- );
- request.name = defaultValue1;
- const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.deleteSession = stubSimpleCall(
- undefined,
- expectedError,
- );
- await assert.rejects(client.deleteSession(request), expectedError);
- const actualRequest = (
- client.innerApiCalls.deleteSession as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.deleteSession as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes getSession with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.GetSessionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.GetSessionRequest', ['name']);
+ request.name = defaultValue1;
+ const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.getSession = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.getSession(request), expectedError);
+ const actualRequest = (client.innerApiCalls.getSession as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.getSession as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes deleteSession with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.DeleteSessionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.DeleteSessionRequest',
- ['name'],
- );
- request.name = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- await assert.rejects(client.deleteSession(request), expectedError);
- });
- });
-
- describe('executeSql', () => {
- it('invokes executeSql without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteSqlRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ExecuteSqlRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.ResultSet(),
- );
- client.innerApiCalls.executeSql = stubSimpleCall(expectedResponse);
- const [response] = await client.executeSql(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.executeSql as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.executeSql as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ it('invokes getSession with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.GetSessionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.GetSessionRequest', ['name']);
+ request.name = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ await assert.rejects(client.getSession(request), expectedError);
+ });
});
- it('invokes executeSql without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteSqlRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ExecuteSqlRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.ResultSet(),
- );
- client.innerApiCalls.executeSql =
- stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.executeSql(
- request,
- (
- err?: Error | null,
- result?: protos.google.spanner.v1.IResultSet | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.executeSql as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.executeSql as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ describe('deleteSession', () => {
+ it('invokes deleteSession without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.DeleteSessionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.DeleteSessionRequest', ['name']);
+ request.name = defaultValue1;
+ const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.protobuf.Empty()
+ );
+ client.innerApiCalls.deleteSession = stubSimpleCall(expectedResponse);
+ const [response] = await client.deleteSession(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.deleteSession as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.deleteSession as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes executeSql with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteSqlRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ExecuteSqlRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.executeSql = stubSimpleCall(
- undefined,
- expectedError,
- );
- await assert.rejects(client.executeSql(request), expectedError);
- const actualRequest = (
- client.innerApiCalls.executeSql as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.executeSql as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes deleteSession without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.DeleteSessionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.DeleteSessionRequest', ['name']);
+ request.name = defaultValue1;
+ const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.protobuf.Empty()
+ );
+ client.innerApiCalls.deleteSession = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.deleteSession(
+ request,
+ (err?: Error|null, result?: protos.google.protobuf.IEmpty|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.deleteSession as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.deleteSession as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes executeSql with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteSqlRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ExecuteSqlRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- await assert.rejects(client.executeSql(request), expectedError);
- });
- });
-
- describe('executeBatchDml', () => {
- it('invokes executeBatchDml without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteBatchDmlRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ExecuteBatchDmlRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteBatchDmlResponse(),
- );
- client.innerApiCalls.executeBatchDml = stubSimpleCall(expectedResponse);
- const [response] = await client.executeBatchDml(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.executeBatchDml as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.executeBatchDml as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes deleteSession with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.DeleteSessionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.DeleteSessionRequest', ['name']);
+ request.name = defaultValue1;
+ const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.deleteSession = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.deleteSession(request), expectedError);
+ const actualRequest = (client.innerApiCalls.deleteSession as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.deleteSession as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes executeBatchDml without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteBatchDmlRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ExecuteBatchDmlRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteBatchDmlResponse(),
- );
- client.innerApiCalls.executeBatchDml =
- stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.executeBatchDml(
- request,
- (
- err?: Error | null,
- result?: protos.google.spanner.v1.IExecuteBatchDmlResponse | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.executeBatchDml as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.executeBatchDml as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ it('invokes deleteSession with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.DeleteSessionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.DeleteSessionRequest', ['name']);
+ request.name = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ await assert.rejects(client.deleteSession(request), expectedError);
+ });
});
- it('invokes executeBatchDml with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteBatchDmlRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ExecuteBatchDmlRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.executeBatchDml = stubSimpleCall(
- undefined,
- expectedError,
- );
- await assert.rejects(client.executeBatchDml(request), expectedError);
- const actualRequest = (
- client.innerApiCalls.executeBatchDml as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.executeBatchDml as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ describe('executeSql', () => {
+ it('invokes executeSql without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteSqlRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ExecuteSqlRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.ResultSet()
+ );
+ client.innerApiCalls.executeSql = stubSimpleCall(expectedResponse);
+ const [response] = await client.executeSql(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.executeSql as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.executeSql as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes executeBatchDml with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteBatchDmlRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ExecuteBatchDmlRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- await assert.rejects(client.executeBatchDml(request), expectedError);
- });
- });
-
- describe('read', () => {
- it('invokes read without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ReadRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ReadRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.ResultSet(),
- );
- client.innerApiCalls.read = stubSimpleCall(expectedResponse);
- const [response] = await client.read(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (client.innerApiCalls.read as SinonStub).getCall(0)
- .args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.read as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes executeSql without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteSqlRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ExecuteSqlRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.ResultSet()
+ );
+ client.innerApiCalls.executeSql = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.executeSql(
+ request,
+ (err?: Error|null, result?: protos.google.spanner.v1.IResultSet|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.executeSql as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.executeSql as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes read without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ReadRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ReadRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.ResultSet(),
- );
- client.innerApiCalls.read = stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.read(
- request,
- (
- err?: Error | null,
- result?: protos.google.spanner.v1.IResultSet | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (client.innerApiCalls.read as SinonStub).getCall(0)
- .args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.read as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes executeSql with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteSqlRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ExecuteSqlRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.executeSql = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.executeSql(request), expectedError);
+ const actualRequest = (client.innerApiCalls.executeSql as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.executeSql as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes read with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ReadRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ReadRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.read = stubSimpleCall(undefined, expectedError);
- await assert.rejects(client.read(request), expectedError);
- const actualRequest = (client.innerApiCalls.read as SinonStub).getCall(0)
- .args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.read as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ it('invokes executeSql with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteSqlRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ExecuteSqlRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ await assert.rejects(client.executeSql(request), expectedError);
+ });
});
- it('invokes read with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ReadRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ReadRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- await assert.rejects(client.read(request), expectedError);
- });
- });
-
- describe('beginTransaction', () => {
- it('invokes beginTransaction without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.BeginTransactionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.BeginTransactionRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.Transaction(),
- );
- client.innerApiCalls.beginTransaction = stubSimpleCall(expectedResponse);
- const [response] = await client.beginTransaction(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.beginTransaction as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.beginTransaction as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ describe('executeBatchDml', () => {
+ it('invokes executeBatchDml without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteBatchDmlRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ExecuteBatchDmlRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteBatchDmlResponse()
+ );
+ client.innerApiCalls.executeBatchDml = stubSimpleCall(expectedResponse);
+ const [response] = await client.executeBatchDml(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.executeBatchDml as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.executeBatchDml as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes beginTransaction without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.BeginTransactionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.BeginTransactionRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.Transaction(),
- );
- client.innerApiCalls.beginTransaction =
- stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.beginTransaction(
- request,
- (
- err?: Error | null,
- result?: protos.google.spanner.v1.ITransaction | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.beginTransaction as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.beginTransaction as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes executeBatchDml without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteBatchDmlRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ExecuteBatchDmlRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteBatchDmlResponse()
+ );
+ client.innerApiCalls.executeBatchDml = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.executeBatchDml(
+ request,
+ (err?: Error|null, result?: protos.google.spanner.v1.IExecuteBatchDmlResponse|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.executeBatchDml as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.executeBatchDml as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes beginTransaction with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.BeginTransactionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.BeginTransactionRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.beginTransaction = stubSimpleCall(
- undefined,
- expectedError,
- );
- await assert.rejects(client.beginTransaction(request), expectedError);
- const actualRequest = (
- client.innerApiCalls.beginTransaction as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.beginTransaction as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes executeBatchDml with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteBatchDmlRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ExecuteBatchDmlRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.executeBatchDml = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.executeBatchDml(request), expectedError);
+ const actualRequest = (client.innerApiCalls.executeBatchDml as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.executeBatchDml as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes beginTransaction with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.BeginTransactionRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.BeginTransactionRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- await assert.rejects(client.beginTransaction(request), expectedError);
- });
- });
-
- describe('commit', () => {
- it('invokes commit without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.CommitRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.CommitRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.CommitResponse(),
- );
- client.innerApiCalls.commit = stubSimpleCall(expectedResponse);
- const [response] = await client.commit(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (client.innerApiCalls.commit as SinonStub).getCall(
- 0,
- ).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.commit as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ it('invokes executeBatchDml with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteBatchDmlRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ExecuteBatchDmlRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ await assert.rejects(client.executeBatchDml(request), expectedError);
+ });
});
- it('invokes commit without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.CommitRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.CommitRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.CommitResponse(),
- );
- client.innerApiCalls.commit =
- stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.commit(
- request,
- (
- err?: Error | null,
- result?: protos.google.spanner.v1.ICommitResponse | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (client.innerApiCalls.commit as SinonStub).getCall(
- 0,
- ).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.commit as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ describe('read', () => {
+ it('invokes read without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ReadRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ReadRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.ResultSet()
+ );
+ client.innerApiCalls.read = stubSimpleCall(expectedResponse);
+ const [response] = await client.read(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.read as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.read as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes commit with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.CommitRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.CommitRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.commit = stubSimpleCall(undefined, expectedError);
- await assert.rejects(client.commit(request), expectedError);
- const actualRequest = (client.innerApiCalls.commit as SinonStub).getCall(
- 0,
- ).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.commit as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes read without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ReadRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ReadRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.ResultSet()
+ );
+ client.innerApiCalls.read = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.read(
+ request,
+ (err?: Error|null, result?: protos.google.spanner.v1.IResultSet|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.read as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.read as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes commit with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.CommitRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.CommitRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- await assert.rejects(client.commit(request), expectedError);
- });
- });
-
- describe('rollback', () => {
- it('invokes rollback without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.RollbackRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.RollbackRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.protobuf.Empty(),
- );
- client.innerApiCalls.rollback = stubSimpleCall(expectedResponse);
- const [response] = await client.rollback(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.rollback as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.rollback as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes read with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ReadRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ReadRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.read = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.read(request), expectedError);
+ const actualRequest = (client.innerApiCalls.read as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.read as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes rollback without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.RollbackRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.RollbackRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.protobuf.Empty(),
- );
- client.innerApiCalls.rollback =
- stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.rollback(
- request,
- (
- err?: Error | null,
- result?: protos.google.protobuf.IEmpty | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.rollback as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.rollback as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ it('invokes read with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ReadRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ReadRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ await assert.rejects(client.read(request), expectedError);
+ });
});
- it('invokes rollback with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.RollbackRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.RollbackRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.rollback = stubSimpleCall(undefined, expectedError);
- await assert.rejects(client.rollback(request), expectedError);
- const actualRequest = (
- client.innerApiCalls.rollback as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.rollback as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ describe('beginTransaction', () => {
+ it('invokes beginTransaction without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.BeginTransactionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.BeginTransactionRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.Transaction()
+ );
+ client.innerApiCalls.beginTransaction = stubSimpleCall(expectedResponse);
+ const [response] = await client.beginTransaction(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.beginTransaction as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.beginTransaction as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes rollback with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.RollbackRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.RollbackRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- await assert.rejects(client.rollback(request), expectedError);
- });
- });
-
- describe('partitionQuery', () => {
- it('invokes partitionQuery without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.PartitionQueryRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.PartitionQueryRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.PartitionResponse(),
- );
- client.innerApiCalls.partitionQuery = stubSimpleCall(expectedResponse);
- const [response] = await client.partitionQuery(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.partitionQuery as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.partitionQuery as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes beginTransaction without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.BeginTransactionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.BeginTransactionRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.Transaction()
+ );
+ client.innerApiCalls.beginTransaction = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.beginTransaction(
+ request,
+ (err?: Error|null, result?: protos.google.spanner.v1.ITransaction|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.beginTransaction as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.beginTransaction as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes partitionQuery without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.PartitionQueryRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.PartitionQueryRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.PartitionResponse(),
- );
- client.innerApiCalls.partitionQuery =
- stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.partitionQuery(
- request,
- (
- err?: Error | null,
- result?: protos.google.spanner.v1.IPartitionResponse | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.partitionQuery as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.partitionQuery as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes beginTransaction with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.BeginTransactionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.BeginTransactionRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.beginTransaction = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.beginTransaction(request), expectedError);
+ const actualRequest = (client.innerApiCalls.beginTransaction as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.beginTransaction as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes partitionQuery with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.PartitionQueryRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.PartitionQueryRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.partitionQuery = stubSimpleCall(
- undefined,
- expectedError,
- );
- await assert.rejects(client.partitionQuery(request), expectedError);
- const actualRequest = (
- client.innerApiCalls.partitionQuery as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.partitionQuery as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ it('invokes beginTransaction with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.BeginTransactionRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.BeginTransactionRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ await assert.rejects(client.beginTransaction(request), expectedError);
+ });
});
- it('invokes partitionQuery with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.PartitionQueryRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.PartitionQueryRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- await assert.rejects(client.partitionQuery(request), expectedError);
- });
- });
-
- describe('partitionRead', () => {
- it('invokes partitionRead without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.PartitionReadRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.PartitionReadRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.PartitionResponse(),
- );
- client.innerApiCalls.partitionRead = stubSimpleCall(expectedResponse);
- const [response] = await client.partitionRead(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.partitionRead as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.partitionRead as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ describe('commit', () => {
+ it('invokes commit without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.CommitRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.CommitRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.CommitResponse()
+ );
+ client.innerApiCalls.commit = stubSimpleCall(expectedResponse);
+ const [response] = await client.commit(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.commit as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.commit as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes partitionRead without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.PartitionReadRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.PartitionReadRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.PartitionResponse(),
- );
- client.innerApiCalls.partitionRead =
- stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.partitionRead(
- request,
- (
- err?: Error | null,
- result?: protos.google.spanner.v1.IPartitionResponse | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.partitionRead as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.partitionRead as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes commit without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.CommitRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.CommitRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.CommitResponse()
+ );
+ client.innerApiCalls.commit = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.commit(
+ request,
+ (err?: Error|null, result?: protos.google.spanner.v1.ICommitResponse|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.commit as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.commit as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes partitionRead with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.PartitionReadRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.PartitionReadRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.partitionRead = stubSimpleCall(
- undefined,
- expectedError,
- );
- await assert.rejects(client.partitionRead(request), expectedError);
- const actualRequest = (
- client.innerApiCalls.partitionRead as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.partitionRead as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes commit with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.CommitRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.CommitRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.commit = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.commit(request), expectedError);
+ const actualRequest = (client.innerApiCalls.commit as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.commit as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes partitionRead with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.PartitionReadRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.PartitionReadRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- await assert.rejects(client.partitionRead(request), expectedError);
- });
- });
-
- describe('executeStreamingSql', () => {
- it('invokes executeStreamingSql without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteSqlRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ExecuteSqlRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.PartialResultSet(),
- );
- client.innerApiCalls.executeStreamingSql =
- stubServerStreamingCall(expectedResponse);
- const stream = client.executeStreamingSql(request);
- const promise = new Promise((resolve, reject) => {
- stream.on(
- 'data',
- (response: protos.google.spanner.v1.PartialResultSet) => {
- resolve(response);
- },
- );
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.executeStreamingSql as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.executeStreamingSql as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ it('invokes commit with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.CommitRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.CommitRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ await assert.rejects(client.commit(request), expectedError);
+ });
});
- it('invokes executeStreamingSql without error and gaxServerStreamingRetries enabled', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- gaxServerStreamingRetries: true,
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteSqlRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ExecuteSqlRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.PartialResultSet(),
- );
- client.innerApiCalls.executeStreamingSql =
- stubServerStreamingCall(expectedResponse);
- const stream = client.executeStreamingSql(request);
- const promise = new Promise((resolve, reject) => {
- stream.on(
- 'data',
- (response: protos.google.spanner.v1.PartialResultSet) => {
- resolve(response);
- },
- );
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.executeStreamingSql as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.executeStreamingSql as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ describe('rollback', () => {
+ it('invokes rollback without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.RollbackRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.RollbackRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.protobuf.Empty()
+ );
+ client.innerApiCalls.rollback = stubSimpleCall(expectedResponse);
+ const [response] = await client.rollback(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.rollback as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.rollback as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes executeStreamingSql with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteSqlRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ExecuteSqlRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.executeStreamingSql = stubServerStreamingCall(
- undefined,
- expectedError,
- );
- const stream = client.executeStreamingSql(request);
- const promise = new Promise((resolve, reject) => {
- stream.on(
- 'data',
- (response: protos.google.spanner.v1.PartialResultSet) => {
- resolve(response);
- },
- );
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- await assert.rejects(promise, expectedError);
- const actualRequest = (
- client.innerApiCalls.executeStreamingSql as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.executeStreamingSql as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes rollback without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.RollbackRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.RollbackRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.protobuf.Empty()
+ );
+ client.innerApiCalls.rollback = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.rollback(
+ request,
+ (err?: Error|null, result?: protos.google.protobuf.IEmpty|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.rollback as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.rollback as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes executeStreamingSql with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ExecuteSqlRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ExecuteSqlRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- const stream = client.executeStreamingSql(request, {
- retryRequestOptions: {noResponseRetries: 0},
- });
- const promise = new Promise((resolve, reject) => {
- stream.on(
- 'data',
- (response: protos.google.spanner.v1.PartialResultSet) => {
- resolve(response);
- },
- );
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- await assert.rejects(promise, expectedError);
- });
- it('should create a client with gaxServerStreamingRetries enabled', () => {
- const client = new spannerModule.v1.SpannerClient({
- gaxServerStreamingRetries: true,
- });
- assert(client);
- });
- });
-
- describe('streamingRead', () => {
- it('invokes streamingRead without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ReadRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ReadRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.PartialResultSet(),
- );
- client.innerApiCalls.streamingRead =
- stubServerStreamingCall(expectedResponse);
- const stream = client.streamingRead(request);
- const promise = new Promise((resolve, reject) => {
- stream.on(
- 'data',
- (response: protos.google.spanner.v1.PartialResultSet) => {
- resolve(response);
- },
- );
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.streamingRead as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.streamingRead as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes rollback with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.RollbackRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.RollbackRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.rollback = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.rollback(request), expectedError);
+ const actualRequest = (client.innerApiCalls.rollback as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.rollback as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes streamingRead without error and gaxServerStreamingRetries enabled', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- gaxServerStreamingRetries: true,
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ReadRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ReadRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.PartialResultSet(),
- );
- client.innerApiCalls.streamingRead =
- stubServerStreamingCall(expectedResponse);
- const stream = client.streamingRead(request);
- const promise = new Promise((resolve, reject) => {
- stream.on(
- 'data',
- (response: protos.google.spanner.v1.PartialResultSet) => {
- resolve(response);
- },
- );
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.streamingRead as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.streamingRead as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ it('invokes rollback with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.RollbackRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.RollbackRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ await assert.rejects(client.rollback(request), expectedError);
+ });
});
- it('invokes streamingRead with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ReadRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ReadRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.streamingRead = stubServerStreamingCall(
- undefined,
- expectedError,
- );
- const stream = client.streamingRead(request);
- const promise = new Promise((resolve, reject) => {
- stream.on(
- 'data',
- (response: protos.google.spanner.v1.PartialResultSet) => {
- resolve(response);
- },
- );
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- await assert.rejects(promise, expectedError);
- const actualRequest = (
- client.innerApiCalls.streamingRead as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.streamingRead as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ describe('partitionQuery', () => {
+ it('invokes partitionQuery without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.PartitionQueryRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.PartitionQueryRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.PartitionResponse()
+ );
+ client.innerApiCalls.partitionQuery = stubSimpleCall(expectedResponse);
+ const [response] = await client.partitionQuery(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.partitionQuery as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.partitionQuery as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes streamingRead with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ReadRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ReadRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- const stream = client.streamingRead(request, {
- retryRequestOptions: {noResponseRetries: 0},
- });
- const promise = new Promise((resolve, reject) => {
- stream.on(
- 'data',
- (response: protos.google.spanner.v1.PartialResultSet) => {
- resolve(response);
- },
- );
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- await assert.rejects(promise, expectedError);
- });
- it('should create a client with gaxServerStreamingRetries enabled', () => {
- const client = new spannerModule.v1.SpannerClient({
- gaxServerStreamingRetries: true,
- });
- assert(client);
- });
- });
-
- describe('batchWrite', () => {
- it('invokes batchWrite without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.BatchWriteRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.BatchWriteRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.BatchWriteResponse(),
- );
- client.innerApiCalls.batchWrite =
- stubServerStreamingCall(expectedResponse);
- const stream = client.batchWrite(request);
- const promise = new Promise((resolve, reject) => {
- stream.on(
- 'data',
- (response: protos.google.spanner.v1.BatchWriteResponse) => {
- resolve(response);
- },
- );
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.batchWrite as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.batchWrite as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes partitionQuery without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.PartitionQueryRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.PartitionQueryRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.PartitionResponse()
+ );
+ client.innerApiCalls.partitionQuery = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.partitionQuery(
+ request,
+ (err?: Error|null, result?: protos.google.spanner.v1.IPartitionResponse|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.partitionQuery as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.partitionQuery as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes batchWrite without error and gaxServerStreamingRetries enabled', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- gaxServerStreamingRetries: true,
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.BatchWriteRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.BatchWriteRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedResponse = generateSampleMessage(
- new protos.google.spanner.v1.BatchWriteResponse(),
- );
- client.innerApiCalls.batchWrite =
- stubServerStreamingCall(expectedResponse);
- const stream = client.batchWrite(request);
- const promise = new Promise((resolve, reject) => {
- stream.on(
- 'data',
- (response: protos.google.spanner.v1.BatchWriteResponse) => {
- resolve(response);
- },
- );
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.batchWrite as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.batchWrite as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes partitionQuery with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.PartitionQueryRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.PartitionQueryRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.partitionQuery = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.partitionQuery(request), expectedError);
+ const actualRequest = (client.innerApiCalls.partitionQuery as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.partitionQuery as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes batchWrite with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.BatchWriteRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.BatchWriteRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedHeaderRequestParams = `session=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.batchWrite = stubServerStreamingCall(
- undefined,
- expectedError,
- );
- const stream = client.batchWrite(request);
- const promise = new Promise((resolve, reject) => {
- stream.on(
- 'data',
- (response: protos.google.spanner.v1.BatchWriteResponse) => {
- resolve(response);
- },
- );
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- await assert.rejects(promise, expectedError);
- const actualRequest = (
- client.innerApiCalls.batchWrite as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.batchWrite as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ it('invokes partitionQuery with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.PartitionQueryRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.PartitionQueryRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ await assert.rejects(client.partitionQuery(request), expectedError);
+ });
});
- it('invokes batchWrite with closed client', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.BatchWriteRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.BatchWriteRequest',
- ['session'],
- );
- request.session = defaultValue1;
- const expectedError = new Error('The client has already been closed.');
- client.close().catch(err => {
- throw err;
- });
- const stream = client.batchWrite(request, {
- retryRequestOptions: {noResponseRetries: 0},
- });
- const promise = new Promise((resolve, reject) => {
- stream.on(
- 'data',
- (response: protos.google.spanner.v1.BatchWriteResponse) => {
- resolve(response);
- },
- );
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- await assert.rejects(promise, expectedError);
- });
- it('should create a client with gaxServerStreamingRetries enabled', () => {
- const client = new spannerModule.v1.SpannerClient({
- gaxServerStreamingRetries: true,
- });
- assert(client);
- });
- });
-
- describe('listSessions', () => {
- it('invokes listSessions without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ListSessionsRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ListSessionsRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedResponse = [
- generateSampleMessage(new protos.google.spanner.v1.Session()),
- generateSampleMessage(new protos.google.spanner.v1.Session()),
- generateSampleMessage(new protos.google.spanner.v1.Session()),
- ];
- client.innerApiCalls.listSessions = stubSimpleCall(expectedResponse);
- const [response] = await client.listSessions(request);
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.listSessions as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.listSessions as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ describe('partitionRead', () => {
+ it('invokes partitionRead without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.PartitionReadRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.PartitionReadRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.PartitionResponse()
+ );
+ client.innerApiCalls.partitionRead = stubSimpleCall(expectedResponse);
+ const [response] = await client.partitionRead(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.partitionRead as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.partitionRead as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes listSessions without error using callback', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ListSessionsRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ListSessionsRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedResponse = [
- generateSampleMessage(new protos.google.spanner.v1.Session()),
- generateSampleMessage(new protos.google.spanner.v1.Session()),
- generateSampleMessage(new protos.google.spanner.v1.Session()),
- ];
- client.innerApiCalls.listSessions =
- stubSimpleCallWithCallback(expectedResponse);
- const promise = new Promise((resolve, reject) => {
- client.listSessions(
- request,
- (
- err?: Error | null,
- result?: protos.google.spanner.v1.ISession[] | null,
- ) => {
- if (err) {
- reject(err);
- } else {
- resolve(result);
- }
- },
- );
- });
- const response = await promise;
- assert.deepStrictEqual(response, expectedResponse);
- const actualRequest = (
- client.innerApiCalls.listSessions as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.listSessions as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes partitionRead without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.PartitionReadRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.PartitionReadRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.PartitionResponse()
+ );
+ client.innerApiCalls.partitionRead = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.partitionRead(
+ request,
+ (err?: Error|null, result?: protos.google.spanner.v1.IPartitionResponse|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.partitionRead as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.partitionRead as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes listSessions with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ListSessionsRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ListSessionsRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.innerApiCalls.listSessions = stubSimpleCall(
- undefined,
- expectedError,
- );
- await assert.rejects(client.listSessions(request), expectedError);
- const actualRequest = (
- client.innerApiCalls.listSessions as SinonStub
- ).getCall(0).args[0];
- assert.deepStrictEqual(actualRequest, request);
- const actualHeaderRequestParams = (
- client.innerApiCalls.listSessions as SinonStub
- ).getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
- assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
- });
+ it('invokes partitionRead with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.PartitionReadRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.PartitionReadRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.partitionRead = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.partitionRead(request), expectedError);
+ const actualRequest = (client.innerApiCalls.partitionRead as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.partitionRead as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
- it('invokes listSessionsStream without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ListSessionsRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ListSessionsRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedResponse = [
- generateSampleMessage(new protos.google.spanner.v1.Session()),
- generateSampleMessage(new protos.google.spanner.v1.Session()),
- generateSampleMessage(new protos.google.spanner.v1.Session()),
- ];
- client.descriptors.page.listSessions.createStream =
- stubPageStreamingCall(expectedResponse);
- const stream = client.listSessionsStream(request);
- const promise = new Promise((resolve, reject) => {
- const responses: protos.google.spanner.v1.Session[] = [];
- stream.on('data', (response: protos.google.spanner.v1.Session) => {
- responses.push(response);
- });
- stream.on('end', () => {
- resolve(responses);
- });
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- const responses = await promise;
- assert.deepStrictEqual(responses, expectedResponse);
- assert(
- (client.descriptors.page.listSessions.createStream as SinonStub)
- .getCall(0)
- .calledWith(client.innerApiCalls.listSessions, request),
- );
- assert(
- (client.descriptors.page.listSessions.createStream as SinonStub)
- .getCall(0)
- .args[2].otherArgs.headers[
- 'x-goog-request-params'
- ].includes(expectedHeaderRequestParams),
- );
+ it('invokes partitionRead with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.PartitionReadRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.PartitionReadRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ await assert.rejects(client.partitionRead(request), expectedError);
+ });
});
- it('invokes listSessionsStream with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ListSessionsRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ListSessionsRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.descriptors.page.listSessions.createStream = stubPageStreamingCall(
- undefined,
- expectedError,
- );
- const stream = client.listSessionsStream(request);
- const promise = new Promise((resolve, reject) => {
- const responses: protos.google.spanner.v1.Session[] = [];
- stream.on('data', (response: protos.google.spanner.v1.Session) => {
- responses.push(response);
- });
- stream.on('end', () => {
- resolve(responses);
- });
- stream.on('error', (err: Error) => {
- reject(err);
- });
- });
- await assert.rejects(promise, expectedError);
- assert(
- (client.descriptors.page.listSessions.createStream as SinonStub)
- .getCall(0)
- .calledWith(client.innerApiCalls.listSessions, request),
- );
- assert(
- (client.descriptors.page.listSessions.createStream as SinonStub)
- .getCall(0)
- .args[2].otherArgs.headers[
- 'x-goog-request-params'
- ].includes(expectedHeaderRequestParams),
- );
+ describe('executeStreamingSql', () => {
+ it('invokes executeStreamingSql without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteSqlRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ExecuteSqlRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.PartialResultSet()
+ );
+ client.innerApiCalls.executeStreamingSql = stubServerStreamingCall(expectedResponse);
+ const stream = client.executeStreamingSql(request);
+ const promise = new Promise((resolve, reject) => {
+ stream.on('data', (response: protos.google.spanner.v1.PartialResultSet) => {
+ resolve(response);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.executeStreamingSql as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.executeStreamingSql as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
+
+ it('invokes executeStreamingSql without error and gaxServerStreamingRetries enabled', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ gaxServerStreamingRetries: true
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteSqlRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ExecuteSqlRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.PartialResultSet()
+ );
+ client.innerApiCalls.executeStreamingSql = stubServerStreamingCall(expectedResponse);
+ const stream = client.executeStreamingSql(request);
+ const promise = new Promise((resolve, reject) => {
+ stream.on('data', (response: protos.google.spanner.v1.PartialResultSet) => {
+ resolve(response);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.executeStreamingSql as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.executeStreamingSql as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
+
+ it('invokes executeStreamingSql with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteSqlRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ExecuteSqlRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.executeStreamingSql = stubServerStreamingCall(undefined, expectedError);
+ const stream = client.executeStreamingSql(request);
+ const promise = new Promise((resolve, reject) => {
+ stream.on('data', (response: protos.google.spanner.v1.PartialResultSet) => {
+ resolve(response);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ await assert.rejects(promise, expectedError);
+ const actualRequest = (client.innerApiCalls.executeStreamingSql as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.executeStreamingSql as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
+
+ it('invokes executeStreamingSql with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ExecuteSqlRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ExecuteSqlRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ const stream = client.executeStreamingSql(request, {retryRequestOptions: {noResponseRetries: 0}});
+ const promise = new Promise((resolve, reject) => {
+ stream.on('data', (response: protos.google.spanner.v1.PartialResultSet) => {
+ resolve(response);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ await assert.rejects(promise, expectedError);
+ });
+ it('should create a client with gaxServerStreamingRetries enabled', () => {
+ const client = new spannerModule.v1.SpannerClient({
+ gaxServerStreamingRetries: true,
+ });
+ assert(client);
+ });
});
- it('uses async iteration with listSessions without error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ListSessionsRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ListSessionsRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedResponse = [
- generateSampleMessage(new protos.google.spanner.v1.Session()),
- generateSampleMessage(new protos.google.spanner.v1.Session()),
- generateSampleMessage(new protos.google.spanner.v1.Session()),
- ];
- client.descriptors.page.listSessions.asyncIterate =
- stubAsyncIterationCall(expectedResponse);
- const responses: protos.google.spanner.v1.ISession[] = [];
- const iterable = client.listSessionsAsync(request);
- for await (const resource of iterable) {
- responses.push(resource!);
- }
- assert.deepStrictEqual(responses, expectedResponse);
- assert.deepStrictEqual(
- (
- client.descriptors.page.listSessions.asyncIterate as SinonStub
- ).getCall(0).args[1],
- request,
- );
- assert(
- (client.descriptors.page.listSessions.asyncIterate as SinonStub)
- .getCall(0)
- .args[2].otherArgs.headers[
- 'x-goog-request-params'
- ].includes(expectedHeaderRequestParams),
- );
+ describe('streamingRead', () => {
+ it('invokes streamingRead without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ReadRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ReadRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.PartialResultSet()
+ );
+ client.innerApiCalls.streamingRead = stubServerStreamingCall(expectedResponse);
+ const stream = client.streamingRead(request);
+ const promise = new Promise((resolve, reject) => {
+ stream.on('data', (response: protos.google.spanner.v1.PartialResultSet) => {
+ resolve(response);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.streamingRead as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.streamingRead as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
+
+ it('invokes streamingRead without error and gaxServerStreamingRetries enabled', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ gaxServerStreamingRetries: true
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ReadRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ReadRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.PartialResultSet()
+ );
+ client.innerApiCalls.streamingRead = stubServerStreamingCall(expectedResponse);
+ const stream = client.streamingRead(request);
+ const promise = new Promise((resolve, reject) => {
+ stream.on('data', (response: protos.google.spanner.v1.PartialResultSet) => {
+ resolve(response);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.streamingRead as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.streamingRead as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
+
+ it('invokes streamingRead with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ReadRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ReadRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.streamingRead = stubServerStreamingCall(undefined, expectedError);
+ const stream = client.streamingRead(request);
+ const promise = new Promise((resolve, reject) => {
+ stream.on('data', (response: protos.google.spanner.v1.PartialResultSet) => {
+ resolve(response);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ await assert.rejects(promise, expectedError);
+ const actualRequest = (client.innerApiCalls.streamingRead as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.streamingRead as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
+
+ it('invokes streamingRead with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ReadRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ReadRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ const stream = client.streamingRead(request, {retryRequestOptions: {noResponseRetries: 0}});
+ const promise = new Promise((resolve, reject) => {
+ stream.on('data', (response: protos.google.spanner.v1.PartialResultSet) => {
+ resolve(response);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ await assert.rejects(promise, expectedError);
+ });
+ it('should create a client with gaxServerStreamingRetries enabled', () => {
+ const client = new spannerModule.v1.SpannerClient({
+ gaxServerStreamingRetries: true,
+ });
+ assert(client);
+ });
});
- it('uses async iteration with listSessions with error', async () => {
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- const request = generateSampleMessage(
- new protos.google.spanner.v1.ListSessionsRequest(),
- );
- const defaultValue1 = getTypeDefaultValue(
- '.google.spanner.v1.ListSessionsRequest',
- ['database'],
- );
- request.database = defaultValue1;
- const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`;
- const expectedError = new Error('expected');
- client.descriptors.page.listSessions.asyncIterate =
- stubAsyncIterationCall(undefined, expectedError);
- const iterable = client.listSessionsAsync(request);
- await assert.rejects(async () => {
- const responses: protos.google.spanner.v1.ISession[] = [];
- for await (const resource of iterable) {
- responses.push(resource!);
- }
- });
- assert.deepStrictEqual(
- (
- client.descriptors.page.listSessions.asyncIterate as SinonStub
- ).getCall(0).args[1],
- request,
- );
- assert(
- (client.descriptors.page.listSessions.asyncIterate as SinonStub)
- .getCall(0)
- .args[2].otherArgs.headers[
- 'x-goog-request-params'
- ].includes(expectedHeaderRequestParams),
- );
+ describe('batchWrite', () => {
+ it('invokes batchWrite without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.BatchWriteRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.BatchWriteRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.BatchWriteResponse()
+ );
+ client.innerApiCalls.batchWrite = stubServerStreamingCall(expectedResponse);
+ const stream = client.batchWrite(request);
+ const promise = new Promise((resolve, reject) => {
+ stream.on('data', (response: protos.google.spanner.v1.BatchWriteResponse) => {
+ resolve(response);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.batchWrite as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.batchWrite as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
+
+ it('invokes batchWrite without error and gaxServerStreamingRetries enabled', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ gaxServerStreamingRetries: true
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.BatchWriteRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.BatchWriteRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedResponse = generateSampleMessage(
+ new protos.google.spanner.v1.BatchWriteResponse()
+ );
+ client.innerApiCalls.batchWrite = stubServerStreamingCall(expectedResponse);
+ const stream = client.batchWrite(request);
+ const promise = new Promise((resolve, reject) => {
+ stream.on('data', (response: protos.google.spanner.v1.BatchWriteResponse) => {
+ resolve(response);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.batchWrite as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.batchWrite as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
+
+ it('invokes batchWrite with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.BatchWriteRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.BatchWriteRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedHeaderRequestParams = `session=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.batchWrite = stubServerStreamingCall(undefined, expectedError);
+ const stream = client.batchWrite(request);
+ const promise = new Promise((resolve, reject) => {
+ stream.on('data', (response: protos.google.spanner.v1.BatchWriteResponse) => {
+ resolve(response);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ await assert.rejects(promise, expectedError);
+ const actualRequest = (client.innerApiCalls.batchWrite as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.batchWrite as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
+
+ it('invokes batchWrite with closed client', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.BatchWriteRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.BatchWriteRequest', ['session']);
+ request.session = defaultValue1;
+ const expectedError = new Error('The client has already been closed.');
+ client.close().catch(err => {throw err});
+ const stream = client.batchWrite(request, {retryRequestOptions: {noResponseRetries: 0}});
+ const promise = new Promise((resolve, reject) => {
+ stream.on('data', (response: protos.google.spanner.v1.BatchWriteResponse) => {
+ resolve(response);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ await assert.rejects(promise, expectedError);
+ });
+ it('should create a client with gaxServerStreamingRetries enabled', () => {
+ const client = new spannerModule.v1.SpannerClient({
+ gaxServerStreamingRetries: true,
+ });
+ assert(client);
+ });
});
- });
-
- describe('Path templates', () => {
- describe('database', async () => {
- const fakePath = '/rendered/path/database';
- const expectedParameters = {
- project: 'projectValue',
- instance: 'instanceValue',
- database: 'databaseValue',
- };
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- client.pathTemplates.databasePathTemplate.render = sinon
- .stub()
- .returns(fakePath);
- client.pathTemplates.databasePathTemplate.match = sinon
- .stub()
- .returns(expectedParameters);
-
- it('databasePath', () => {
- const result = client.databasePath(
- 'projectValue',
- 'instanceValue',
- 'databaseValue',
- );
- assert.strictEqual(result, fakePath);
- assert(
- (client.pathTemplates.databasePathTemplate.render as SinonStub)
- .getCall(-1)
- .calledWith(expectedParameters),
- );
- });
-
- it('matchProjectFromDatabaseName', () => {
- const result = client.matchProjectFromDatabaseName(fakePath);
- assert.strictEqual(result, 'projectValue');
- assert(
- (client.pathTemplates.databasePathTemplate.match as SinonStub)
- .getCall(-1)
- .calledWith(fakePath),
- );
- });
-
- it('matchInstanceFromDatabaseName', () => {
- const result = client.matchInstanceFromDatabaseName(fakePath);
- assert.strictEqual(result, 'instanceValue');
- assert(
- (client.pathTemplates.databasePathTemplate.match as SinonStub)
- .getCall(-1)
- .calledWith(fakePath),
- );
- });
-
- it('matchDatabaseFromDatabaseName', () => {
- const result = client.matchDatabaseFromDatabaseName(fakePath);
- assert.strictEqual(result, 'databaseValue');
- assert(
- (client.pathTemplates.databasePathTemplate.match as SinonStub)
- .getCall(-1)
- .calledWith(fakePath),
- );
- });
+
+ describe('listSessions', () => {
+ it('invokes listSessions without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ListSessionsRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ListSessionsRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;const expectedResponse = [
+ generateSampleMessage(new protos.google.spanner.v1.Session()),
+ generateSampleMessage(new protos.google.spanner.v1.Session()),
+ generateSampleMessage(new protos.google.spanner.v1.Session()),
+ ];
+ client.innerApiCalls.listSessions = stubSimpleCall(expectedResponse);
+ const [response] = await client.listSessions(request);
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.listSessions as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.listSessions as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
+
+ it('invokes listSessions without error using callback', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ListSessionsRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ListSessionsRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;const expectedResponse = [
+ generateSampleMessage(new protos.google.spanner.v1.Session()),
+ generateSampleMessage(new protos.google.spanner.v1.Session()),
+ generateSampleMessage(new protos.google.spanner.v1.Session()),
+ ];
+ client.innerApiCalls.listSessions = stubSimpleCallWithCallback(expectedResponse);
+ const promise = new Promise((resolve, reject) => {
+ client.listSessions(
+ request,
+ (err?: Error|null, result?: protos.google.spanner.v1.ISession[]|null) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ });
+ const response = await promise;
+ assert.deepStrictEqual(response, expectedResponse);
+ const actualRequest = (client.innerApiCalls.listSessions as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.listSessions as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
+
+ it('invokes listSessions with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ListSessionsRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ListSessionsRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.innerApiCalls.listSessions = stubSimpleCall(undefined, expectedError);
+ await assert.rejects(client.listSessions(request), expectedError);
+ const actualRequest = (client.innerApiCalls.listSessions as SinonStub)
+ .getCall(0).args[0];
+ assert.deepStrictEqual(actualRequest, request);
+ const actualHeaderRequestParams = (client.innerApiCalls.listSessions as SinonStub)
+ .getCall(0).args[1].otherArgs.headers['x-goog-request-params'];
+ assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams));
+ });
+
+ it('invokes listSessionsStream without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ListSessionsRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ListSessionsRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;
+ const expectedResponse = [
+ generateSampleMessage(new protos.google.spanner.v1.Session()),
+ generateSampleMessage(new protos.google.spanner.v1.Session()),
+ generateSampleMessage(new protos.google.spanner.v1.Session()),
+ ];
+ client.descriptors.page.listSessions.createStream = stubPageStreamingCall(expectedResponse);
+ const stream = client.listSessionsStream(request);
+ const promise = new Promise((resolve, reject) => {
+ const responses: protos.google.spanner.v1.Session[] = [];
+ stream.on('data', (response: protos.google.spanner.v1.Session) => {
+ responses.push(response);
+ });
+ stream.on('end', () => {
+ resolve(responses);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ const responses = await promise;
+ assert.deepStrictEqual(responses, expectedResponse);
+ assert((client.descriptors.page.listSessions.createStream as SinonStub)
+ .getCall(0).calledWith(client.innerApiCalls.listSessions, request));
+ assert(
+ (client.descriptors.page.listSessions.createStream as SinonStub)
+ .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes(
+ expectedHeaderRequestParams
+ )
+ );
+ });
+
+ it('invokes listSessionsStream with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ListSessionsRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ListSessionsRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.descriptors.page.listSessions.createStream = stubPageStreamingCall(undefined, expectedError);
+ const stream = client.listSessionsStream(request);
+ const promise = new Promise((resolve, reject) => {
+ const responses: protos.google.spanner.v1.Session[] = [];
+ stream.on('data', (response: protos.google.spanner.v1.Session) => {
+ responses.push(response);
+ });
+ stream.on('end', () => {
+ resolve(responses);
+ });
+ stream.on('error', (err: Error) => {
+ reject(err);
+ });
+ });
+ await assert.rejects(promise, expectedError);
+ assert((client.descriptors.page.listSessions.createStream as SinonStub)
+ .getCall(0).calledWith(client.innerApiCalls.listSessions, request));
+ assert(
+ (client.descriptors.page.listSessions.createStream as SinonStub)
+ .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes(
+ expectedHeaderRequestParams
+ )
+ );
+ });
+
+ it('uses async iteration with listSessions without error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ListSessionsRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ListSessionsRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;
+ const expectedResponse = [
+ generateSampleMessage(new protos.google.spanner.v1.Session()),
+ generateSampleMessage(new protos.google.spanner.v1.Session()),
+ generateSampleMessage(new protos.google.spanner.v1.Session()),
+ ];
+ client.descriptors.page.listSessions.asyncIterate = stubAsyncIterationCall(expectedResponse);
+ const responses: protos.google.spanner.v1.ISession[] = [];
+ const iterable = client.listSessionsAsync(request);
+ for await (const resource of iterable) {
+ responses.push(resource!);
+ }
+ assert.deepStrictEqual(responses, expectedResponse);
+ assert.deepStrictEqual(
+ (client.descriptors.page.listSessions.asyncIterate as SinonStub)
+ .getCall(0).args[1], request);
+ assert(
+ (client.descriptors.page.listSessions.asyncIterate as SinonStub)
+ .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes(
+ expectedHeaderRequestParams
+ )
+ );
+ });
+
+ it('uses async iteration with listSessions with error', async () => {
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ const request = generateSampleMessage(
+ new protos.google.spanner.v1.ListSessionsRequest()
+ );
+ const defaultValue1 =
+ getTypeDefaultValue('.google.spanner.v1.ListSessionsRequest', ['database']);
+ request.database = defaultValue1;
+ const expectedHeaderRequestParams = `database=${defaultValue1 ?? '' }`;
+ const expectedError = new Error('expected');
+ client.descriptors.page.listSessions.asyncIterate = stubAsyncIterationCall(undefined, expectedError);
+ const iterable = client.listSessionsAsync(request);
+ await assert.rejects(async () => {
+ const responses: protos.google.spanner.v1.ISession[] = [];
+ for await (const resource of iterable) {
+ responses.push(resource!);
+ }
+ });
+ assert.deepStrictEqual(
+ (client.descriptors.page.listSessions.asyncIterate as SinonStub)
+ .getCall(0).args[1], request);
+ assert(
+ (client.descriptors.page.listSessions.asyncIterate as SinonStub)
+ .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes(
+ expectedHeaderRequestParams
+ )
+ );
+ });
});
- describe('session', async () => {
- const fakePath = '/rendered/path/session';
- const expectedParameters = {
- project: 'projectValue',
- instance: 'instanceValue',
- database: 'databaseValue',
- session: 'sessionValue',
- };
- const client = new spannerModule.v1.SpannerClient({
- credentials: {client_email: 'bogus', private_key: 'bogus'},
- projectId: 'bogus',
- });
- await client.initialize();
- client.pathTemplates.sessionPathTemplate.render = sinon
- .stub()
- .returns(fakePath);
- client.pathTemplates.sessionPathTemplate.match = sinon
- .stub()
- .returns(expectedParameters);
-
- it('sessionPath', () => {
- const result = client.sessionPath(
- 'projectValue',
- 'instanceValue',
- 'databaseValue',
- 'sessionValue',
- );
- assert.strictEqual(result, fakePath);
- assert(
- (client.pathTemplates.sessionPathTemplate.render as SinonStub)
- .getCall(-1)
- .calledWith(expectedParameters),
- );
- });
-
- it('matchProjectFromSessionName', () => {
- const result = client.matchProjectFromSessionName(fakePath);
- assert.strictEqual(result, 'projectValue');
- assert(
- (client.pathTemplates.sessionPathTemplate.match as SinonStub)
- .getCall(-1)
- .calledWith(fakePath),
- );
- });
-
- it('matchInstanceFromSessionName', () => {
- const result = client.matchInstanceFromSessionName(fakePath);
- assert.strictEqual(result, 'instanceValue');
- assert(
- (client.pathTemplates.sessionPathTemplate.match as SinonStub)
- .getCall(-1)
- .calledWith(fakePath),
- );
- });
-
- it('matchDatabaseFromSessionName', () => {
- const result = client.matchDatabaseFromSessionName(fakePath);
- assert.strictEqual(result, 'databaseValue');
- assert(
- (client.pathTemplates.sessionPathTemplate.match as SinonStub)
- .getCall(-1)
- .calledWith(fakePath),
- );
- });
-
- it('matchSessionFromSessionName', () => {
- const result = client.matchSessionFromSessionName(fakePath);
- assert.strictEqual(result, 'sessionValue');
- assert(
- (client.pathTemplates.sessionPathTemplate.match as SinonStub)
- .getCall(-1)
- .calledWith(fakePath),
- );
- });
+ describe('Path templates', () => {
+
+ describe('database', async () => {
+ const fakePath = "/rendered/path/database";
+ const expectedParameters = {
+ project: "projectValue",
+ instance: "instanceValue",
+ database: "databaseValue",
+ };
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ client.pathTemplates.databasePathTemplate.render =
+ sinon.stub().returns(fakePath);
+ client.pathTemplates.databasePathTemplate.match =
+ sinon.stub().returns(expectedParameters);
+
+ it('databasePath', () => {
+ const result = client.databasePath("projectValue", "instanceValue", "databaseValue");
+ assert.strictEqual(result, fakePath);
+ assert((client.pathTemplates.databasePathTemplate.render as SinonStub)
+ .getCall(-1).calledWith(expectedParameters));
+ });
+
+ it('matchProjectFromDatabaseName', () => {
+ const result = client.matchProjectFromDatabaseName(fakePath);
+ assert.strictEqual(result, "projectValue");
+ assert((client.pathTemplates.databasePathTemplate.match as SinonStub)
+ .getCall(-1).calledWith(fakePath));
+ });
+
+ it('matchInstanceFromDatabaseName', () => {
+ const result = client.matchInstanceFromDatabaseName(fakePath);
+ assert.strictEqual(result, "instanceValue");
+ assert((client.pathTemplates.databasePathTemplate.match as SinonStub)
+ .getCall(-1).calledWith(fakePath));
+ });
+
+ it('matchDatabaseFromDatabaseName', () => {
+ const result = client.matchDatabaseFromDatabaseName(fakePath);
+ assert.strictEqual(result, "databaseValue");
+ assert((client.pathTemplates.databasePathTemplate.match as SinonStub)
+ .getCall(-1).calledWith(fakePath));
+ });
+ });
+
+ describe('session', async () => {
+ const fakePath = "/rendered/path/session";
+ const expectedParameters = {
+ project: "projectValue",
+ instance: "instanceValue",
+ database: "databaseValue",
+ session: "sessionValue",
+ };
+ const client = new spannerModule.v1.SpannerClient({
+ credentials: {client_email: 'bogus', private_key: 'bogus'},
+ projectId: 'bogus',
+ });
+ await client.initialize();
+ client.pathTemplates.sessionPathTemplate.render =
+ sinon.stub().returns(fakePath);
+ client.pathTemplates.sessionPathTemplate.match =
+ sinon.stub().returns(expectedParameters);
+
+ it('sessionPath', () => {
+ const result = client.sessionPath("projectValue", "instanceValue", "databaseValue", "sessionValue");
+ assert.strictEqual(result, fakePath);
+ assert((client.pathTemplates.sessionPathTemplate.render as SinonStub)
+ .getCall(-1).calledWith(expectedParameters));
+ });
+
+ it('matchProjectFromSessionName', () => {
+ const result = client.matchProjectFromSessionName(fakePath);
+ assert.strictEqual(result, "projectValue");
+ assert((client.pathTemplates.sessionPathTemplate.match as SinonStub)
+ .getCall(-1).calledWith(fakePath));
+ });
+
+ it('matchInstanceFromSessionName', () => {
+ const result = client.matchInstanceFromSessionName(fakePath);
+ assert.strictEqual(result, "instanceValue");
+ assert((client.pathTemplates.sessionPathTemplate.match as SinonStub)
+ .getCall(-1).calledWith(fakePath));
+ });
+
+ it('matchDatabaseFromSessionName', () => {
+ const result = client.matchDatabaseFromSessionName(fakePath);
+ assert.strictEqual(result, "databaseValue");
+ assert((client.pathTemplates.sessionPathTemplate.match as SinonStub)
+ .getCall(-1).calledWith(fakePath));
+ });
+
+ it('matchSessionFromSessionName', () => {
+ const result = client.matchSessionFromSessionName(fakePath);
+ assert.strictEqual(result, "sessionValue");
+ assert((client.pathTemplates.sessionPathTemplate.match as SinonStub)
+ .getCall(-1).calledWith(fakePath));
+ });
+ });
});
- });
});
diff --git a/handwritten/spanner/webpack.config.js b/handwritten/spanner/webpack.config.js
index c8dbdbf75e1e..ee59a732626b 100644
--- a/handwritten/spanner/webpack.config.js
+++ b/handwritten/spanner/webpack.config.js
@@ -36,27 +36,27 @@ module.exports = {
{
test: /\.tsx?$/,
use: 'ts-loader',
- exclude: /node_modules/,
+ exclude: /node_modules/
},
{
test: /node_modules[\\/]@grpc[\\/]grpc-js/,
- use: 'null-loader',
+ use: 'null-loader'
},
{
test: /node_modules[\\/]grpc/,
- use: 'null-loader',
+ use: 'null-loader'
},
{
test: /node_modules[\\/]retry-request/,
- use: 'null-loader',
+ use: 'null-loader'
},
{
test: /node_modules[\\/]https?-proxy-agent/,
- use: 'null-loader',
+ use: 'null-loader'
},
{
test: /node_modules[\\/]gtoken/,
- use: 'null-loader',
+ use: 'null-loader'
},
],
},
diff --git a/protos/google/spanner/admin/database/v1/backup.proto b/protos/google/spanner/admin/database/v1/backup.proto
new file mode 100644
index 000000000000..6898814c4217
--- /dev/null
+++ b/protos/google/spanner/admin/database/v1/backup.proto
@@ -0,0 +1,773 @@
+// Copyright 2025 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.
+
+syntax = "proto3";
+
+package google.spanner.admin.database.v1;
+
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/timestamp.proto";
+import "google/spanner/admin/database/v1/common.proto";
+
+option csharp_namespace = "Google.Cloud.Spanner.Admin.Database.V1";
+option go_package = "cloud.google.com/go/spanner/admin/database/apiv1/databasepb;databasepb";
+option java_multiple_files = true;
+option java_outer_classname = "BackupProto";
+option java_package = "com.google.spanner.admin.database.v1";
+option php_namespace = "Google\\Cloud\\Spanner\\Admin\\Database\\V1";
+option ruby_package = "Google::Cloud::Spanner::Admin::Database::V1";
+
+// A backup of a Cloud Spanner database.
+message Backup {
+ option (google.api.resource) = {
+ type: "spanner.googleapis.com/Backup"
+ pattern: "projects/{project}/instances/{instance}/backups/{backup}"
+ };
+
+ // Indicates the current state of the backup.
+ enum State {
+ // Not specified.
+ STATE_UNSPECIFIED = 0;
+
+ // The pending backup is still being created. Operations on the
+ // backup may fail with `FAILED_PRECONDITION` in this state.
+ CREATING = 1;
+
+ // The backup is complete and ready for use.
+ READY = 2;
+ }
+
+ // Required for the
+ // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]
+ // operation. Name of the database from which this backup was created. This
+ // needs to be in the same instance as the backup. Values are of the form
+ // `projects//instances//databases/`.
+ string database = 2 [(google.api.resource_reference) = {
+ type: "spanner.googleapis.com/Database"
+ }];
+
+ // The backup will contain an externally consistent copy of the database at
+ // the timestamp specified by `version_time`. If `version_time` is not
+ // specified, the system will set `version_time` to the `create_time` of the
+ // backup.
+ google.protobuf.Timestamp version_time = 9;
+
+ // Required for the
+ // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]
+ // operation. The expiration time of the backup, with microseconds
+ // granularity that must be at least 6 hours and at most 366 days
+ // from the time the CreateBackup request is processed. Once the `expire_time`
+ // has passed, the backup is eligible to be automatically deleted by Cloud
+ // Spanner to free the resources used by the backup.
+ google.protobuf.Timestamp expire_time = 3;
+
+ // 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//instances//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
+ // `projects//instances/`.
+ string name = 1;
+
+ // Output only. The time the
+ // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]
+ // request is received. If the request does not specify `version_time`, the
+ // `version_time` of the backup will be equivalent to the `create_time`.
+ google.protobuf.Timestamp create_time = 4
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Size of the backup in bytes.
+ int64 size_bytes = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The number of bytes that will be freed by deleting this
+ // backup. This value will be zero if, for example, this backup is part of an
+ // incremental backup chain and younger backups in the chain require that we
+ // keep its data. For backups not in an incremental backup chain, this is
+ // always the size of the backup. This value may change if backups on the same
+ // chain get created, deleted or expired.
+ int64 freeable_size_bytes = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. For a backup in an incremental backup chain, this is the
+ // storage space needed to keep the data that has changed since the previous
+ // backup. For all other backups, this is always the size of the backup. This
+ // value may change if backups on the same chain get deleted or expired.
+ //
+ // This field can be used to calculate the total storage space used by a set
+ // of backups. For example, the total space used by all backups of a database
+ // can be computed by summing up this field.
+ int64 exclusive_size_bytes = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The current state of the backup.
+ State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The names of the restored databases that reference the backup.
+ // The database names are of
+ // the form `projects//instances//databases/`.
+ // Referencing databases may exist in different instances. The existence of
+ // any referencing database prevents the backup from being deleted. When a
+ // restored database from the backup enters the `READY` state, the reference
+ // to the backup is removed.
+ repeated string referencing_databases = 7 [
+ (google.api.field_behavior) = OUTPUT_ONLY,
+ (google.api.resource_reference) = {
+ type: "spanner.googleapis.com/Database"
+ }
+ ];
+
+ // Output only. The encryption information for the backup.
+ EncryptionInfo encryption_info = 8
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The encryption information for the backup, whether it is
+ // protected by one or more KMS keys. The information includes all Cloud
+ // KMS key versions used to encrypt the backup. The `encryption_status' field
+ // inside of each `EncryptionInfo` is not populated. At least one of the key
+ // versions must be available for the backup to be restored. If a key version
+ // is revoked in the middle of a restore, the restore behavior is undefined.
+ repeated EncryptionInfo encryption_information = 13
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The database dialect information for the backup.
+ DatabaseDialect database_dialect = 10
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The names of the destination backups being created by copying
+ // this source backup. The backup names are of the form
+ // `projects//instances//backups/`.
+ // Referencing backups may exist in different instances. The existence of
+ // any referencing backup prevents the backup from being deleted. When the
+ // copy operation is done (either successfully completed or cancelled or the
+ // destination backup is deleted), the reference to the backup is removed.
+ repeated string referencing_backups = 11 [
+ (google.api.field_behavior) = OUTPUT_ONLY,
+ (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" }
+ ];
+
+ // Output only. The max allowed expiration time of the backup, with
+ // microseconds granularity. A backup's expiration time can be configured in
+ // multiple APIs: CreateBackup, UpdateBackup, CopyBackup. When updating or
+ // copying an existing backup, the expiration time specified must be
+ // less than `Backup.max_expire_time`.
+ google.protobuf.Timestamp max_expire_time = 12
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. List of backup schedule URIs that are associated with
+ // creating this backup. This is only applicable for scheduled backups, and
+ // is empty for on-demand backups.
+ //
+ // To optimize for storage, whenever possible, multiple schedules are
+ // collapsed together to create one backup. In such cases, this field captures
+ // the list of all backup schedule URIs that are associated with creating
+ // this backup. If collapsing is not done, then this field captures the
+ // single backup schedule URI associated with creating this backup.
+ repeated string backup_schedules = 14 [
+ (google.api.field_behavior) = OUTPUT_ONLY,
+ (google.api.resource_reference) = {
+ type: "spanner.googleapis.com/BackupSchedule"
+ }
+ ];
+
+ // Output only. Populated only for backups in an incremental backup chain.
+ // Backups share the same chain id if and only if they belong to the same
+ // incremental backup chain. Use this field to determine which backups are
+ // part of the same incremental backup chain. The ordering of backups in the
+ // chain can be determined by ordering the backup `version_time`.
+ string incremental_backup_chain_id = 17
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Data deleted at a time older than this is guaranteed not to be
+ // retained in order to support this backup. For a backup in an incremental
+ // backup chain, this is the version time of the oldest backup that exists or
+ // ever existed in the chain. For all other backups, this is the version time
+ // of the backup. This field can be used to understand what data is being
+ // retained by the backup system.
+ google.protobuf.Timestamp oldest_version_time = 18
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The instance partition(s) storing the backup.
+ //
+ // This is the same as the list of the instance partition(s) that the database
+ // had footprint in at the backup's `version_time`.
+ repeated BackupInstancePartition instance_partitions = 19
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+}
+
+// The request for
+// [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup].
+message CreateBackupRequest {
+ // Required. The name of the instance in which the backup will be
+ // created. This must be the same instance that contains the database the
+ // backup will be created from. The backup will be stored in the
+ // location(s) specified in the instance configuration of this
+ // instance. Values are of the form
+ // `projects//instances/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "spanner.googleapis.com/Instance"
+ }
+ ];
+
+ // Required. The id of the backup to be created. The `backup_id` appended to
+ // `parent` forms the full backup name of the form
+ // `projects//instances//backups/`.
+ string backup_id = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The backup to create.
+ Backup backup = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The encryption configuration used to encrypt the backup. If this
+ // field is not specified, the backup will use the same encryption
+ // configuration as the database by default, namely
+ // [encryption_type][google.spanner.admin.database.v1.CreateBackupEncryptionConfig.encryption_type]
+ // = `USE_DATABASE_ENCRYPTION`.
+ CreateBackupEncryptionConfig encryption_config = 4
+ [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Metadata type for the operation returned by
+// [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup].
+message CreateBackupMetadata {
+ // The name of the backup being created.
+ string name = 1 [
+ (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" }
+ ];
+
+ // The name of the database the backup is created from.
+ string database = 2 [(google.api.resource_reference) = {
+ type: "spanner.googleapis.com/Database"
+ }];
+
+ // The progress of the
+ // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]
+ // operation.
+ OperationProgress progress = 3;
+
+ // The time at which cancellation of this operation was received.
+ // [Operations.CancelOperation][google.longrunning.Operations.CancelOperation]
+ // starts asynchronous cancellation on a long-running operation. The server
+ // makes a best effort to cancel the operation, but success is not guaranteed.
+ // Clients can use
+ // [Operations.GetOperation][google.longrunning.Operations.GetOperation] or
+ // other methods to check whether the cancellation succeeded or whether the
+ // operation completed despite cancellation. On successful cancellation,
+ // the operation is not deleted; instead, it becomes an operation with
+ // an [Operation.error][google.longrunning.Operation.error] value with a
+ // [google.rpc.Status.code][google.rpc.Status.code] of 1,
+ // corresponding to `Code.CANCELLED`.
+ google.protobuf.Timestamp cancel_time = 4;
+}
+
+// The request for
+// [CopyBackup][google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup].
+message CopyBackupRequest {
+ // Required. The name of the destination instance that will contain the backup
+ // copy. Values are of the form: `projects//instances/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "spanner.googleapis.com/Instance"
+ }
+ ];
+
+ // Required. The id of the backup copy.
+ // The `backup_id` appended to `parent` forms the full backup_uri of the form
+ // `projects//instances//backups/`.
+ string backup_id = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The source backup to be copied.
+ // The source backup needs to be in READY state for it to be copied.
+ // Once CopyBackup is in progress, the source backup cannot be deleted or
+ // cleaned up on expiration until CopyBackup is finished.
+ // Values are of the form:
+ // `projects//instances//backups/`.
+ string source_backup = 3 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" }
+ ];
+
+ // Required. The expiration time of the backup in microsecond granularity.
+ // The expiration time must be at least 6 hours and at most 366 days
+ // from the `create_time` of the source backup. Once the `expire_time` has
+ // passed, the backup is eligible to be automatically deleted by Cloud Spanner
+ // to free the resources used by the backup.
+ google.protobuf.Timestamp expire_time = 4
+ [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The encryption configuration used to encrypt the backup. If this
+ // field is not specified, the backup will use the same encryption
+ // configuration as the source backup by default, namely
+ // [encryption_type][google.spanner.admin.database.v1.CopyBackupEncryptionConfig.encryption_type]
+ // = `USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION`.
+ CopyBackupEncryptionConfig encryption_config = 5
+ [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Metadata type for the operation returned by
+// [CopyBackup][google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup].
+message CopyBackupMetadata {
+ // The name of the backup being created through the copy operation.
+ // Values are of the form
+ // `projects//instances//backups/`.
+ string name = 1 [
+ (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" }
+ ];
+
+ // The name of the source backup that is being copied.
+ // Values are of the form
+ // `projects//instances//backups/`.
+ string source_backup = 2 [
+ (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" }
+ ];
+
+ // The progress of the
+ // [CopyBackup][google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup]
+ // operation.
+ OperationProgress progress = 3;
+
+ // The time at which cancellation of CopyBackup operation was received.
+ // [Operations.CancelOperation][google.longrunning.Operations.CancelOperation]
+ // starts asynchronous cancellation on a long-running operation. The server
+ // makes a best effort to cancel the operation, but success is not guaranteed.
+ // Clients can use
+ // [Operations.GetOperation][google.longrunning.Operations.GetOperation] or
+ // other methods to check whether the cancellation succeeded or whether the
+ // operation completed despite cancellation. On successful cancellation,
+ // the operation is not deleted; instead, it becomes an operation with
+ // an [Operation.error][google.longrunning.Operation.error] value with a
+ // [google.rpc.Status.code][google.rpc.Status.code] of 1,
+ // corresponding to `Code.CANCELLED`.
+ google.protobuf.Timestamp cancel_time = 4;
+}
+
+// The request for
+// [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup].
+message UpdateBackupRequest {
+ // Required. The backup to update. `backup.name`, and the fields to be updated
+ // as specified by `update_mask` are required. Other fields are ignored.
+ // Update is only supported for the following fields:
+ // * `backup.expire_time`.
+ Backup backup = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. A mask specifying which fields (e.g. `expire_time`) in the
+ // Backup resource should be updated. This mask is relative to the Backup
+ // resource, not to the request message. The field mask must always be
+ // specified; this prevents any future fields from being erased accidentally
+ // by clients that do not know about them.
+ google.protobuf.FieldMask update_mask = 2
+ [(google.api.field_behavior) = REQUIRED];
+}
+
+// The request for
+// [GetBackup][google.spanner.admin.database.v1.DatabaseAdmin.GetBackup].
+message GetBackupRequest {
+ // Required. Name of the backup.
+ // Values are of the form
+ // `projects//instances//backups/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" }
+ ];
+}
+
+// The request for
+// [DeleteBackup][google.spanner.admin.database.v1.DatabaseAdmin.DeleteBackup].
+message DeleteBackupRequest {
+ // Required. Name of the backup to delete.
+ // Values are of the form
+ // `projects//instances//backups/`.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" }
+ ];
+}
+
+// The request for
+// [ListBackups][google.spanner.admin.database.v1.DatabaseAdmin.ListBackups].
+message ListBackupsRequest {
+ // Required. The instance to list backups from. Values are of the
+ // form `projects//instances/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "spanner.googleapis.com/Instance"
+ }
+ ];
+
+ // 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`
+ // * `create_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
+ // * `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`
+ // * `backup_schedules`
+ //
+ // 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".
+ // * `state:CREATING` - The backup is pending creation.
+ // * `state:READY` - The backup is fully created and ready for use.
+ // * `(name:howl) AND (create_time < \"2018-03-28T14:50:00Z\")`
+ // - The backup name contains the string "howl" and `create_time`
+ // of the backup is before 2018-03-28T14:50:00Z.
+ // * `expire_time < \"2018-03-28T14:50:00Z\"`
+ // - The backup `expire_time` is before 2018-03-28T14:50:00Z.
+ // * `size_bytes > 10000000000` - The backup's size is greater than 10GB
+ // * `backup_schedules:daily`
+ // - The backup is created from a schedule with "daily" in its name.
+ string filter = 2;
+
+ // Number of backups to be returned in the response. If 0 or
+ // less, defaults to the server's maximum allowed page size.
+ int32 page_size = 3;
+
+ // If non-empty, `page_token` should contain a
+ // [next_page_token][google.spanner.admin.database.v1.ListBackupsResponse.next_page_token]
+ // from a previous
+ // [ListBackupsResponse][google.spanner.admin.database.v1.ListBackupsResponse]
+ // to the same `parent` and with the same `filter`.
+ string page_token = 4;
+}
+
+// The response for
+// [ListBackups][google.spanner.admin.database.v1.DatabaseAdmin.ListBackups].
+message ListBackupsResponse {
+ // The list of matching backups. Backups returned are ordered by `create_time`
+ // in descending order, starting from the most recent `create_time`.
+ repeated Backup backups = 1;
+
+ // `next_page_token` can be sent in a subsequent
+ // [ListBackups][google.spanner.admin.database.v1.DatabaseAdmin.ListBackups]
+ // call to fetch more of the matching backups.
+ string next_page_token = 2;
+}
+
+// The request for
+// [ListBackupOperations][google.spanner.admin.database.v1.DatabaseAdmin.ListBackupOperations].
+message ListBackupOperationsRequest {
+ // Required. The instance of the backup operations. Values are of
+ // the form `projects//instances/`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "spanner.googleapis.com/Instance"
+ }
+ ];
+
+ // 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
+ // for
+ // [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata]
+ // is
+ // `type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata`.
+ // * `metadata.` - any field in metadata.value.
+ // `metadata.@type` must be specified first if filtering on metadata
+ // fields.
+ // * `error` - Error associated with the long-running operation.
+ // * `response.@type` - the type of response.
+ // * `response.` - 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:
+ // * The operation's metadata type is
+ // [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata].
+ // * The source database name of backup contains the string "prod".
+ // * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
+ // `(metadata.name:howl) AND` \
+ // `(metadata.progress.start_time < \"2018-03-28T14:50:00Z\") AND` \
+ // `(error:*)` - Returns operations where:
+ // * The operation's metadata type is
+ // [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata].
+ // * The backup name contains the string "howl".
+ // * The operation started before 2018-03-28T14:50:00Z.
+ // * The operation resulted in an error.
+ // * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CopyBackupMetadata) AND` \
+ // `(metadata.source_backup:test) AND` \
+ // `(metadata.progress.start_time < \"2022-01-18T14:50:00Z\") AND` \
+ // `(error:*)` - Returns operations where:
+ // * The operation's metadata type is
+ // [CopyBackupMetadata][google.spanner.admin.database.v1.CopyBackupMetadata].
+ // * The source backup name contains the string "test".
+ // * The operation started before 2022-01-18T14:50:00Z.
+ // * The operation resulted in an error.
+ // * `((metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
+ // `(metadata.database:test_db)) OR` \
+ // `((metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CopyBackupMetadata)
+ // AND` \
+ // `(metadata.source_backup:test_bkp)) AND` \
+ // `(error:*)` - Returns operations where:
+ // * The operation's metadata matches either of criteria:
+ // * The operation's metadata type is
+ // [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata]
+ // AND the source database name of the backup contains the string
+ // "test_db"
+ // * The operation's metadata type is
+ // [CopyBackupMetadata][google.spanner.admin.database.v1.CopyBackupMetadata]
+ // AND the source backup name contains the string "test_bkp"
+ // * The operation resulted in an error.
+ string filter = 2;
+
+ // Number of operations to be returned in the response. If 0 or
+ // less, defaults to the server's maximum allowed page size.
+ int32 page_size = 3;
+
+ // If non-empty, `page_token` should contain a
+ // [next_page_token][google.spanner.admin.database.v1.ListBackupOperationsResponse.next_page_token]
+ // from a previous
+ // [ListBackupOperationsResponse][google.spanner.admin.database.v1.ListBackupOperationsResponse]
+ // to the same `parent` and with the same `filter`.
+ string page_token = 4;
+}
+
+// The response for
+// [ListBackupOperations][google.spanner.admin.database.v1.DatabaseAdmin.ListBackupOperations].
+message ListBackupOperationsResponse {
+ // The list of matching backup [long-running
+ // operations][google.longrunning.Operation]. Each operation's name will be
+ // prefixed by the backup's name. The operation's
+ // [metadata][google.longrunning.Operation.metadata] field type
+ // `metadata.type_url` describes the type of the metadata. Operations returned
+ // include those that are pending or have completed/failed/canceled within the
+ // last 7 days. Operations returned are ordered by
+ // `operation.metadata.value.progress.start_time` in descending order starting
+ // from the most recently started operation.
+ repeated google.longrunning.Operation operations = 1;
+
+ // `next_page_token` can be sent in a subsequent
+ // [ListBackupOperations][google.spanner.admin.database.v1.DatabaseAdmin.ListBackupOperations]
+ // call to fetch more of the matching metadata.
+ string next_page_token = 2;
+}
+
+// Information about a backup.
+message BackupInfo {
+ // Name of the backup.
+ string backup = 1 [
+ (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" }
+ ];
+
+ // The backup contains an externally consistent copy of `source_database` at
+ // the timestamp specified by `version_time`. If the
+ // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]
+ // request did not specify `version_time`, the `version_time` of the backup is
+ // equivalent to the `create_time`.
+ google.protobuf.Timestamp version_time = 4;
+
+ // The time the
+ // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]
+ // request was received.
+ google.protobuf.Timestamp create_time = 2;
+
+ // Name of the database the backup was created from.
+ string source_database = 3 [(google.api.resource_reference) = {
+ type: "spanner.googleapis.com/Database"
+ }];
+}
+
+// Encryption configuration for the backup to create.
+message CreateBackupEncryptionConfig {
+ // Encryption types for the backup.
+ enum EncryptionType {
+ // Unspecified. Do not use.
+ ENCRYPTION_TYPE_UNSPECIFIED = 0;
+
+ // Use the same encryption configuration as the database. This is the
+ // default option when
+ // [encryption_config][google.spanner.admin.database.v1.CreateBackupEncryptionConfig]
+ // is empty. For example, if the database is using
+ // `Customer_Managed_Encryption`, the backup will be using the same Cloud
+ // KMS key as the database.
+ USE_DATABASE_ENCRYPTION = 1;
+
+ // Use Google default encryption.
+ GOOGLE_DEFAULT_ENCRYPTION = 2;
+
+ // Use customer managed encryption. If specified, `kms_key_name`
+ // must contain a valid Cloud KMS key.
+ CUSTOMER_MANAGED_ENCRYPTION = 3;
+ }
+
+ // Required. The encryption type of the backup.
+ EncryptionType encryption_type = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The Cloud KMS key that will be used to protect the backup.
+ // This field should be set only when
+ // [encryption_type][google.spanner.admin.database.v1.CreateBackupEncryptionConfig.encryption_type]
+ // is `CUSTOMER_MANAGED_ENCRYPTION`. Values are of the form
+ // `projects//locations//keyRings//cryptoKeys/`.
+ string kms_key_name = 2 [
+ (google.api.field_behavior) = OPTIONAL,
+ (google.api.resource_reference) = {
+ type: "cloudkms.googleapis.com/CryptoKey"
+ }
+ ];
+
+ // Optional. Specifies the KMS configuration for the one or more keys used to
+ // protect the backup. Values are of the form
+ // `projects//locations//keyRings//cryptoKeys/`.
+ //
+ // The keys referenced by kms_key_names must fully cover all
+ // regions of the backup's instance configuration. Some examples:
+ // * For single region instance configs, specify a single regional
+ // location KMS key.
+ // * For multi-regional instance configs of type GOOGLE_MANAGED,
+ // either specify a multi-regional location KMS key or multiple regional
+ // location KMS keys that cover all regions in the instance config.
+ // * For an instance config of type USER_MANAGED, please specify only
+ // regional location KMS keys to cover each region in the instance config.
+ // Multi-regional location KMS keys are not supported for USER_MANAGED
+ // instance configs.
+ repeated string kms_key_names = 3 [
+ (google.api.field_behavior) = OPTIONAL,
+ (google.api.resource_reference) = {
+ type: "cloudkms.googleapis.com/CryptoKey"
+ }
+ ];
+}
+
+// Encryption configuration for the copied backup.
+message CopyBackupEncryptionConfig {
+ // Encryption types for the backup.
+ enum EncryptionType {
+ // Unspecified. Do not use.
+ ENCRYPTION_TYPE_UNSPECIFIED = 0;
+
+ // This is the default option for
+ // [CopyBackup][google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup]
+ // when
+ // [encryption_config][google.spanner.admin.database.v1.CopyBackupEncryptionConfig]
+ // is not specified. For example, if the source backup is using
+ // `Customer_Managed_Encryption`, the backup will be using the same Cloud
+ // KMS key as the source backup.
+ USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION = 1;
+
+ // Use Google default encryption.
+ GOOGLE_DEFAULT_ENCRYPTION = 2;
+
+ // Use customer managed encryption. If specified, either `kms_key_name` or
+ // `kms_key_names` must contain valid Cloud KMS key(s).
+ CUSTOMER_MANAGED_ENCRYPTION = 3;
+ }
+
+ // Required. The encryption type of the backup.
+ EncryptionType encryption_type = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The Cloud KMS key that will be used to protect the backup.
+ // This field should be set only when
+ // [encryption_type][google.spanner.admin.database.v1.CopyBackupEncryptionConfig.encryption_type]
+ // is `CUSTOMER_MANAGED_ENCRYPTION`. Values are of the form
+ // `projects//locations//keyRings//cryptoKeys/`.
+ string kms_key_name = 2 [
+ (google.api.field_behavior) = OPTIONAL,
+ (google.api.resource_reference) = {
+ type: "cloudkms.googleapis.com/CryptoKey"
+ }
+ ];
+
+ // Optional. Specifies the KMS configuration for the one or more keys used to
+ // protect the backup. Values are of the form
+ // `projects//locations//keyRings//cryptoKeys/`.
+ // Kms keys specified can be in any order.
+ //
+ // The keys referenced by kms_key_names must fully cover all
+ // regions of the backup's instance configuration. Some examples:
+ // * For single region instance configs, specify a single regional
+ // location KMS key.
+ // * For multi-regional instance configs of type GOOGLE_MANAGED,
+ // either specify a multi-regional location KMS key or multiple regional
+ // location KMS keys that cover all regions in the instance config.
+ // * For an instance config of type USER_MANAGED, please specify only
+ // regional location KMS keys to cover each region in the instance config.
+ // Multi-regional location KMS keys are not supported for USER_MANAGED
+ // instance configs.
+ repeated string kms_key_names = 3 [
+ (google.api.field_behavior) = OPTIONAL,
+ (google.api.resource_reference) = {
+ type: "cloudkms.googleapis.com/CryptoKey"
+ }
+ ];
+}
+
+// The specification for full backups.
+// A full backup stores the entire contents of the database at a given
+// version time.
+message FullBackupSpec {}
+
+// The specification for incremental backup chains.
+// An incremental backup stores the delta of changes between a previous
+// backup and the database contents at a given version time. An
+// incremental backup chain consists of a full backup and zero or more
+// successive incremental backups. The first backup created for an
+// incremental backup chain is always a full backup.
+message IncrementalBackupSpec {}
+
+// Instance partition information for the backup.
+message BackupInstancePartition {
+ // A unique identifier for the instance partition. Values are of the form
+ // `projects//instances/