From beeda491dc5969c03e4f19783379ff0bce883ce8 Mon Sep 17 00:00:00 2001 From: Benjamin Coe Date: Tue, 7 Jan 2020 18:01:00 -0800 Subject: [PATCH 001/158] feat: stub out initial version of library --- .../CODE_OF_CONDUCT.md | 43 ++++ .../google-cloud-recommender/CONTRIBUTING.md | 65 ++++++ packages/google-cloud-recommender/LICENSE | 202 ++++++++++++++++++ packages/google-cloud-recommender/README.md | 95 ++++++++ packages/google-cloud-recommender/synth.py | 53 +++++ 5 files changed, 458 insertions(+) create mode 100644 packages/google-cloud-recommender/CODE_OF_CONDUCT.md create mode 100644 packages/google-cloud-recommender/CONTRIBUTING.md create mode 100644 packages/google-cloud-recommender/LICENSE create mode 100644 packages/google-cloud-recommender/README.md create mode 100644 packages/google-cloud-recommender/synth.py diff --git a/packages/google-cloud-recommender/CODE_OF_CONDUCT.md b/packages/google-cloud-recommender/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000..46b2a08ea6d --- /dev/null +++ b/packages/google-cloud-recommender/CODE_OF_CONDUCT.md @@ -0,0 +1,43 @@ +# Contributor 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. + +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. + +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. + +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/) diff --git a/packages/google-cloud-recommender/CONTRIBUTING.md b/packages/google-cloud-recommender/CONTRIBUTING.md new file mode 100644 index 00000000000..f6c4cf010e3 --- /dev/null +++ b/packages/google-cloud-recommender/CONTRIBUTING.md @@ -0,0 +1,65 @@ +# How to become a contributor and submit your own code + +**Table of contents** + +* [Contributor License Agreements](#contributor-license-agreements) +* [Contributing a patch](#contributing-a-patch) +* [Running the tests](#running-the-tests) +* [Releasing the library](#releasing-the-library) + +## Contributor License Agreements + +We'd love to accept your sample apps and patches! Before we can take them, we +have to jump a couple of legal hurdles. + +Please fill out either the individual or corporate Contributor License Agreement +(CLA). + + * 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. + +## Contributing A Patch + +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. + +## Running the tests + +1. [Prepare your environment for Node.js setup][setup]. + +1. Install dependencies: + + npm install + +1. Run the tests: + + # Run unit tests. + npm test + + # Run sample integration tests. + gcloud auth application-default login + npm run samples-test + + # Run all system tests. + gcloud auth application-default login + npm run system-test + +1. Lint (and maybe fix) any changes: + + npm run fix + +[setup]: https://cloud.google.com/nodejs/docs/setup diff --git a/packages/google-cloud-recommender/LICENSE b/packages/google-cloud-recommender/LICENSE new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/packages/google-cloud-recommender/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md new file mode 100644 index 00000000000..e6cf43adc5c --- /dev/null +++ b/packages/google-cloud-recommender/README.md @@ -0,0 +1,95 @@ +[//]: # "This README.md file is auto-generated, all changes to this file will be lost." +[//]: # "To regenerate it, use `python -m synthtool`." +Google Cloud Platform logo + +# [Recommender: Node.js Client](https://github.com/googleapis/nodejs-recommender) + +[![release level](https://img.shields.io/badge/release%20level-beta-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) +[![npm version](https://img.shields.io/npm/v/@google-cloud/recommender.svg)](https://www.npmjs.org/package/@google-cloud/recommender) +[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-recommender/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-recommender) + + + + +Recommender client for Node.js + + +* [Recommender Node.js Client API Reference][client-docs] +* [Recommender Documentation][product-docs] +* [github.com/googleapis/nodejs-recommender](https://github.com/googleapis/nodejs-recommender) + +Read more about the client libraries for Cloud APIs, including the older +Google APIs Client Libraries, in [Client Libraries Explained][explained]. + +[explained]: https://cloud.google.com/apis/docs/client-libraries-explained + +**Table of contents:** + + +* [Quickstart](#quickstart) + * [Before you begin](#before-you-begin) + * [Installing the client library](#installing-the-client-library) + + +* [Versioning](#versioning) +* [Contributing](#contributing) +* [License](#license) + +## Quickstart + +### Before you begin + +1. [Select or create a Cloud Platform project][projects]. +1. [Enable billing for your project][billing]. +1. [Enable the Recommender API][enable_api]. +1. [Set up authentication with a service account][auth] so you can access the + API from your local workstation. + +### Installing the client library + +```bash +npm install @google-cloud/recommender +``` + + + + + +The [Recommender Node.js Client API Reference][client-docs] documentation +also contains samples. + +## Versioning + +This library follows [Semantic Versioning](http://semver.org/). + + + +This library is considered to be in **beta**. This means it is expected to be +mostly stable while we work toward a general availability release; however, +complete stability is not guaranteed. We will address issues and requests +against beta libraries with a high priority. + + + + +More Information: [Google Cloud Platform Launch Stages][launch_stages] + +[launch_stages]: https://cloud.google.com/terms/launch-stages + +## Contributing + +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-recommender/blob/master/CONTRIBUTING.md). + +## License + +Apache Version 2.0 + +See [LICENSE](https://github.com/googleapis/nodejs-recommender/blob/master/LICENSE) + +[client-docs]: https://googleapis.dev/nodejs/recommender/latest/index.html +[product-docs]: https://cloud.google.com/recommender/docs +[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png +[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=recommender.googleapis.com +[auth]: https://cloud.google.com/docs/authentication/getting-started diff --git a/packages/google-cloud-recommender/synth.py b/packages/google-cloud-recommender/synth.py new file mode 100644 index 00000000000..5230df43608 --- /dev/null +++ b/packages/google-cloud-recommender/synth.py @@ -0,0 +1,53 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# 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. + +"""This script is used to synthesize generated parts of this library.""" + +import synthtool as s +import synthtool.gcp as gcp +import subprocess +import logging + +logging.basicConfig(level=logging.DEBUG) + +# Run the gapic generator +gapic = gcp.GAPICMicrogenerator() +name = 'recommender' +versions = ['v1beta1'] +for version in versions: + library = gapic.typescript_library( + name, + version, + proto_path=f'google/cloud/{name}/{version}', + generator_args={ + 'grpc-service-config': f'google/cloud/{name}/{version}/{name}_grpc_service_config.json', + 'package-name': f'@google-cloud/{name}', + 'main-service': 'DataCatalog', # just for webpack.config.js + }, + extra_proto_files=['google/cloud/common_resources.proto'], + ) + s.copy(library, excludes=['README.md']) + +# Copy common templates +common_templates = gcp.CommonTemplates() +templates = common_templates.node_library(source_location='build/src') +s.copy(templates, excludes=[]) + +# Fix broken links to cloud.google.com documentation +s.replace('src/v1beta1/*.ts', '/data-catalog/docs/', 'https://cloud.google.com/data-catalog/docs/') + +# Node.js specific cleanup +subprocess.run(['npm', 'install']) +subprocess.run(['npm', 'run', 'fix']) +subprocess.run(['npx', 'compileProtos', 'src']) From 18016a9fafb5f6217575d945bde40480ef4dc948 Mon Sep 17 00:00:00 2001 From: Benjamin Coe Date: Tue, 14 Jan 2020 10:05:02 -0800 Subject: [PATCH 002/158] chore: check-in initial files --- .../google-cloud-recommender/.repo-metadata.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 packages/google-cloud-recommender/.repo-metadata.json diff --git a/packages/google-cloud-recommender/.repo-metadata.json b/packages/google-cloud-recommender/.repo-metadata.json new file mode 100644 index 00000000000..18bd2dcd933 --- /dev/null +++ b/packages/google-cloud-recommender/.repo-metadata.json @@ -0,0 +1,13 @@ +{ + "name": "recommender", + "name_pretty": "Recommender", + "product_documentation": "https://cloud.google.com/recommender/docs", + "client_documentation": "https://googleapis.dev/nodejs/recommender/latest/index.html", + "issue_tracker": "", + "release_level": "beta", + "language": "nodejs", + "repo": "googleapis/nodejs-recommender", + "distribution_name": "@google-cloud/recommender", + "api_id": "recommender.googleapis.com", + "requires_billing": true +} From 5ef5aeb13404a1535f9e39a8a283b4c0f709a5f7 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 14 Jan 2020 14:09:27 -0800 Subject: [PATCH 003/158] feat!: initial generation of library (#1) --- .../google-cloud-recommender/.eslintignore | 5 + .../google-cloud-recommender/.eslintrc.yml | 15 + packages/google-cloud-recommender/.gitignore | 15 + packages/google-cloud-recommender/.jsdoc.js | 48 + packages/google-cloud-recommender/.nycrc | 24 + .../google-cloud-recommender/.prettierignore | 3 + packages/google-cloud-recommender/.prettierrc | 8 + .../google-cloud-recommender/codecov.yaml | 4 + .../linkinator.config.json | 7 + .../google-cloud-recommender/package.json | 55 + .../google/cloud/common_resources.proto | 52 + .../recommender/v1beta1/recommendation.proto | 277 + .../v1beta1/recommender_service.proto | 229 + .../protos/protos.d.ts | 5943 ++++++ .../google-cloud-recommender/protos/protos.js | 15679 ++++++++++++++++ .../protos/protos.json | 1612 ++ .../samples/package.json | 23 + .../samples/quickstart.js | 52 + .../samples/test/quickstart.js | 38 + .../google-cloud-recommender/src/index.ts | 24 + .../src/v1beta1/index.ts | 19 + .../src/v1beta1/recommender_client.ts | 971 + .../v1beta1/recommender_client_config.json | 51 + .../src/v1beta1/recommender_proto_list.json | 4 + .../google-cloud-recommender/synth.metadata | 3348 ++++ packages/google-cloud-recommender/synth.py | 2 +- .../system-test/fixtures/sample/src/index.js | 27 + .../system-test/fixtures/sample/src/index.ts | 25 + .../system-test/install.ts | 51 + .../test/gapic-recommender-v1beta1.ts | 334 + .../google-cloud-recommender/tsconfig.json | 19 + packages/google-cloud-recommender/tslint.json | 3 + .../webpack.config.js | 64 + 33 files changed, 29030 insertions(+), 1 deletion(-) create mode 100644 packages/google-cloud-recommender/.eslintignore create mode 100644 packages/google-cloud-recommender/.eslintrc.yml create mode 100644 packages/google-cloud-recommender/.gitignore create mode 100644 packages/google-cloud-recommender/.jsdoc.js create mode 100644 packages/google-cloud-recommender/.nycrc create mode 100644 packages/google-cloud-recommender/.prettierignore create mode 100644 packages/google-cloud-recommender/.prettierrc create mode 100644 packages/google-cloud-recommender/codecov.yaml create mode 100644 packages/google-cloud-recommender/linkinator.config.json create mode 100644 packages/google-cloud-recommender/package.json create mode 100644 packages/google-cloud-recommender/protos/google/cloud/common_resources.proto create mode 100644 packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommendation.proto create mode 100644 packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommender_service.proto create mode 100644 packages/google-cloud-recommender/protos/protos.d.ts create mode 100644 packages/google-cloud-recommender/protos/protos.js create mode 100644 packages/google-cloud-recommender/protos/protos.json create mode 100644 packages/google-cloud-recommender/samples/package.json create mode 100644 packages/google-cloud-recommender/samples/quickstart.js create mode 100644 packages/google-cloud-recommender/samples/test/quickstart.js create mode 100644 packages/google-cloud-recommender/src/index.ts create mode 100644 packages/google-cloud-recommender/src/v1beta1/index.ts create mode 100644 packages/google-cloud-recommender/src/v1beta1/recommender_client.ts create mode 100644 packages/google-cloud-recommender/src/v1beta1/recommender_client_config.json create mode 100644 packages/google-cloud-recommender/src/v1beta1/recommender_proto_list.json create mode 100644 packages/google-cloud-recommender/synth.metadata create mode 100644 packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js create mode 100644 packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts create mode 100644 packages/google-cloud-recommender/system-test/install.ts create mode 100644 packages/google-cloud-recommender/test/gapic-recommender-v1beta1.ts create mode 100644 packages/google-cloud-recommender/tsconfig.json create mode 100644 packages/google-cloud-recommender/tslint.json create mode 100644 packages/google-cloud-recommender/webpack.config.js diff --git a/packages/google-cloud-recommender/.eslintignore b/packages/google-cloud-recommender/.eslintignore new file mode 100644 index 00000000000..09b31fe735a --- /dev/null +++ b/packages/google-cloud-recommender/.eslintignore @@ -0,0 +1,5 @@ +**/node_modules +src/**/doc/* +build/ +docs/ +protos/ diff --git a/packages/google-cloud-recommender/.eslintrc.yml b/packages/google-cloud-recommender/.eslintrc.yml new file mode 100644 index 00000000000..73eeec27612 --- /dev/null +++ b/packages/google-cloud-recommender/.eslintrc.yml @@ -0,0 +1,15 @@ +--- +extends: + - 'eslint:recommended' + - 'plugin:node/recommended' + - prettier +plugins: + - node + - prettier +rules: + prettier/prettier: error + block-scoped-var: error + eqeqeq: error + no-warning-comments: warn + no-var: error + prefer-const: error diff --git a/packages/google-cloud-recommender/.gitignore b/packages/google-cloud-recommender/.gitignore new file mode 100644 index 00000000000..e1a76628b30 --- /dev/null +++ b/packages/google-cloud-recommender/.gitignore @@ -0,0 +1,15 @@ +**/*.log +**/node_modules +.coverage +coverage +.nyc_output +docs/ +out/ +build/ +system-test/secrets.js +system-test/*key.json +*.lock +.DS_Store +package-lock.json +__pycache__ + diff --git a/packages/google-cloud-recommender/.jsdoc.js b/packages/google-cloud-recommender/.jsdoc.js new file mode 100644 index 00000000000..d8609b488ec --- /dev/null +++ b/packages/google-cloud-recommender/.jsdoc.js @@ -0,0 +1,48 @@ +// Copyright 2019 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. +// + +'use strict'; + +module.exports = { + opts: { + readme: './README.md', + package: './package.json', + template: './node_modules/jsdoc-fresh', + recurse: true, + verbose: true, + destination: './docs/' + }, + plugins: [ + 'plugins/markdown', + 'jsdoc-region-tag' + ], + source: { + excludePattern: '(^|\\/|\\\\)[._]', + include: [ + 'build/src' + ], + includePattern: '\\.js$' + }, + templates: { + copyright: 'Copyright 2018 Google, LLC.', + includeDate: false, + sourceFiles: false, + systemName: '@google-cloud/recommender', + theme: 'lumen' + }, + markdown: { + idInHeadings: true + } +}; diff --git a/packages/google-cloud-recommender/.nycrc b/packages/google-cloud-recommender/.nycrc new file mode 100644 index 00000000000..b18d5472b62 --- /dev/null +++ b/packages/google-cloud-recommender/.nycrc @@ -0,0 +1,24 @@ +{ + "report-dir": "./.coverage", + "reporter": ["text", "lcov"], + "exclude": [ + "**/*-test", + "**/.coverage", + "**/apis", + "**/benchmark", + "**/conformance", + "**/docs", + "**/samples", + "**/scripts", + "**/protos", + "**/test", + "**/*.d.ts", + ".jsdoc.js", + "**/.jsdoc.js", + "karma.conf.js", + "webpack-tests.config.js", + "webpack.config.js" + ], + "exclude-after-remap": false, + "all": true +} diff --git a/packages/google-cloud-recommender/.prettierignore b/packages/google-cloud-recommender/.prettierignore new file mode 100644 index 00000000000..f6fac98b0a8 --- /dev/null +++ b/packages/google-cloud-recommender/.prettierignore @@ -0,0 +1,3 @@ +node_modules/* +samples/node_modules/* +src/**/doc/* diff --git a/packages/google-cloud-recommender/.prettierrc b/packages/google-cloud-recommender/.prettierrc new file mode 100644 index 00000000000..df6eac07446 --- /dev/null +++ b/packages/google-cloud-recommender/.prettierrc @@ -0,0 +1,8 @@ +--- +bracketSpacing: false +printWidth: 80 +semi: true +singleQuote: true +tabWidth: 2 +trailingComma: es5 +useTabs: false diff --git a/packages/google-cloud-recommender/codecov.yaml b/packages/google-cloud-recommender/codecov.yaml new file mode 100644 index 00000000000..5724ea9478d --- /dev/null +++ b/packages/google-cloud-recommender/codecov.yaml @@ -0,0 +1,4 @@ +--- +codecov: + ci: + - source.cloud.google.com diff --git a/packages/google-cloud-recommender/linkinator.config.json b/packages/google-cloud-recommender/linkinator.config.json new file mode 100644 index 00000000000..d780d6bfff5 --- /dev/null +++ b/packages/google-cloud-recommender/linkinator.config.json @@ -0,0 +1,7 @@ +{ + "recurse": true, + "skip": [ + "https://codecov.io/gh/googleapis/", + "www.googleapis.com" + ] +} diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json new file mode 100644 index 00000000000..714a174a805 --- /dev/null +++ b/packages/google-cloud-recommender/package.json @@ -0,0 +1,55 @@ +{ + "name": "@google-cloud/recommender", + "version": "0.1.0", + "description": "Recommender client for Node.js", + "repository": "googleapis/nodejs-recommender", + "license": "Apache-2.0", + "author": "Google LLC", + "files": [ + "build/src", + "build/protos" + ], + "main": "build/src/index.js", + "scripts": { + "clean": "gts clean", + "compile": "tsc -p . && cp -r protos build/", + "compile-protos": "compileProtos src", + "docs": "jsdoc -c .jsdoc.js", + "docs-test": "linkinator docs", + "fix": "gts fix && eslint samples --fix", + "lint": "gts check && eslint samples", + "predocs-test": "npm run docs", + "prepare": "npm run compile-protos && npm run compile", + "system-test": "c8 mocha build/system-test", + "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", + "test": "c8 mocha build/test" + }, + "dependencies": { + "google-gax": "^1.12.0" + }, + "devDependencies": { + "@types/mocha": "^5.2.5", + "@types/node": "^12.0.0", + "c8": "^6.0.0", + "eslint": "^6.8.0", + "eslint-config-prettier": "^6.9.0", + "eslint-plugin-node": "^11.0.0", + "eslint-plugin-prettier": "^3.1.2", + "gts": "^1.0.0", + "jsdoc": "^3.5.5", + "jsdoc-fresh": "^1.0.1", + "jsdoc-region-tag": "^1.0.2", + "linkinator": "^1.5.0", + "mocha": "^6.0.0", + "null-loader": "^3.0.0", + "pack-n-play": "^1.0.0-2", + "prettier": "^1.19.1", + "ts-loader": "^6.2.1", + "typescript": "~3.6.4", + "webpack": "^4.41.2", + "webpack-cli": "^3.3.10" + }, + "engines": { + "node": ">=10" + } +} diff --git a/packages/google-cloud-recommender/protos/google/cloud/common_resources.proto b/packages/google-cloud-recommender/protos/google/cloud/common_resources.proto new file mode 100644 index 00000000000..56c9f800d5e --- /dev/null +++ b/packages/google-cloud-recommender/protos/google/cloud/common_resources.proto @@ -0,0 +1,52 @@ +// Copyright 2019 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. + +// This file contains stub messages for common resources in GCP. +// It is not intended to be directly generated, and is instead used by +// other tooling to be able to match common resource patterns. +syntax = "proto3"; + +package google.cloud; + +import "google/api/resource.proto"; + + +option (google.api.resource_definition) = { + type: "cloudresourcemanager.googleapis.com/Project" + pattern: "projects/{project}" +}; + + +option (google.api.resource_definition) = { + type: "cloudresourcemanager.googleapis.com/Organization" + pattern: "organizations/{organization}" +}; + + +option (google.api.resource_definition) = { + type: "cloudresourcemanager.googleapis.com/Folder" + pattern: "folders/{folder}" +}; + + +option (google.api.resource_definition) = { + type: "cloudbilling.googleapis.com/BillingAccount" + pattern: "billingAccounts/{billing_account}" +}; + +option (google.api.resource_definition) = { + type: "locations.googleapis.com/Location" + pattern: "projects/{project}/locations/{location}" +}; + diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommendation.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommendation.proto new file mode 100644 index 00000000000..542cd8e11d6 --- /dev/null +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommendation.proto @@ -0,0 +1,277 @@ +// Copyright 2019 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.cloud.recommender.v1beta1; + +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/money.proto"; + +option csharp_namespace = "Google.Cloud.Recommender.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/recommender/v1beta1;recommender"; +option java_multiple_files = true; +option java_package = "com.google.cloud.recommender.v1beta1"; +option objc_class_prefix = "CREC"; +option (google.api.resource_definition) = { + type: "recommender.googleapis.com/Recommender" + pattern: "projects/{project}/locations/{location}/recommenders/{recommender}" +}; + +// A recommendation along with a suggested action. E.g., a rightsizing +// recommendation for an underutilized VM, IAM role recommendations, etc +message Recommendation { + option (google.api.resource) = { + type: "recommender.googleapis.com/Recommendation" + pattern: "projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" + }; + + // Name of recommendation. + string name = 1; + + // Free-form human readable summary in English. The maximum length is 500 + // characters. + string description = 2; + + // Contains an identifier for a subtype of recommendations produced for the + // same recommender. Subtype is a function of content and impact, meaning a + // new subtype might be added when significant changes to `content` or + // `primary_impact.category` are introduced. See the Recommenders section + // to see a list of subtypes for a given Recommender. + // + // Examples: + // For recommender = "google.iam.policy.Recommender", + // recommender_subtype can be one of "REMOVE_ROLE"/"REPLACE_ROLE" + string recommender_subtype = 12; + + // Last time this recommendation was refreshed by the system that created it + // in the first place. + google.protobuf.Timestamp last_refresh_time = 4; + + // The primary impact that this recommendation can have while trying to + // optimize for one category. + Impact primary_impact = 5; + + // Optional set of additional impact that this recommendation may have when + // trying to optimize for the primary category. These may be positive + // or negative. + repeated Impact additional_impact = 6; + + // Content of the recommendation describing recommended changes to resources. + RecommendationContent content = 7; + + // Information for state. Contains state and metadata. + RecommendationStateInfo state_info = 10; + + // Fingerprint of the Recommendation. Provides optimistic locking when + // updating states. + string etag = 11; +} + +// Contains what resources are changing and how they are changing. +message RecommendationContent { + // Operations to one or more Google Cloud resources grouped in such a way + // that, all operations within one group are expected to be performed + // atomically and in an order. + repeated OperationGroup operation_groups = 2; +} + +// Group of operations that need to be performed atomically. +message OperationGroup { + // List of operations across one or more resources that belong to this group. + // Loosely based on RFC6902 and should be performed in the order they appear. + repeated Operation operations = 1; +} + +// Contains an operation for a resource loosely based on the JSON-PATCH format +// with support for: +// +// * Custom filters for describing partial array patch. +// * Extended path values for describing nested arrays. +// * Custom fields for describing the resource for which the operation is being +// described. +// * Allows extension to custom operations not natively supported by RFC6902. +// See https://tools.ietf.org/html/rfc6902 for details on the original RFC. +message Operation { + // Type of this operation. Contains one of 'and', 'remove', 'replace', 'move', + // 'copy', 'test' and 'custom' operations. This field is case-insensitive and + // always populated. + string action = 1; + + // Type of GCP resource being modified/tested. This field is always populated. + // Example: cloudresourcemanager.googleapis.com/Project, + // compute.googleapis.com/Instance + string resource_type = 2; + + // Contains the fully qualified resource name. This field is always populated. + // ex: //cloudresourcemanager.googleapis.com/projects/foo. + string resource = 3; + + // Path to the target field being operated on. If the operation is at the + // resource level, then path should be "/". This field is always populated. + string path = 4; + + // Can be set with action 'copy' to copy resource configuration across + // different resources of the same type. Example: A resource clone can be + // done via action = 'copy', path = "/", from = "/", + // source_resource = and resource_name = . + // This field is empty for all other values of `action`. + string source_resource = 5; + + // Can be set with action 'copy' or 'move' to indicate the source field within + // resource or source_resource, ignored if provided for other operation types. + string source_path = 6; + + // One of the fields in the following block will be set and intend to + // describe a value for 'path' field. + oneof path_value { + // Value for the `path` field. Will be set for actions:'add'/'replace'. + // Maybe set for action: 'test'. Either this or `value_matcher` will be set + // for 'test' operation. An exact match must be performed. + google.protobuf.Value value = 7; + + // Can be set for action 'test' for advanced matching for the value of + // 'path' field. Either this or `value` will be set for 'test' operation. + ValueMatcher value_matcher = 10; + } + + // Set of filters to apply if `path` refers to array elements or nested array + // elements in order to narrow down to a single unique element that is being + // tested/modified. + // This is intended to be an exact match per filter. To perform advanced + // matching, use path_value_matchers. + // + // * Example: { + // "/versions/*/name" : "it-123" + // "/versions/*/targetSize/percent": 20 + // } + // * Example: { + // "/bindings/*/role": "roles/admin" + // "/bindings/*/condition" : null + // } + // * Example: { + // "/bindings/*/role": "roles/admin" + // "/bindings/*/members/*" : ["x@google.com", "y@google.com"] + // } + // When both path_filters and path_value_matchers are set, an implicit AND + // must be performed. + map path_filters = 8; + + // Similar to path_filters, this contains set of filters to apply if `path` + // field referes to array elements. This is meant to support value matching + // beyond exact match. To perform exact match, use path_filters. + // When both path_filters and path_value_matchers are set, an implicit AND + // must be performed. + map path_value_matchers = 11; +} + +// Contains various matching options for values for a GCP resource field. +message ValueMatcher { + oneof match_variant { + // To be used for full regex matching. The regular expression is using the + // Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be + // used with RE2::FullMatch + string matches_pattern = 1; + } +} + +// Contains metadata about how much money a recommendation can save or incur. +message CostProjection { + // An approximate projection on amount saved or amount incurred. Negative cost + // units indicate cost savings and positive cost units indicate increase. + // See google.type.Money documentation for positive/negative units. + google.type.Money cost = 1; + + // Duration for which this cost applies. + google.protobuf.Duration duration = 2; +} + +// Contains the impact a recommendation can have for a given category. +message Impact { + // The category of the impact. + enum Category { + // Default unspecified category. Don't use directly. + CATEGORY_UNSPECIFIED = 0; + + // Indicates a potential increase or decrease in cost. + COST = 1; + + // Indicates a potential increase or decrease in security. + SECURITY = 2; + + // Indicates a potential increase or decrease in performance. + PERFORMANCE = 3; + + // Indicates a potential increase or decrease in manageability. + MANAGEABILITY = 4; + } + + // Category that is being targeted. + Category category = 1; + + // Contains projections (if any) for this category. + oneof projection { + // Use with CategoryType.COST + CostProjection cost_projection = 100; + } +} + +// Information for state. Contains state and metadata. +message RecommendationStateInfo { + // Represents Recommendation State. + enum State { + // Default state. Don't use directly. + STATE_UNSPECIFIED = 0; + + // Recommendation is active and can be applied. Recommendations content can + // be updated by Google. + // + // ACTIVE recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED. + ACTIVE = 1; + + // Recommendation is in claimed state. Recommendations content is + // immutable and cannot be updated by Google. + // + // CLAIMED recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED. + CLAIMED = 6; + + // Recommendation is in succeeded state. Recommendations content is + // immutable and cannot be updated by Google. + // + // SUCCEEDED recommendations can be marked as SUCCEEDED, or FAILED. + SUCCEEDED = 3; + + // Recommendation is in failed state. Recommendations content is immutable + // and cannot be updated by Google. + // + // FAILED recommendations can be marked as SUCCEEDED, or FAILED. + FAILED = 4; + + // Recommendation is in dismissed state. Recommendation content can be + // updated by Google. + // + // DISMISSED recommendations can be marked as ACTIVE. + DISMISSED = 5; + } + + // The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED. + State state = 1; + + // A map of metadata for the state, provided by user or automations systems. + map state_metadata = 2; +} diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommender_service.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommender_service.proto new file mode 100644 index 00000000000..e6824b11dca --- /dev/null +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommender_service.proto @@ -0,0 +1,229 @@ +// Copyright 2019 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.cloud.recommender.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/recommender/v1beta1/recommendation.proto"; + +option csharp_namespace = "Google.Cloud.Recommmender.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/recommender/v1beta1;recommender"; +option java_multiple_files = true; +option java_outer_classname = "RecommenderProto"; +option java_package = "com.google.cloud.recommender.v1beta1"; +option objc_class_prefix = "CREC"; + +// Provides insights and recommendations for cloud customers for various +// categories like performance optimization, cost savings, reliability, feature +// discovery, etc. Insights and recommendations are generated automatically +// based on analysis of user resources, configuration and monitoring metrics. +service Recommender { + option (google.api.default_host) = "recommender.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Lists recommendations for a Cloud project. Requires the recommender.*.list + // IAM permission for the specified recommender. + rpc ListRecommendations(ListRecommendationsRequest) returns (ListRecommendationsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*/recommenders/*}/recommendations" + }; + option (google.api.method_signature) = "parent,filter"; + } + + // Gets the requested recommendation. Requires the recommender.*.get + // IAM permission for the specified recommender. + rpc GetRecommendation(GetRecommendationRequest) returns (Recommendation) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Marks the Recommendation State as Claimed. Users can use this method to + // indicate to the Recommender API that they are starting to apply the + // recommendation themselves. This stops the recommendation content from being + // updated. Associated insights are frozen and placed in the ACCEPTED state. + // + // MarkRecommendationClaimed can be applied to recommendations in CLAIMED or + // ACTIVE state. + // + // Requires the recommender.*.update IAM permission for the specified + // recommender. + rpc MarkRecommendationClaimed(MarkRecommendationClaimedRequest) returns (Recommendation) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed" + body: "*" + }; + option (google.api.method_signature) = "name,state_metadata,etag"; + } + + // Marks the Recommendation State as Succeeded. Users can use this method to + // indicate to the Recommender API that they have applied the recommendation + // themselves, and the operation was successful. This stops the recommendation + // content from being updated. Associated insights are frozen and placed in + // the ACCEPTED state. + // + // MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, + // CLAIMED, SUCCEEDED, or FAILED state. + // + // Requires the recommender.*.update IAM permission for the specified + // recommender. + rpc MarkRecommendationSucceeded(MarkRecommendationSucceededRequest) returns (Recommendation) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded" + body: "*" + }; + option (google.api.method_signature) = "name,state_metadata,etag"; + } + + // Marks the Recommendation State as Failed. Users can use this method to + // indicate to the Recommender API that they have applied the recommendation + // themselves, and the operation failed. This stops the recommendation content + // from being updated. Associated insights are frozen and placed in the + // ACCEPTED state. + // + // MarkRecommendationFailed can be applied to recommendations in ACTIVE, + // CLAIMED, SUCCEEDED, or FAILED state. + // + // Requires the recommender.*.update IAM permission for the specified + // recommender. + rpc MarkRecommendationFailed(MarkRecommendationFailedRequest) returns (Recommendation) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed" + body: "*" + }; + option (google.api.method_signature) = "name,state_metadata,etag"; + } +} + +// Request for the `ListRecommendations` method. +message ListRecommendationsRequest { + // Required. The container resource on which to execute the request. + // Acceptable formats: + // + // 1. + // "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", + // + // LOCATION here refers to GCP Locations: + // https://cloud.google.com/about/locations/ + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recommender.googleapis.com/Recommender" + } + ]; + + // Optional. The maximum number of results to return from this request. Non-positive + // values are ignored. If not specified, the server will determine the number + // of results to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If present, retrieves the next batch of results from the preceding call to + // this method. `page_token` must be the value of `next_page_token` from the + // previous response. The values of other method parameters must be identical + // to those in the previous call. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Filter expression to restrict the recommendations returned. Supported + // filter fields: state_info.state + // Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" + string filter = 5; +} + +// Response to the `ListRecommendations` method. +message ListRecommendationsResponse { + // The set of recommendations for the `parent` resource. + repeated Recommendation recommendations = 1; + + // A token that can be used to request the next page of results. This field is + // empty if there are no additional results. + string next_page_token = 2; +} + +// Request to the `GetRecommendation` method. +message GetRecommendationRequest { + // Required. Name of the recommendation. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recommender.googleapis.com/Recommendation" + } + ]; +} + +// Request for the `MarkRecommendationClaimed` Method. +message MarkRecommendationClaimedRequest { + // Required. Name of the recommendation. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recommender.googleapis.com/Recommendation" + } + ]; + + // State properties to include with this state. Overwrites any existing + // `state_metadata`. + // Keys must match the regex /^[a-z0-9][a-z0-9_.-]{0,62}$/. + // Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. + map state_metadata = 2; + + // Required. Fingerprint of the Recommendation. Provides optimistic locking. + string etag = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `MarkRecommendationSucceeded` Method. +message MarkRecommendationSucceededRequest { + // Required. Name of the recommendation. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recommender.googleapis.com/Recommendation" + } + ]; + + // State properties to include with this state. Overwrites any existing + // `state_metadata`. + // Keys must match the regex /^[a-z0-9][a-z0-9_.-]{0,62}$/. + // Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. + map state_metadata = 2; + + // Required. Fingerprint of the Recommendation. Provides optimistic locking. + string etag = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `MarkRecommendationFailed` Method. +message MarkRecommendationFailedRequest { + // Required. Name of the recommendation. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recommender.googleapis.com/Recommendation" + } + ]; + + // State properties to include with this state. Overwrites any existing + // `state_metadata`. + // Keys must match the regex /^[a-z0-9][a-z0-9_.-]{0,62}$/. + // Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. + map state_metadata = 2; + + // Required. Fingerprint of the Recommendation. Provides optimistic locking. + string etag = 3 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts new file mode 100644 index 00000000000..f67d6a887ca --- /dev/null +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -0,0 +1,5943 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// 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. + +import * as Long from "long"; +import * as $protobuf from "protobufjs"; +/** Namespace google. */ +export namespace google { + + /** Namespace cloud. */ + namespace cloud { + + /** Namespace recommender. */ + namespace recommender { + + /** Namespace v1beta1. */ + namespace v1beta1 { + + /** Properties of a Recommendation. */ + interface IRecommendation { + + /** Recommendation name */ + name?: (string|null); + + /** Recommendation description */ + description?: (string|null); + + /** Recommendation recommenderSubtype */ + recommenderSubtype?: (string|null); + + /** Recommendation lastRefreshTime */ + lastRefreshTime?: (google.protobuf.ITimestamp|null); + + /** Recommendation primaryImpact */ + primaryImpact?: (google.cloud.recommender.v1beta1.IImpact|null); + + /** Recommendation additionalImpact */ + additionalImpact?: (google.cloud.recommender.v1beta1.IImpact[]|null); + + /** Recommendation content */ + content?: (google.cloud.recommender.v1beta1.IRecommendationContent|null); + + /** Recommendation stateInfo */ + stateInfo?: (google.cloud.recommender.v1beta1.IRecommendationStateInfo|null); + + /** Recommendation etag */ + etag?: (string|null); + } + + /** Represents a Recommendation. */ + class Recommendation implements IRecommendation { + + /** + * Constructs a new Recommendation. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IRecommendation); + + /** Recommendation name. */ + public name: string; + + /** Recommendation description. */ + public description: string; + + /** Recommendation recommenderSubtype. */ + public recommenderSubtype: string; + + /** Recommendation lastRefreshTime. */ + public lastRefreshTime?: (google.protobuf.ITimestamp|null); + + /** Recommendation primaryImpact. */ + public primaryImpact?: (google.cloud.recommender.v1beta1.IImpact|null); + + /** Recommendation additionalImpact. */ + public additionalImpact: google.cloud.recommender.v1beta1.IImpact[]; + + /** Recommendation content. */ + public content?: (google.cloud.recommender.v1beta1.IRecommendationContent|null); + + /** Recommendation stateInfo. */ + public stateInfo?: (google.cloud.recommender.v1beta1.IRecommendationStateInfo|null); + + /** Recommendation etag. */ + public etag: string; + + /** + * Creates a new Recommendation instance using the specified properties. + * @param [properties] Properties to set + * @returns Recommendation instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IRecommendation): google.cloud.recommender.v1beta1.Recommendation; + + /** + * Encodes the specified Recommendation message. Does not implicitly {@link google.cloud.recommender.v1beta1.Recommendation.verify|verify} messages. + * @param message Recommendation message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IRecommendation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Recommendation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.Recommendation.verify|verify} messages. + * @param message Recommendation message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IRecommendation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Recommendation message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Recommendation + * @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.cloud.recommender.v1beta1.Recommendation; + + /** + * Decodes a Recommendation message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Recommendation + * @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.cloud.recommender.v1beta1.Recommendation; + + /** + * Verifies a Recommendation 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 Recommendation message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Recommendation + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.Recommendation; + + /** + * Creates a plain object from a Recommendation message. Also converts values to other types if specified. + * @param message Recommendation + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.Recommendation, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Recommendation to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a RecommendationContent. */ + interface IRecommendationContent { + + /** RecommendationContent operationGroups */ + operationGroups?: (google.cloud.recommender.v1beta1.IOperationGroup[]|null); + } + + /** Represents a RecommendationContent. */ + class RecommendationContent implements IRecommendationContent { + + /** + * Constructs a new RecommendationContent. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IRecommendationContent); + + /** RecommendationContent operationGroups. */ + public operationGroups: google.cloud.recommender.v1beta1.IOperationGroup[]; + + /** + * Creates a new RecommendationContent instance using the specified properties. + * @param [properties] Properties to set + * @returns RecommendationContent instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IRecommendationContent): google.cloud.recommender.v1beta1.RecommendationContent; + + /** + * Encodes the specified RecommendationContent message. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationContent.verify|verify} messages. + * @param message RecommendationContent message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IRecommendationContent, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RecommendationContent message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationContent.verify|verify} messages. + * @param message RecommendationContent message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IRecommendationContent, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RecommendationContent message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RecommendationContent + * @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.cloud.recommender.v1beta1.RecommendationContent; + + /** + * Decodes a RecommendationContent message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RecommendationContent + * @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.cloud.recommender.v1beta1.RecommendationContent; + + /** + * Verifies a RecommendationContent 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 RecommendationContent message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RecommendationContent + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.RecommendationContent; + + /** + * Creates a plain object from a RecommendationContent message. Also converts values to other types if specified. + * @param message RecommendationContent + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.RecommendationContent, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RecommendationContent to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an OperationGroup. */ + interface IOperationGroup { + + /** OperationGroup operations */ + operations?: (google.cloud.recommender.v1beta1.IOperation[]|null); + } + + /** Represents an OperationGroup. */ + class OperationGroup implements IOperationGroup { + + /** + * Constructs a new OperationGroup. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IOperationGroup); + + /** OperationGroup operations. */ + public operations: google.cloud.recommender.v1beta1.IOperation[]; + + /** + * Creates a new OperationGroup instance using the specified properties. + * @param [properties] Properties to set + * @returns OperationGroup instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IOperationGroup): google.cloud.recommender.v1beta1.OperationGroup; + + /** + * Encodes the specified OperationGroup message. Does not implicitly {@link google.cloud.recommender.v1beta1.OperationGroup.verify|verify} messages. + * @param message OperationGroup message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IOperationGroup, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified OperationGroup message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.OperationGroup.verify|verify} messages. + * @param message OperationGroup message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IOperationGroup, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an OperationGroup message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns OperationGroup + * @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.cloud.recommender.v1beta1.OperationGroup; + + /** + * Decodes an OperationGroup message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns OperationGroup + * @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.cloud.recommender.v1beta1.OperationGroup; + + /** + * Verifies an OperationGroup 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 an OperationGroup message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns OperationGroup + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.OperationGroup; + + /** + * Creates a plain object from an OperationGroup message. Also converts values to other types if specified. + * @param message OperationGroup + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.OperationGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this OperationGroup to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an Operation. */ + interface IOperation { + + /** Operation action */ + action?: (string|null); + + /** Operation resourceType */ + resourceType?: (string|null); + + /** Operation resource */ + resource?: (string|null); + + /** Operation path */ + path?: (string|null); + + /** Operation sourceResource */ + sourceResource?: (string|null); + + /** Operation sourcePath */ + sourcePath?: (string|null); + + /** Operation value */ + value?: (google.protobuf.IValue|null); + + /** Operation valueMatcher */ + valueMatcher?: (google.cloud.recommender.v1beta1.IValueMatcher|null); + + /** Operation pathFilters */ + pathFilters?: ({ [k: string]: google.protobuf.IValue }|null); + + /** Operation pathValueMatchers */ + pathValueMatchers?: ({ [k: string]: google.cloud.recommender.v1beta1.IValueMatcher }|null); + } + + /** Represents an Operation. */ + class Operation implements IOperation { + + /** + * Constructs a new Operation. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IOperation); + + /** Operation action. */ + public action: string; + + /** Operation resourceType. */ + public resourceType: string; + + /** Operation resource. */ + public resource: string; + + /** Operation path. */ + public path: string; + + /** Operation sourceResource. */ + public sourceResource: string; + + /** Operation sourcePath. */ + public sourcePath: string; + + /** Operation value. */ + public value?: (google.protobuf.IValue|null); + + /** Operation valueMatcher. */ + public valueMatcher?: (google.cloud.recommender.v1beta1.IValueMatcher|null); + + /** Operation pathFilters. */ + public pathFilters: { [k: string]: google.protobuf.IValue }; + + /** Operation pathValueMatchers. */ + public pathValueMatchers: { [k: string]: google.cloud.recommender.v1beta1.IValueMatcher }; + + /** Operation pathValue. */ + public pathValue?: ("value"|"valueMatcher"); + + /** + * Creates a new Operation instance using the specified properties. + * @param [properties] Properties to set + * @returns Operation instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IOperation): google.cloud.recommender.v1beta1.Operation; + + /** + * Encodes the specified Operation message. Does not implicitly {@link google.cloud.recommender.v1beta1.Operation.verify|verify} messages. + * @param message Operation message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IOperation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.Operation.verify|verify} messages. + * @param message Operation message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IOperation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an Operation message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Operation + * @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.cloud.recommender.v1beta1.Operation; + + /** + * Decodes an Operation message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Operation + * @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.cloud.recommender.v1beta1.Operation; + + /** + * Verifies an Operation 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 an Operation message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Operation + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.Operation; + + /** + * Creates a plain object from an Operation message. Also converts values to other types if specified. + * @param message Operation + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.Operation, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Operation to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ValueMatcher. */ + interface IValueMatcher { + + /** ValueMatcher matchesPattern */ + matchesPattern?: (string|null); + } + + /** Represents a ValueMatcher. */ + class ValueMatcher implements IValueMatcher { + + /** + * Constructs a new ValueMatcher. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IValueMatcher); + + /** ValueMatcher matchesPattern. */ + public matchesPattern: string; + + /** ValueMatcher matchVariant. */ + public matchVariant?: "matchesPattern"; + + /** + * Creates a new ValueMatcher instance using the specified properties. + * @param [properties] Properties to set + * @returns ValueMatcher instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IValueMatcher): google.cloud.recommender.v1beta1.ValueMatcher; + + /** + * Encodes the specified ValueMatcher message. Does not implicitly {@link google.cloud.recommender.v1beta1.ValueMatcher.verify|verify} messages. + * @param message ValueMatcher message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IValueMatcher, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ValueMatcher message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.ValueMatcher.verify|verify} messages. + * @param message ValueMatcher message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IValueMatcher, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ValueMatcher message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ValueMatcher + * @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.cloud.recommender.v1beta1.ValueMatcher; + + /** + * Decodes a ValueMatcher message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ValueMatcher + * @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.cloud.recommender.v1beta1.ValueMatcher; + + /** + * Verifies a ValueMatcher 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 ValueMatcher message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ValueMatcher + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.ValueMatcher; + + /** + * Creates a plain object from a ValueMatcher message. Also converts values to other types if specified. + * @param message ValueMatcher + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.ValueMatcher, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ValueMatcher to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a CostProjection. */ + interface ICostProjection { + + /** CostProjection cost */ + cost?: (google.type.IMoney|null); + + /** CostProjection duration */ + duration?: (google.protobuf.IDuration|null); + } + + /** Represents a CostProjection. */ + class CostProjection implements ICostProjection { + + /** + * Constructs a new CostProjection. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.ICostProjection); + + /** CostProjection cost. */ + public cost?: (google.type.IMoney|null); + + /** CostProjection duration. */ + public duration?: (google.protobuf.IDuration|null); + + /** + * Creates a new CostProjection instance using the specified properties. + * @param [properties] Properties to set + * @returns CostProjection instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.ICostProjection): google.cloud.recommender.v1beta1.CostProjection; + + /** + * Encodes the specified CostProjection message. Does not implicitly {@link google.cloud.recommender.v1beta1.CostProjection.verify|verify} messages. + * @param message CostProjection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.ICostProjection, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CostProjection message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.CostProjection.verify|verify} messages. + * @param message CostProjection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.ICostProjection, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CostProjection message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CostProjection + * @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.cloud.recommender.v1beta1.CostProjection; + + /** + * Decodes a CostProjection message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CostProjection + * @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.cloud.recommender.v1beta1.CostProjection; + + /** + * Verifies a CostProjection 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 CostProjection message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CostProjection + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.CostProjection; + + /** + * Creates a plain object from a CostProjection message. Also converts values to other types if specified. + * @param message CostProjection + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.CostProjection, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CostProjection to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an Impact. */ + interface IImpact { + + /** Impact category */ + category?: (google.cloud.recommender.v1beta1.Impact.Category|null); + + /** Impact costProjection */ + costProjection?: (google.cloud.recommender.v1beta1.ICostProjection|null); + } + + /** Represents an Impact. */ + class Impact implements IImpact { + + /** + * Constructs a new Impact. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IImpact); + + /** Impact category. */ + public category: google.cloud.recommender.v1beta1.Impact.Category; + + /** Impact costProjection. */ + public costProjection?: (google.cloud.recommender.v1beta1.ICostProjection|null); + + /** Impact projection. */ + public projection?: "costProjection"; + + /** + * Creates a new Impact instance using the specified properties. + * @param [properties] Properties to set + * @returns Impact instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IImpact): google.cloud.recommender.v1beta1.Impact; + + /** + * Encodes the specified Impact message. Does not implicitly {@link google.cloud.recommender.v1beta1.Impact.verify|verify} messages. + * @param message Impact message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IImpact, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Impact message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.Impact.verify|verify} messages. + * @param message Impact message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IImpact, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an Impact message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Impact + * @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.cloud.recommender.v1beta1.Impact; + + /** + * Decodes an Impact message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Impact + * @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.cloud.recommender.v1beta1.Impact; + + /** + * Verifies an Impact 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 an Impact message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Impact + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.Impact; + + /** + * Creates a plain object from an Impact message. Also converts values to other types if specified. + * @param message Impact + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.Impact, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Impact to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace Impact { + + /** Category enum. */ + enum Category { + CATEGORY_UNSPECIFIED = 0, + COST = 1, + SECURITY = 2, + PERFORMANCE = 3, + MANAGEABILITY = 4 + } + } + + /** Properties of a RecommendationStateInfo. */ + interface IRecommendationStateInfo { + + /** RecommendationStateInfo state */ + state?: (google.cloud.recommender.v1beta1.RecommendationStateInfo.State|null); + + /** RecommendationStateInfo stateMetadata */ + stateMetadata?: ({ [k: string]: string }|null); + } + + /** Represents a RecommendationStateInfo. */ + class RecommendationStateInfo implements IRecommendationStateInfo { + + /** + * Constructs a new RecommendationStateInfo. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IRecommendationStateInfo); + + /** RecommendationStateInfo state. */ + public state: google.cloud.recommender.v1beta1.RecommendationStateInfo.State; + + /** RecommendationStateInfo stateMetadata. */ + public stateMetadata: { [k: string]: string }; + + /** + * Creates a new RecommendationStateInfo instance using the specified properties. + * @param [properties] Properties to set + * @returns RecommendationStateInfo instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IRecommendationStateInfo): google.cloud.recommender.v1beta1.RecommendationStateInfo; + + /** + * Encodes the specified RecommendationStateInfo message. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationStateInfo.verify|verify} messages. + * @param message RecommendationStateInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IRecommendationStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RecommendationStateInfo message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationStateInfo.verify|verify} messages. + * @param message RecommendationStateInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IRecommendationStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RecommendationStateInfo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RecommendationStateInfo + * @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.cloud.recommender.v1beta1.RecommendationStateInfo; + + /** + * Decodes a RecommendationStateInfo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RecommendationStateInfo + * @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.cloud.recommender.v1beta1.RecommendationStateInfo; + + /** + * Verifies a RecommendationStateInfo 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 RecommendationStateInfo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RecommendationStateInfo + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.RecommendationStateInfo; + + /** + * Creates a plain object from a RecommendationStateInfo message. Also converts values to other types if specified. + * @param message RecommendationStateInfo + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.RecommendationStateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RecommendationStateInfo to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace RecommendationStateInfo { + + /** State enum. */ + enum State { + STATE_UNSPECIFIED = 0, + ACTIVE = 1, + CLAIMED = 6, + SUCCEEDED = 3, + FAILED = 4, + DISMISSED = 5 + } + } + + /** Represents a Recommender */ + class Recommender extends $protobuf.rpc.Service { + + /** + * Constructs a new Recommender service. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + */ + constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); + + /** + * Creates new Recommender service using the specified rpc implementation. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + * @returns RPC service. Useful where requests and/or responses are streamed. + */ + public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): Recommender; + + /** + * Calls ListRecommendations. + * @param request ListRecommendationsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ListRecommendationsResponse + */ + public listRecommendations(request: google.cloud.recommender.v1beta1.IListRecommendationsRequest, callback: google.cloud.recommender.v1beta1.Recommender.ListRecommendationsCallback): void; + + /** + * Calls ListRecommendations. + * @param request ListRecommendationsRequest message or plain object + * @returns Promise + */ + public listRecommendations(request: google.cloud.recommender.v1beta1.IListRecommendationsRequest): Promise; + + /** + * Calls GetRecommendation. + * @param request GetRecommendationRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Recommendation + */ + public getRecommendation(request: google.cloud.recommender.v1beta1.IGetRecommendationRequest, callback: google.cloud.recommender.v1beta1.Recommender.GetRecommendationCallback): void; + + /** + * Calls GetRecommendation. + * @param request GetRecommendationRequest message or plain object + * @returns Promise + */ + public getRecommendation(request: google.cloud.recommender.v1beta1.IGetRecommendationRequest): Promise; + + /** + * Calls MarkRecommendationClaimed. + * @param request MarkRecommendationClaimedRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Recommendation + */ + public markRecommendationClaimed(request: google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest, callback: google.cloud.recommender.v1beta1.Recommender.MarkRecommendationClaimedCallback): void; + + /** + * Calls MarkRecommendationClaimed. + * @param request MarkRecommendationClaimedRequest message or plain object + * @returns Promise + */ + public markRecommendationClaimed(request: google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest): Promise; + + /** + * Calls MarkRecommendationSucceeded. + * @param request MarkRecommendationSucceededRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Recommendation + */ + public markRecommendationSucceeded(request: google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest, callback: google.cloud.recommender.v1beta1.Recommender.MarkRecommendationSucceededCallback): void; + + /** + * Calls MarkRecommendationSucceeded. + * @param request MarkRecommendationSucceededRequest message or plain object + * @returns Promise + */ + public markRecommendationSucceeded(request: google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest): Promise; + + /** + * Calls MarkRecommendationFailed. + * @param request MarkRecommendationFailedRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Recommendation + */ + public markRecommendationFailed(request: google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest, callback: google.cloud.recommender.v1beta1.Recommender.MarkRecommendationFailedCallback): void; + + /** + * Calls MarkRecommendationFailed. + * @param request MarkRecommendationFailedRequest message or plain object + * @returns Promise + */ + public markRecommendationFailed(request: google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest): Promise; + } + + namespace Recommender { + + /** + * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#listRecommendations}. + * @param error Error, if any + * @param [response] ListRecommendationsResponse + */ + type ListRecommendationsCallback = (error: (Error|null), response?: google.cloud.recommender.v1beta1.ListRecommendationsResponse) => void; + + /** + * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#getRecommendation}. + * @param error Error, if any + * @param [response] Recommendation + */ + type GetRecommendationCallback = (error: (Error|null), response?: google.cloud.recommender.v1beta1.Recommendation) => void; + + /** + * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#markRecommendationClaimed}. + * @param error Error, if any + * @param [response] Recommendation + */ + type MarkRecommendationClaimedCallback = (error: (Error|null), response?: google.cloud.recommender.v1beta1.Recommendation) => void; + + /** + * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#markRecommendationSucceeded}. + * @param error Error, if any + * @param [response] Recommendation + */ + type MarkRecommendationSucceededCallback = (error: (Error|null), response?: google.cloud.recommender.v1beta1.Recommendation) => void; + + /** + * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#markRecommendationFailed}. + * @param error Error, if any + * @param [response] Recommendation + */ + type MarkRecommendationFailedCallback = (error: (Error|null), response?: google.cloud.recommender.v1beta1.Recommendation) => void; + } + + /** Properties of a ListRecommendationsRequest. */ + interface IListRecommendationsRequest { + + /** ListRecommendationsRequest parent */ + parent?: (string|null); + + /** ListRecommendationsRequest pageSize */ + pageSize?: (number|null); + + /** ListRecommendationsRequest pageToken */ + pageToken?: (string|null); + + /** ListRecommendationsRequest filter */ + filter?: (string|null); + } + + /** Represents a ListRecommendationsRequest. */ + class ListRecommendationsRequest implements IListRecommendationsRequest { + + /** + * Constructs a new ListRecommendationsRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IListRecommendationsRequest); + + /** ListRecommendationsRequest parent. */ + public parent: string; + + /** ListRecommendationsRequest pageSize. */ + public pageSize: number; + + /** ListRecommendationsRequest pageToken. */ + public pageToken: string; + + /** ListRecommendationsRequest filter. */ + public filter: string; + + /** + * Creates a new ListRecommendationsRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ListRecommendationsRequest instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IListRecommendationsRequest): google.cloud.recommender.v1beta1.ListRecommendationsRequest; + + /** + * Encodes the specified ListRecommendationsRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsRequest.verify|verify} messages. + * @param message ListRecommendationsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IListRecommendationsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListRecommendationsRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsRequest.verify|verify} messages. + * @param message ListRecommendationsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IListRecommendationsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListRecommendationsRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListRecommendationsRequest + * @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.cloud.recommender.v1beta1.ListRecommendationsRequest; + + /** + * Decodes a ListRecommendationsRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListRecommendationsRequest + * @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.cloud.recommender.v1beta1.ListRecommendationsRequest; + + /** + * Verifies a ListRecommendationsRequest 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 ListRecommendationsRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListRecommendationsRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.ListRecommendationsRequest; + + /** + * Creates a plain object from a ListRecommendationsRequest message. Also converts values to other types if specified. + * @param message ListRecommendationsRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.ListRecommendationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListRecommendationsRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ListRecommendationsResponse. */ + interface IListRecommendationsResponse { + + /** ListRecommendationsResponse recommendations */ + recommendations?: (google.cloud.recommender.v1beta1.IRecommendation[]|null); + + /** ListRecommendationsResponse nextPageToken */ + nextPageToken?: (string|null); + } + + /** Represents a ListRecommendationsResponse. */ + class ListRecommendationsResponse implements IListRecommendationsResponse { + + /** + * Constructs a new ListRecommendationsResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IListRecommendationsResponse); + + /** ListRecommendationsResponse recommendations. */ + public recommendations: google.cloud.recommender.v1beta1.IRecommendation[]; + + /** ListRecommendationsResponse nextPageToken. */ + public nextPageToken: string; + + /** + * Creates a new ListRecommendationsResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns ListRecommendationsResponse instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IListRecommendationsResponse): google.cloud.recommender.v1beta1.ListRecommendationsResponse; + + /** + * Encodes the specified ListRecommendationsResponse message. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsResponse.verify|verify} messages. + * @param message ListRecommendationsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IListRecommendationsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListRecommendationsResponse message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsResponse.verify|verify} messages. + * @param message ListRecommendationsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IListRecommendationsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListRecommendationsResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListRecommendationsResponse + * @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.cloud.recommender.v1beta1.ListRecommendationsResponse; + + /** + * Decodes a ListRecommendationsResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListRecommendationsResponse + * @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.cloud.recommender.v1beta1.ListRecommendationsResponse; + + /** + * Verifies a ListRecommendationsResponse 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 ListRecommendationsResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListRecommendationsResponse + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.ListRecommendationsResponse; + + /** + * Creates a plain object from a ListRecommendationsResponse message. Also converts values to other types if specified. + * @param message ListRecommendationsResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.ListRecommendationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListRecommendationsResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a GetRecommendationRequest. */ + interface IGetRecommendationRequest { + + /** GetRecommendationRequest name */ + name?: (string|null); + } + + /** Represents a GetRecommendationRequest. */ + class GetRecommendationRequest implements IGetRecommendationRequest { + + /** + * Constructs a new GetRecommendationRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IGetRecommendationRequest); + + /** GetRecommendationRequest name. */ + public name: string; + + /** + * Creates a new GetRecommendationRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns GetRecommendationRequest instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IGetRecommendationRequest): google.cloud.recommender.v1beta1.GetRecommendationRequest; + + /** + * Encodes the specified GetRecommendationRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.GetRecommendationRequest.verify|verify} messages. + * @param message GetRecommendationRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IGetRecommendationRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GetRecommendationRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.GetRecommendationRequest.verify|verify} messages. + * @param message GetRecommendationRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IGetRecommendationRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetRecommendationRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GetRecommendationRequest + * @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.cloud.recommender.v1beta1.GetRecommendationRequest; + + /** + * Decodes a GetRecommendationRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GetRecommendationRequest + * @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.cloud.recommender.v1beta1.GetRecommendationRequest; + + /** + * Verifies a GetRecommendationRequest 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 GetRecommendationRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GetRecommendationRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.GetRecommendationRequest; + + /** + * Creates a plain object from a GetRecommendationRequest message. Also converts values to other types if specified. + * @param message GetRecommendationRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.GetRecommendationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GetRecommendationRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a MarkRecommendationClaimedRequest. */ + interface IMarkRecommendationClaimedRequest { + + /** MarkRecommendationClaimedRequest name */ + name?: (string|null); + + /** MarkRecommendationClaimedRequest stateMetadata */ + stateMetadata?: ({ [k: string]: string }|null); + + /** MarkRecommendationClaimedRequest etag */ + etag?: (string|null); + } + + /** Represents a MarkRecommendationClaimedRequest. */ + class MarkRecommendationClaimedRequest implements IMarkRecommendationClaimedRequest { + + /** + * Constructs a new MarkRecommendationClaimedRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest); + + /** MarkRecommendationClaimedRequest name. */ + public name: string; + + /** MarkRecommendationClaimedRequest stateMetadata. */ + public stateMetadata: { [k: string]: string }; + + /** MarkRecommendationClaimedRequest etag. */ + public etag: string; + + /** + * Creates a new MarkRecommendationClaimedRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns MarkRecommendationClaimedRequest instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest): google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest; + + /** + * Encodes the specified MarkRecommendationClaimedRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest.verify|verify} messages. + * @param message MarkRecommendationClaimedRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MarkRecommendationClaimedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest.verify|verify} messages. + * @param message MarkRecommendationClaimedRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MarkRecommendationClaimedRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MarkRecommendationClaimedRequest + * @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.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest; + + /** + * Decodes a MarkRecommendationClaimedRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MarkRecommendationClaimedRequest + * @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.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest; + + /** + * Verifies a MarkRecommendationClaimedRequest 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 MarkRecommendationClaimedRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MarkRecommendationClaimedRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest; + + /** + * Creates a plain object from a MarkRecommendationClaimedRequest message. Also converts values to other types if specified. + * @param message MarkRecommendationClaimedRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MarkRecommendationClaimedRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a MarkRecommendationSucceededRequest. */ + interface IMarkRecommendationSucceededRequest { + + /** MarkRecommendationSucceededRequest name */ + name?: (string|null); + + /** MarkRecommendationSucceededRequest stateMetadata */ + stateMetadata?: ({ [k: string]: string }|null); + + /** MarkRecommendationSucceededRequest etag */ + etag?: (string|null); + } + + /** Represents a MarkRecommendationSucceededRequest. */ + class MarkRecommendationSucceededRequest implements IMarkRecommendationSucceededRequest { + + /** + * Constructs a new MarkRecommendationSucceededRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest); + + /** MarkRecommendationSucceededRequest name. */ + public name: string; + + /** MarkRecommendationSucceededRequest stateMetadata. */ + public stateMetadata: { [k: string]: string }; + + /** MarkRecommendationSucceededRequest etag. */ + public etag: string; + + /** + * Creates a new MarkRecommendationSucceededRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns MarkRecommendationSucceededRequest instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest): google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest; + + /** + * Encodes the specified MarkRecommendationSucceededRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest.verify|verify} messages. + * @param message MarkRecommendationSucceededRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MarkRecommendationSucceededRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest.verify|verify} messages. + * @param message MarkRecommendationSucceededRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MarkRecommendationSucceededRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MarkRecommendationSucceededRequest + * @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.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest; + + /** + * Decodes a MarkRecommendationSucceededRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MarkRecommendationSucceededRequest + * @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.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest; + + /** + * Verifies a MarkRecommendationSucceededRequest 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 MarkRecommendationSucceededRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MarkRecommendationSucceededRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest; + + /** + * Creates a plain object from a MarkRecommendationSucceededRequest message. Also converts values to other types if specified. + * @param message MarkRecommendationSucceededRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MarkRecommendationSucceededRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a MarkRecommendationFailedRequest. */ + interface IMarkRecommendationFailedRequest { + + /** MarkRecommendationFailedRequest name */ + name?: (string|null); + + /** MarkRecommendationFailedRequest stateMetadata */ + stateMetadata?: ({ [k: string]: string }|null); + + /** MarkRecommendationFailedRequest etag */ + etag?: (string|null); + } + + /** Represents a MarkRecommendationFailedRequest. */ + class MarkRecommendationFailedRequest implements IMarkRecommendationFailedRequest { + + /** + * Constructs a new MarkRecommendationFailedRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest); + + /** MarkRecommendationFailedRequest name. */ + public name: string; + + /** MarkRecommendationFailedRequest stateMetadata. */ + public stateMetadata: { [k: string]: string }; + + /** MarkRecommendationFailedRequest etag. */ + public etag: string; + + /** + * Creates a new MarkRecommendationFailedRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns MarkRecommendationFailedRequest instance + */ + public static create(properties?: google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest): google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest; + + /** + * Encodes the specified MarkRecommendationFailedRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest.verify|verify} messages. + * @param message MarkRecommendationFailedRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MarkRecommendationFailedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest.verify|verify} messages. + * @param message MarkRecommendationFailedRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MarkRecommendationFailedRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MarkRecommendationFailedRequest + * @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.cloud.recommender.v1beta1.MarkRecommendationFailedRequest; + + /** + * Decodes a MarkRecommendationFailedRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MarkRecommendationFailedRequest + * @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.cloud.recommender.v1beta1.MarkRecommendationFailedRequest; + + /** + * Verifies a MarkRecommendationFailedRequest 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 MarkRecommendationFailedRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MarkRecommendationFailedRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest; + + /** + * Creates a plain object from a MarkRecommendationFailedRequest message. Also converts values to other types if specified. + * @param message MarkRecommendationFailedRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MarkRecommendationFailedRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + } + } + + /** Namespace api. */ + namespace api { + + /** Properties of a ResourceDescriptor. */ + interface IResourceDescriptor { + + /** ResourceDescriptor type */ + type?: (string|null); + + /** ResourceDescriptor pattern */ + pattern?: (string[]|null); + + /** ResourceDescriptor nameField */ + nameField?: (string|null); + + /** ResourceDescriptor history */ + history?: (google.api.ResourceDescriptor.History|null); + + /** ResourceDescriptor plural */ + plural?: (string|null); + + /** ResourceDescriptor singular */ + singular?: (string|null); + } + + /** Represents a ResourceDescriptor. */ + class ResourceDescriptor implements IResourceDescriptor { + + /** + * Constructs a new ResourceDescriptor. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.IResourceDescriptor); + + /** ResourceDescriptor type. */ + public type: string; + + /** ResourceDescriptor pattern. */ + public pattern: string[]; + + /** ResourceDescriptor nameField. */ + public nameField: string; + + /** ResourceDescriptor history. */ + public history: google.api.ResourceDescriptor.History; + + /** ResourceDescriptor plural. */ + public plural: string; + + /** ResourceDescriptor singular. */ + public singular: string; + + /** + * Creates a new ResourceDescriptor instance using the specified properties. + * @param [properties] Properties to set + * @returns ResourceDescriptor instance + */ + public static create(properties?: google.api.IResourceDescriptor): google.api.ResourceDescriptor; + + /** + * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. + * @param message ResourceDescriptor message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ResourceDescriptor message, length delimited. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. + * @param message ResourceDescriptor message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ResourceDescriptor message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ResourceDescriptor + * @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.api.ResourceDescriptor; + + /** + * Decodes a ResourceDescriptor message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ResourceDescriptor + * @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.api.ResourceDescriptor; + + /** + * Verifies a ResourceDescriptor 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 ResourceDescriptor message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ResourceDescriptor + */ + public static fromObject(object: { [k: string]: any }): google.api.ResourceDescriptor; + + /** + * Creates a plain object from a ResourceDescriptor message. Also converts values to other types if specified. + * @param message ResourceDescriptor + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.ResourceDescriptor, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ResourceDescriptor to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace ResourceDescriptor { + + /** History enum. */ + enum History { + HISTORY_UNSPECIFIED = 0, + ORIGINALLY_SINGLE_PATTERN = 1, + FUTURE_MULTI_PATTERN = 2 + } + } + + /** Properties of a ResourceReference. */ + interface IResourceReference { + + /** ResourceReference type */ + type?: (string|null); + + /** ResourceReference childType */ + childType?: (string|null); + } + + /** Represents a ResourceReference. */ + class ResourceReference implements IResourceReference { + + /** + * Constructs a new ResourceReference. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.IResourceReference); + + /** ResourceReference type. */ + public type: string; + + /** ResourceReference childType. */ + public childType: string; + + /** + * Creates a new ResourceReference instance using the specified properties. + * @param [properties] Properties to set + * @returns ResourceReference instance + */ + public static create(properties?: google.api.IResourceReference): google.api.ResourceReference; + + /** + * Encodes the specified ResourceReference message. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. + * @param message ResourceReference message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ResourceReference message, length delimited. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. + * @param message ResourceReference message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ResourceReference message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ResourceReference + * @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.api.ResourceReference; + + /** + * Decodes a ResourceReference message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ResourceReference + * @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.api.ResourceReference; + + /** + * Verifies a ResourceReference 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 ResourceReference message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ResourceReference + */ + public static fromObject(object: { [k: string]: any }): google.api.ResourceReference; + + /** + * Creates a plain object from a ResourceReference message. Also converts values to other types if specified. + * @param message ResourceReference + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.ResourceReference, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ResourceReference to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a Http. */ + interface IHttp { + + /** Http rules */ + rules?: (google.api.IHttpRule[]|null); + + /** Http fullyDecodeReservedExpansion */ + fullyDecodeReservedExpansion?: (boolean|null); + } + + /** Represents a Http. */ + class Http implements IHttp { + + /** + * Constructs a new Http. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.IHttp); + + /** Http rules. */ + public rules: google.api.IHttpRule[]; + + /** Http fullyDecodeReservedExpansion. */ + public fullyDecodeReservedExpansion: boolean; + + /** + * Creates a new Http instance using the specified properties. + * @param [properties] Properties to set + * @returns Http instance + */ + public static create(properties?: google.api.IHttp): google.api.Http; + + /** + * Encodes the specified Http message. Does not implicitly {@link google.api.Http.verify|verify} messages. + * @param message Http message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Http message, length delimited. Does not implicitly {@link google.api.Http.verify|verify} messages. + * @param message Http message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Http message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Http + * @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.api.Http; + + /** + * Decodes a Http message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Http + * @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.api.Http; + + /** + * Verifies a Http 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 Http message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Http + */ + public static fromObject(object: { [k: string]: any }): google.api.Http; + + /** + * Creates a plain object from a Http message. Also converts values to other types if specified. + * @param message Http + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.Http, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Http to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a HttpRule. */ + interface IHttpRule { + + /** HttpRule selector */ + selector?: (string|null); + + /** HttpRule get */ + get?: (string|null); + + /** HttpRule put */ + put?: (string|null); + + /** HttpRule post */ + post?: (string|null); + + /** HttpRule delete */ + "delete"?: (string|null); + + /** HttpRule patch */ + patch?: (string|null); + + /** HttpRule custom */ + custom?: (google.api.ICustomHttpPattern|null); + + /** HttpRule body */ + body?: (string|null); + + /** HttpRule responseBody */ + responseBody?: (string|null); + + /** HttpRule additionalBindings */ + additionalBindings?: (google.api.IHttpRule[]|null); + } + + /** Represents a HttpRule. */ + class HttpRule implements IHttpRule { + + /** + * Constructs a new HttpRule. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.IHttpRule); + + /** HttpRule selector. */ + public selector: string; + + /** HttpRule get. */ + public get: string; + + /** HttpRule put. */ + public put: string; + + /** HttpRule post. */ + public post: string; + + /** HttpRule delete. */ + public delete: string; + + /** HttpRule patch. */ + public patch: string; + + /** HttpRule custom. */ + public custom?: (google.api.ICustomHttpPattern|null); + + /** HttpRule body. */ + public body: string; + + /** HttpRule responseBody. */ + public responseBody: string; + + /** HttpRule additionalBindings. */ + public additionalBindings: google.api.IHttpRule[]; + + /** HttpRule pattern. */ + public pattern?: ("get"|"put"|"post"|"delete"|"patch"|"custom"); + + /** + * Creates a new HttpRule instance using the specified properties. + * @param [properties] Properties to set + * @returns HttpRule instance + */ + public static create(properties?: google.api.IHttpRule): google.api.HttpRule; + + /** + * Encodes the specified HttpRule message. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. + * @param message HttpRule message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified HttpRule message, length delimited. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. + * @param message HttpRule message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a HttpRule message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns HttpRule + * @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.api.HttpRule; + + /** + * Decodes a HttpRule message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns HttpRule + * @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.api.HttpRule; + + /** + * Verifies a HttpRule 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 HttpRule message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns HttpRule + */ + public static fromObject(object: { [k: string]: any }): google.api.HttpRule; + + /** + * Creates a plain object from a HttpRule message. Also converts values to other types if specified. + * @param message HttpRule + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.HttpRule, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this HttpRule to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a CustomHttpPattern. */ + interface ICustomHttpPattern { + + /** CustomHttpPattern kind */ + kind?: (string|null); + + /** CustomHttpPattern path */ + path?: (string|null); + } + + /** Represents a CustomHttpPattern. */ + class CustomHttpPattern implements ICustomHttpPattern { + + /** + * Constructs a new CustomHttpPattern. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.ICustomHttpPattern); + + /** CustomHttpPattern kind. */ + public kind: string; + + /** CustomHttpPattern path. */ + public path: string; + + /** + * Creates a new CustomHttpPattern instance using the specified properties. + * @param [properties] Properties to set + * @returns CustomHttpPattern instance + */ + public static create(properties?: google.api.ICustomHttpPattern): google.api.CustomHttpPattern; + + /** + * Encodes the specified CustomHttpPattern message. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. + * @param message CustomHttpPattern message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CustomHttpPattern message, length delimited. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. + * @param message CustomHttpPattern message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CustomHttpPattern message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CustomHttpPattern + * @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.api.CustomHttpPattern; + + /** + * Decodes a CustomHttpPattern message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CustomHttpPattern + * @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.api.CustomHttpPattern; + + /** + * Verifies a CustomHttpPattern 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 CustomHttpPattern message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CustomHttpPattern + */ + public static fromObject(object: { [k: string]: any }): google.api.CustomHttpPattern; + + /** + * Creates a plain object from a CustomHttpPattern message. Also converts values to other types if specified. + * @param message CustomHttpPattern + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.CustomHttpPattern, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CustomHttpPattern to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** FieldBehavior enum. */ + enum FieldBehavior { + FIELD_BEHAVIOR_UNSPECIFIED = 0, + OPTIONAL = 1, + REQUIRED = 2, + OUTPUT_ONLY = 3, + INPUT_ONLY = 4, + IMMUTABLE = 5 + } + } + + /** Namespace protobuf. */ + namespace protobuf { + + /** Properties of a FileDescriptorSet. */ + interface IFileDescriptorSet { + + /** FileDescriptorSet file */ + file?: (google.protobuf.IFileDescriptorProto[]|null); + } + + /** Represents a FileDescriptorSet. */ + class FileDescriptorSet implements IFileDescriptorSet { + + /** + * Constructs a new FileDescriptorSet. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IFileDescriptorSet); + + /** FileDescriptorSet file. */ + public file: google.protobuf.IFileDescriptorProto[]; + + /** + * Creates a new FileDescriptorSet instance using the specified properties. + * @param [properties] Properties to set + * @returns FileDescriptorSet instance + */ + public static create(properties?: google.protobuf.IFileDescriptorSet): google.protobuf.FileDescriptorSet; + + /** + * Encodes the specified FileDescriptorSet message. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages. + * @param message FileDescriptorSet message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FileDescriptorSet message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages. + * @param message FileDescriptorSet message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FileDescriptorSet message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FileDescriptorSet + * @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.protobuf.FileDescriptorSet; + + /** + * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FileDescriptorSet + * @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.protobuf.FileDescriptorSet; + + /** + * Verifies a FileDescriptorSet 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 FileDescriptorSet message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FileDescriptorSet + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorSet; + + /** + * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified. + * @param message FileDescriptorSet + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FileDescriptorSet, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FileDescriptorSet to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a FileDescriptorProto. */ + interface IFileDescriptorProto { + + /** FileDescriptorProto name */ + name?: (string|null); + + /** FileDescriptorProto package */ + "package"?: (string|null); + + /** FileDescriptorProto dependency */ + dependency?: (string[]|null); + + /** FileDescriptorProto publicDependency */ + publicDependency?: (number[]|null); + + /** FileDescriptorProto weakDependency */ + weakDependency?: (number[]|null); + + /** FileDescriptorProto messageType */ + messageType?: (google.protobuf.IDescriptorProto[]|null); + + /** FileDescriptorProto enumType */ + enumType?: (google.protobuf.IEnumDescriptorProto[]|null); + + /** FileDescriptorProto service */ + service?: (google.protobuf.IServiceDescriptorProto[]|null); + + /** FileDescriptorProto extension */ + extension?: (google.protobuf.IFieldDescriptorProto[]|null); + + /** FileDescriptorProto options */ + options?: (google.protobuf.IFileOptions|null); + + /** FileDescriptorProto sourceCodeInfo */ + sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null); + + /** FileDescriptorProto syntax */ + syntax?: (string|null); + } + + /** Represents a FileDescriptorProto. */ + class FileDescriptorProto implements IFileDescriptorProto { + + /** + * Constructs a new FileDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IFileDescriptorProto); + + /** FileDescriptorProto name. */ + public name: string; + + /** FileDescriptorProto package. */ + public package: string; + + /** FileDescriptorProto dependency. */ + public dependency: string[]; + + /** FileDescriptorProto publicDependency. */ + public publicDependency: number[]; + + /** FileDescriptorProto weakDependency. */ + public weakDependency: number[]; + + /** FileDescriptorProto messageType. */ + public messageType: google.protobuf.IDescriptorProto[]; + + /** FileDescriptorProto enumType. */ + public enumType: google.protobuf.IEnumDescriptorProto[]; + + /** FileDescriptorProto service. */ + public service: google.protobuf.IServiceDescriptorProto[]; + + /** FileDescriptorProto extension. */ + public extension: google.protobuf.IFieldDescriptorProto[]; + + /** FileDescriptorProto options. */ + public options?: (google.protobuf.IFileOptions|null); + + /** FileDescriptorProto sourceCodeInfo. */ + public sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null); + + /** FileDescriptorProto syntax. */ + public syntax: string; + + /** + * Creates a new FileDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns FileDescriptorProto instance + */ + public static create(properties?: google.protobuf.IFileDescriptorProto): google.protobuf.FileDescriptorProto; + + /** + * Encodes the specified FileDescriptorProto message. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages. + * @param message FileDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FileDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages. + * @param message FileDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FileDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FileDescriptorProto + * @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.protobuf.FileDescriptorProto; + + /** + * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FileDescriptorProto + * @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.protobuf.FileDescriptorProto; + + /** + * Verifies a FileDescriptorProto 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 FileDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FileDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorProto; + + /** + * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified. + * @param message FileDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FileDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FileDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a DescriptorProto. */ + interface IDescriptorProto { + + /** DescriptorProto name */ + name?: (string|null); + + /** DescriptorProto field */ + field?: (google.protobuf.IFieldDescriptorProto[]|null); + + /** DescriptorProto extension */ + extension?: (google.protobuf.IFieldDescriptorProto[]|null); + + /** DescriptorProto nestedType */ + nestedType?: (google.protobuf.IDescriptorProto[]|null); + + /** DescriptorProto enumType */ + enumType?: (google.protobuf.IEnumDescriptorProto[]|null); + + /** DescriptorProto extensionRange */ + extensionRange?: (google.protobuf.DescriptorProto.IExtensionRange[]|null); + + /** DescriptorProto oneofDecl */ + oneofDecl?: (google.protobuf.IOneofDescriptorProto[]|null); + + /** DescriptorProto options */ + options?: (google.protobuf.IMessageOptions|null); + + /** DescriptorProto reservedRange */ + reservedRange?: (google.protobuf.DescriptorProto.IReservedRange[]|null); + + /** DescriptorProto reservedName */ + reservedName?: (string[]|null); + } + + /** Represents a DescriptorProto. */ + class DescriptorProto implements IDescriptorProto { + + /** + * Constructs a new DescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IDescriptorProto); + + /** DescriptorProto name. */ + public name: string; + + /** DescriptorProto field. */ + public field: google.protobuf.IFieldDescriptorProto[]; + + /** DescriptorProto extension. */ + public extension: google.protobuf.IFieldDescriptorProto[]; + + /** DescriptorProto nestedType. */ + public nestedType: google.protobuf.IDescriptorProto[]; + + /** DescriptorProto enumType. */ + public enumType: google.protobuf.IEnumDescriptorProto[]; + + /** DescriptorProto extensionRange. */ + public extensionRange: google.protobuf.DescriptorProto.IExtensionRange[]; + + /** DescriptorProto oneofDecl. */ + public oneofDecl: google.protobuf.IOneofDescriptorProto[]; + + /** DescriptorProto options. */ + public options?: (google.protobuf.IMessageOptions|null); + + /** DescriptorProto reservedRange. */ + public reservedRange: google.protobuf.DescriptorProto.IReservedRange[]; + + /** DescriptorProto reservedName. */ + public reservedName: string[]; + + /** + * Creates a new DescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns DescriptorProto instance + */ + public static create(properties?: google.protobuf.IDescriptorProto): google.protobuf.DescriptorProto; + + /** + * Encodes the specified DescriptorProto message. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages. + * @param message DescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages. + * @param message DescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DescriptorProto + * @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.protobuf.DescriptorProto; + + /** + * Decodes a DescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DescriptorProto + * @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.protobuf.DescriptorProto; + + /** + * Verifies a DescriptorProto 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 DescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto; + + /** + * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified. + * @param message DescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.DescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace DescriptorProto { + + /** Properties of an ExtensionRange. */ + interface IExtensionRange { + + /** ExtensionRange start */ + start?: (number|null); + + /** ExtensionRange end */ + end?: (number|null); + + /** ExtensionRange options */ + options?: (google.protobuf.IExtensionRangeOptions|null); + } + + /** Represents an ExtensionRange. */ + class ExtensionRange implements IExtensionRange { + + /** + * Constructs a new ExtensionRange. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.DescriptorProto.IExtensionRange); + + /** ExtensionRange start. */ + public start: number; + + /** ExtensionRange end. */ + public end: number; + + /** ExtensionRange options. */ + public options?: (google.protobuf.IExtensionRangeOptions|null); + + /** + * Creates a new ExtensionRange instance using the specified properties. + * @param [properties] Properties to set + * @returns ExtensionRange instance + */ + public static create(properties?: google.protobuf.DescriptorProto.IExtensionRange): google.protobuf.DescriptorProto.ExtensionRange; + + /** + * Encodes the specified ExtensionRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages. + * @param message ExtensionRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ExtensionRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages. + * @param message ExtensionRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ExtensionRange message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExtensionRange + * @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.protobuf.DescriptorProto.ExtensionRange; + + /** + * Decodes an ExtensionRange message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExtensionRange + * @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.protobuf.DescriptorProto.ExtensionRange; + + /** + * Verifies an ExtensionRange 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 an ExtensionRange message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExtensionRange + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ExtensionRange; + + /** + * Creates a plain object from an ExtensionRange message. Also converts values to other types if specified. + * @param message ExtensionRange + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.DescriptorProto.ExtensionRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ExtensionRange to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ReservedRange. */ + interface IReservedRange { + + /** ReservedRange start */ + start?: (number|null); + + /** ReservedRange end */ + end?: (number|null); + } + + /** Represents a ReservedRange. */ + class ReservedRange implements IReservedRange { + + /** + * Constructs a new ReservedRange. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.DescriptorProto.IReservedRange); + + /** ReservedRange start. */ + public start: number; + + /** ReservedRange end. */ + public end: number; + + /** + * Creates a new ReservedRange instance using the specified properties. + * @param [properties] Properties to set + * @returns ReservedRange instance + */ + public static create(properties?: google.protobuf.DescriptorProto.IReservedRange): google.protobuf.DescriptorProto.ReservedRange; + + /** + * Encodes the specified ReservedRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages. + * @param message ReservedRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ReservedRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages. + * @param message ReservedRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ReservedRange message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ReservedRange + * @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.protobuf.DescriptorProto.ReservedRange; + + /** + * Decodes a ReservedRange message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ReservedRange + * @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.protobuf.DescriptorProto.ReservedRange; + + /** + * Verifies a ReservedRange 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 ReservedRange message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ReservedRange + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ReservedRange; + + /** + * Creates a plain object from a ReservedRange message. Also converts values to other types if specified. + * @param message ReservedRange + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.DescriptorProto.ReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ReservedRange to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + + /** Properties of an ExtensionRangeOptions. */ + interface IExtensionRangeOptions { + + /** ExtensionRangeOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + } + + /** Represents an ExtensionRangeOptions. */ + class ExtensionRangeOptions implements IExtensionRangeOptions { + + /** + * Constructs a new ExtensionRangeOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IExtensionRangeOptions); + + /** ExtensionRangeOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new ExtensionRangeOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns ExtensionRangeOptions instance + */ + public static create(properties?: google.protobuf.IExtensionRangeOptions): google.protobuf.ExtensionRangeOptions; + + /** + * Encodes the specified ExtensionRangeOptions message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages. + * @param message ExtensionRangeOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ExtensionRangeOptions message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages. + * @param message ExtensionRangeOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ExtensionRangeOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExtensionRangeOptions + * @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.protobuf.ExtensionRangeOptions; + + /** + * Decodes an ExtensionRangeOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExtensionRangeOptions + * @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.protobuf.ExtensionRangeOptions; + + /** + * Verifies an ExtensionRangeOptions 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 an ExtensionRangeOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExtensionRangeOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.ExtensionRangeOptions; + + /** + * Creates a plain object from an ExtensionRangeOptions message. Also converts values to other types if specified. + * @param message ExtensionRangeOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.ExtensionRangeOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ExtensionRangeOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a FieldDescriptorProto. */ + interface IFieldDescriptorProto { + + /** FieldDescriptorProto name */ + name?: (string|null); + + /** FieldDescriptorProto number */ + number?: (number|null); + + /** FieldDescriptorProto label */ + label?: (google.protobuf.FieldDescriptorProto.Label|null); + + /** FieldDescriptorProto type */ + type?: (google.protobuf.FieldDescriptorProto.Type|null); + + /** FieldDescriptorProto typeName */ + typeName?: (string|null); + + /** FieldDescriptorProto extendee */ + extendee?: (string|null); + + /** FieldDescriptorProto defaultValue */ + defaultValue?: (string|null); + + /** FieldDescriptorProto oneofIndex */ + oneofIndex?: (number|null); + + /** FieldDescriptorProto jsonName */ + jsonName?: (string|null); + + /** FieldDescriptorProto options */ + options?: (google.protobuf.IFieldOptions|null); + } + + /** Represents a FieldDescriptorProto. */ + class FieldDescriptorProto implements IFieldDescriptorProto { + + /** + * Constructs a new FieldDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IFieldDescriptorProto); + + /** FieldDescriptorProto name. */ + public name: string; + + /** FieldDescriptorProto number. */ + public number: number; + + /** FieldDescriptorProto label. */ + public label: google.protobuf.FieldDescriptorProto.Label; + + /** FieldDescriptorProto type. */ + public type: google.protobuf.FieldDescriptorProto.Type; + + /** FieldDescriptorProto typeName. */ + public typeName: string; + + /** FieldDescriptorProto extendee. */ + public extendee: string; + + /** FieldDescriptorProto defaultValue. */ + public defaultValue: string; + + /** FieldDescriptorProto oneofIndex. */ + public oneofIndex: number; + + /** FieldDescriptorProto jsonName. */ + public jsonName: string; + + /** FieldDescriptorProto options. */ + public options?: (google.protobuf.IFieldOptions|null); + + /** + * Creates a new FieldDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns FieldDescriptorProto instance + */ + public static create(properties?: google.protobuf.IFieldDescriptorProto): google.protobuf.FieldDescriptorProto; + + /** + * Encodes the specified FieldDescriptorProto message. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages. + * @param message FieldDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FieldDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages. + * @param message FieldDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FieldDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FieldDescriptorProto + * @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.protobuf.FieldDescriptorProto; + + /** + * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FieldDescriptorProto + * @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.protobuf.FieldDescriptorProto; + + /** + * Verifies a FieldDescriptorProto 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 FieldDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FieldDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FieldDescriptorProto; + + /** + * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified. + * @param message FieldDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FieldDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FieldDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace FieldDescriptorProto { + + /** Type enum. */ + enum Type { + TYPE_DOUBLE = 1, + TYPE_FLOAT = 2, + TYPE_INT64 = 3, + TYPE_UINT64 = 4, + TYPE_INT32 = 5, + TYPE_FIXED64 = 6, + TYPE_FIXED32 = 7, + TYPE_BOOL = 8, + TYPE_STRING = 9, + TYPE_GROUP = 10, + TYPE_MESSAGE = 11, + TYPE_BYTES = 12, + TYPE_UINT32 = 13, + TYPE_ENUM = 14, + TYPE_SFIXED32 = 15, + TYPE_SFIXED64 = 16, + TYPE_SINT32 = 17, + TYPE_SINT64 = 18 + } + + /** Label enum. */ + enum Label { + LABEL_OPTIONAL = 1, + LABEL_REQUIRED = 2, + LABEL_REPEATED = 3 + } + } + + /** Properties of an OneofDescriptorProto. */ + interface IOneofDescriptorProto { + + /** OneofDescriptorProto name */ + name?: (string|null); + + /** OneofDescriptorProto options */ + options?: (google.protobuf.IOneofOptions|null); + } + + /** Represents an OneofDescriptorProto. */ + class OneofDescriptorProto implements IOneofDescriptorProto { + + /** + * Constructs a new OneofDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IOneofDescriptorProto); + + /** OneofDescriptorProto name. */ + public name: string; + + /** OneofDescriptorProto options. */ + public options?: (google.protobuf.IOneofOptions|null); + + /** + * Creates a new OneofDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns OneofDescriptorProto instance + */ + public static create(properties?: google.protobuf.IOneofDescriptorProto): google.protobuf.OneofDescriptorProto; + + /** + * Encodes the specified OneofDescriptorProto message. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages. + * @param message OneofDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified OneofDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages. + * @param message OneofDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an OneofDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns OneofDescriptorProto + * @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.protobuf.OneofDescriptorProto; + + /** + * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns OneofDescriptorProto + * @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.protobuf.OneofDescriptorProto; + + /** + * Verifies an OneofDescriptorProto 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 an OneofDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns OneofDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.OneofDescriptorProto; + + /** + * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified. + * @param message OneofDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.OneofDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this OneofDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an EnumDescriptorProto. */ + interface IEnumDescriptorProto { + + /** EnumDescriptorProto name */ + name?: (string|null); + + /** EnumDescriptorProto value */ + value?: (google.protobuf.IEnumValueDescriptorProto[]|null); + + /** EnumDescriptorProto options */ + options?: (google.protobuf.IEnumOptions|null); + + /** EnumDescriptorProto reservedRange */ + reservedRange?: (google.protobuf.EnumDescriptorProto.IEnumReservedRange[]|null); + + /** EnumDescriptorProto reservedName */ + reservedName?: (string[]|null); + } + + /** Represents an EnumDescriptorProto. */ + class EnumDescriptorProto implements IEnumDescriptorProto { + + /** + * Constructs a new EnumDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IEnumDescriptorProto); + + /** EnumDescriptorProto name. */ + public name: string; + + /** EnumDescriptorProto value. */ + public value: google.protobuf.IEnumValueDescriptorProto[]; + + /** EnumDescriptorProto options. */ + public options?: (google.protobuf.IEnumOptions|null); + + /** EnumDescriptorProto reservedRange. */ + public reservedRange: google.protobuf.EnumDescriptorProto.IEnumReservedRange[]; + + /** EnumDescriptorProto reservedName. */ + public reservedName: string[]; + + /** + * Creates a new EnumDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns EnumDescriptorProto instance + */ + public static create(properties?: google.protobuf.IEnumDescriptorProto): google.protobuf.EnumDescriptorProto; + + /** + * Encodes the specified EnumDescriptorProto message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages. + * @param message EnumDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EnumDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages. + * @param message EnumDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EnumDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EnumDescriptorProto + * @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.protobuf.EnumDescriptorProto; + + /** + * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EnumDescriptorProto + * @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.protobuf.EnumDescriptorProto; + + /** + * Verifies an EnumDescriptorProto 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 an EnumDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EnumDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto; + + /** + * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified. + * @param message EnumDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.EnumDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EnumDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace EnumDescriptorProto { + + /** Properties of an EnumReservedRange. */ + interface IEnumReservedRange { + + /** EnumReservedRange start */ + start?: (number|null); + + /** EnumReservedRange end */ + end?: (number|null); + } + + /** Represents an EnumReservedRange. */ + class EnumReservedRange implements IEnumReservedRange { + + /** + * Constructs a new EnumReservedRange. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange); + + /** EnumReservedRange start. */ + public start: number; + + /** EnumReservedRange end. */ + public end: number; + + /** + * Creates a new EnumReservedRange instance using the specified properties. + * @param [properties] Properties to set + * @returns EnumReservedRange instance + */ + public static create(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange): google.protobuf.EnumDescriptorProto.EnumReservedRange; + + /** + * Encodes the specified EnumReservedRange message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages. + * @param message EnumReservedRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EnumReservedRange message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages. + * @param message EnumReservedRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EnumReservedRange message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EnumReservedRange + * @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.protobuf.EnumDescriptorProto.EnumReservedRange; + + /** + * Decodes an EnumReservedRange message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EnumReservedRange + * @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.protobuf.EnumDescriptorProto.EnumReservedRange; + + /** + * Verifies an EnumReservedRange 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 an EnumReservedRange message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EnumReservedRange + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto.EnumReservedRange; + + /** + * Creates a plain object from an EnumReservedRange message. Also converts values to other types if specified. + * @param message EnumReservedRange + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.EnumDescriptorProto.EnumReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EnumReservedRange to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + + /** Properties of an EnumValueDescriptorProto. */ + interface IEnumValueDescriptorProto { + + /** EnumValueDescriptorProto name */ + name?: (string|null); + + /** EnumValueDescriptorProto number */ + number?: (number|null); + + /** EnumValueDescriptorProto options */ + options?: (google.protobuf.IEnumValueOptions|null); + } + + /** Represents an EnumValueDescriptorProto. */ + class EnumValueDescriptorProto implements IEnumValueDescriptorProto { + + /** + * Constructs a new EnumValueDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IEnumValueDescriptorProto); + + /** EnumValueDescriptorProto name. */ + public name: string; + + /** EnumValueDescriptorProto number. */ + public number: number; + + /** EnumValueDescriptorProto options. */ + public options?: (google.protobuf.IEnumValueOptions|null); + + /** + * Creates a new EnumValueDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns EnumValueDescriptorProto instance + */ + public static create(properties?: google.protobuf.IEnumValueDescriptorProto): google.protobuf.EnumValueDescriptorProto; + + /** + * Encodes the specified EnumValueDescriptorProto message. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages. + * @param message EnumValueDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EnumValueDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages. + * @param message EnumValueDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EnumValueDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EnumValueDescriptorProto + * @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.protobuf.EnumValueDescriptorProto; + + /** + * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EnumValueDescriptorProto + * @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.protobuf.EnumValueDescriptorProto; + + /** + * Verifies an EnumValueDescriptorProto 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 an EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EnumValueDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueDescriptorProto; + + /** + * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified. + * @param message EnumValueDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.EnumValueDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EnumValueDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ServiceDescriptorProto. */ + interface IServiceDescriptorProto { + + /** ServiceDescriptorProto name */ + name?: (string|null); + + /** ServiceDescriptorProto method */ + method?: (google.protobuf.IMethodDescriptorProto[]|null); + + /** ServiceDescriptorProto options */ + options?: (google.protobuf.IServiceOptions|null); + } + + /** Represents a ServiceDescriptorProto. */ + class ServiceDescriptorProto implements IServiceDescriptorProto { + + /** + * Constructs a new ServiceDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IServiceDescriptorProto); + + /** ServiceDescriptorProto name. */ + public name: string; + + /** ServiceDescriptorProto method. */ + public method: google.protobuf.IMethodDescriptorProto[]; + + /** ServiceDescriptorProto options. */ + public options?: (google.protobuf.IServiceOptions|null); + + /** + * Creates a new ServiceDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns ServiceDescriptorProto instance + */ + public static create(properties?: google.protobuf.IServiceDescriptorProto): google.protobuf.ServiceDescriptorProto; + + /** + * Encodes the specified ServiceDescriptorProto message. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages. + * @param message ServiceDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ServiceDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages. + * @param message ServiceDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ServiceDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ServiceDescriptorProto + * @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.protobuf.ServiceDescriptorProto; + + /** + * Decodes a ServiceDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ServiceDescriptorProto + * @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.protobuf.ServiceDescriptorProto; + + /** + * Verifies a ServiceDescriptorProto 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 ServiceDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ServiceDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceDescriptorProto; + + /** + * Creates a plain object from a ServiceDescriptorProto message. Also converts values to other types if specified. + * @param message ServiceDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.ServiceDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ServiceDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a MethodDescriptorProto. */ + interface IMethodDescriptorProto { + + /** MethodDescriptorProto name */ + name?: (string|null); + + /** MethodDescriptorProto inputType */ + inputType?: (string|null); + + /** MethodDescriptorProto outputType */ + outputType?: (string|null); + + /** MethodDescriptorProto options */ + options?: (google.protobuf.IMethodOptions|null); + + /** MethodDescriptorProto clientStreaming */ + clientStreaming?: (boolean|null); + + /** MethodDescriptorProto serverStreaming */ + serverStreaming?: (boolean|null); + } + + /** Represents a MethodDescriptorProto. */ + class MethodDescriptorProto implements IMethodDescriptorProto { + + /** + * Constructs a new MethodDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IMethodDescriptorProto); + + /** MethodDescriptorProto name. */ + public name: string; + + /** MethodDescriptorProto inputType. */ + public inputType: string; + + /** MethodDescriptorProto outputType. */ + public outputType: string; + + /** MethodDescriptorProto options. */ + public options?: (google.protobuf.IMethodOptions|null); + + /** MethodDescriptorProto clientStreaming. */ + public clientStreaming: boolean; + + /** MethodDescriptorProto serverStreaming. */ + public serverStreaming: boolean; + + /** + * Creates a new MethodDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns MethodDescriptorProto instance + */ + public static create(properties?: google.protobuf.IMethodDescriptorProto): google.protobuf.MethodDescriptorProto; + + /** + * Encodes the specified MethodDescriptorProto message. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages. + * @param message MethodDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MethodDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages. + * @param message MethodDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MethodDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MethodDescriptorProto + * @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.protobuf.MethodDescriptorProto; + + /** + * Decodes a MethodDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MethodDescriptorProto + * @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.protobuf.MethodDescriptorProto; + + /** + * Verifies a MethodDescriptorProto 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 MethodDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MethodDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.MethodDescriptorProto; + + /** + * Creates a plain object from a MethodDescriptorProto message. Also converts values to other types if specified. + * @param message MethodDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.MethodDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MethodDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a FileOptions. */ + interface IFileOptions { + + /** FileOptions javaPackage */ + javaPackage?: (string|null); + + /** FileOptions javaOuterClassname */ + javaOuterClassname?: (string|null); + + /** FileOptions javaMultipleFiles */ + javaMultipleFiles?: (boolean|null); + + /** FileOptions javaGenerateEqualsAndHash */ + javaGenerateEqualsAndHash?: (boolean|null); + + /** FileOptions javaStringCheckUtf8 */ + javaStringCheckUtf8?: (boolean|null); + + /** FileOptions optimizeFor */ + optimizeFor?: (google.protobuf.FileOptions.OptimizeMode|null); + + /** FileOptions goPackage */ + goPackage?: (string|null); + + /** FileOptions ccGenericServices */ + ccGenericServices?: (boolean|null); + + /** FileOptions javaGenericServices */ + javaGenericServices?: (boolean|null); + + /** FileOptions pyGenericServices */ + pyGenericServices?: (boolean|null); + + /** FileOptions phpGenericServices */ + phpGenericServices?: (boolean|null); + + /** FileOptions deprecated */ + deprecated?: (boolean|null); + + /** FileOptions ccEnableArenas */ + ccEnableArenas?: (boolean|null); + + /** FileOptions objcClassPrefix */ + objcClassPrefix?: (string|null); + + /** FileOptions csharpNamespace */ + csharpNamespace?: (string|null); + + /** FileOptions swiftPrefix */ + swiftPrefix?: (string|null); + + /** FileOptions phpClassPrefix */ + phpClassPrefix?: (string|null); + + /** FileOptions phpNamespace */ + phpNamespace?: (string|null); + + /** FileOptions phpMetadataNamespace */ + phpMetadataNamespace?: (string|null); + + /** FileOptions rubyPackage */ + rubyPackage?: (string|null); + + /** FileOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + + /** FileOptions .google.api.resourceDefinition */ + ".google.api.resourceDefinition"?: (google.api.IResourceDescriptor[]|null); + } + + /** Represents a FileOptions. */ + class FileOptions implements IFileOptions { + + /** + * Constructs a new FileOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IFileOptions); + + /** FileOptions javaPackage. */ + public javaPackage: string; + + /** FileOptions javaOuterClassname. */ + public javaOuterClassname: string; + + /** FileOptions javaMultipleFiles. */ + public javaMultipleFiles: boolean; + + /** FileOptions javaGenerateEqualsAndHash. */ + public javaGenerateEqualsAndHash: boolean; + + /** FileOptions javaStringCheckUtf8. */ + public javaStringCheckUtf8: boolean; + + /** FileOptions optimizeFor. */ + public optimizeFor: google.protobuf.FileOptions.OptimizeMode; + + /** FileOptions goPackage. */ + public goPackage: string; + + /** FileOptions ccGenericServices. */ + public ccGenericServices: boolean; + + /** FileOptions javaGenericServices. */ + public javaGenericServices: boolean; + + /** FileOptions pyGenericServices. */ + public pyGenericServices: boolean; + + /** FileOptions phpGenericServices. */ + public phpGenericServices: boolean; + + /** FileOptions deprecated. */ + public deprecated: boolean; + + /** FileOptions ccEnableArenas. */ + public ccEnableArenas: boolean; + + /** FileOptions objcClassPrefix. */ + public objcClassPrefix: string; + + /** FileOptions csharpNamespace. */ + public csharpNamespace: string; + + /** FileOptions swiftPrefix. */ + public swiftPrefix: string; + + /** FileOptions phpClassPrefix. */ + public phpClassPrefix: string; + + /** FileOptions phpNamespace. */ + public phpNamespace: string; + + /** FileOptions phpMetadataNamespace. */ + public phpMetadataNamespace: string; + + /** FileOptions rubyPackage. */ + public rubyPackage: string; + + /** FileOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new FileOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns FileOptions instance + */ + public static create(properties?: google.protobuf.IFileOptions): google.protobuf.FileOptions; + + /** + * Encodes the specified FileOptions message. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages. + * @param message FileOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FileOptions message, length delimited. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages. + * @param message FileOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FileOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FileOptions + * @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.protobuf.FileOptions; + + /** + * Decodes a FileOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FileOptions + * @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.protobuf.FileOptions; + + /** + * Verifies a FileOptions 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 FileOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FileOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FileOptions; + + /** + * Creates a plain object from a FileOptions message. Also converts values to other types if specified. + * @param message FileOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FileOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FileOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace FileOptions { + + /** OptimizeMode enum. */ + enum OptimizeMode { + SPEED = 1, + CODE_SIZE = 2, + LITE_RUNTIME = 3 + } + } + + /** Properties of a MessageOptions. */ + interface IMessageOptions { + + /** MessageOptions messageSetWireFormat */ + messageSetWireFormat?: (boolean|null); + + /** MessageOptions noStandardDescriptorAccessor */ + noStandardDescriptorAccessor?: (boolean|null); + + /** MessageOptions deprecated */ + deprecated?: (boolean|null); + + /** MessageOptions mapEntry */ + mapEntry?: (boolean|null); + + /** MessageOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + + /** MessageOptions .google.api.resource */ + ".google.api.resource"?: (google.api.IResourceDescriptor|null); + } + + /** Represents a MessageOptions. */ + class MessageOptions implements IMessageOptions { + + /** + * Constructs a new MessageOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IMessageOptions); + + /** MessageOptions messageSetWireFormat. */ + public messageSetWireFormat: boolean; + + /** MessageOptions noStandardDescriptorAccessor. */ + public noStandardDescriptorAccessor: boolean; + + /** MessageOptions deprecated. */ + public deprecated: boolean; + + /** MessageOptions mapEntry. */ + public mapEntry: boolean; + + /** MessageOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new MessageOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns MessageOptions instance + */ + public static create(properties?: google.protobuf.IMessageOptions): google.protobuf.MessageOptions; + + /** + * Encodes the specified MessageOptions message. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages. + * @param message MessageOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MessageOptions message, length delimited. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages. + * @param message MessageOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MessageOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MessageOptions + * @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.protobuf.MessageOptions; + + /** + * Decodes a MessageOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MessageOptions + * @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.protobuf.MessageOptions; + + /** + * Verifies a MessageOptions 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 MessageOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MessageOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.MessageOptions; + + /** + * Creates a plain object from a MessageOptions message. Also converts values to other types if specified. + * @param message MessageOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.MessageOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MessageOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a FieldOptions. */ + interface IFieldOptions { + + /** FieldOptions ctype */ + ctype?: (google.protobuf.FieldOptions.CType|null); + + /** FieldOptions packed */ + packed?: (boolean|null); + + /** FieldOptions jstype */ + jstype?: (google.protobuf.FieldOptions.JSType|null); + + /** FieldOptions lazy */ + lazy?: (boolean|null); + + /** FieldOptions deprecated */ + deprecated?: (boolean|null); + + /** FieldOptions weak */ + weak?: (boolean|null); + + /** FieldOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + + /** FieldOptions .google.api.resourceReference */ + ".google.api.resourceReference"?: (google.api.IResourceReference|null); + + /** FieldOptions .google.api.fieldBehavior */ + ".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|null); + } + + /** Represents a FieldOptions. */ + class FieldOptions implements IFieldOptions { + + /** + * Constructs a new FieldOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IFieldOptions); + + /** FieldOptions ctype. */ + public ctype: google.protobuf.FieldOptions.CType; + + /** FieldOptions packed. */ + public packed: boolean; + + /** FieldOptions jstype. */ + public jstype: google.protobuf.FieldOptions.JSType; + + /** FieldOptions lazy. */ + public lazy: boolean; + + /** FieldOptions deprecated. */ + public deprecated: boolean; + + /** FieldOptions weak. */ + public weak: boolean; + + /** FieldOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new FieldOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns FieldOptions instance + */ + public static create(properties?: google.protobuf.IFieldOptions): google.protobuf.FieldOptions; + + /** + * Encodes the specified FieldOptions message. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages. + * @param message FieldOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FieldOptions message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages. + * @param message FieldOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FieldOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FieldOptions + * @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.protobuf.FieldOptions; + + /** + * Decodes a FieldOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FieldOptions + * @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.protobuf.FieldOptions; + + /** + * Verifies a FieldOptions 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 FieldOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FieldOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions; + + /** + * Creates a plain object from a FieldOptions message. Also converts values to other types if specified. + * @param message FieldOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FieldOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FieldOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace FieldOptions { + + /** CType enum. */ + enum CType { + STRING = 0, + CORD = 1, + STRING_PIECE = 2 + } + + /** JSType enum. */ + enum JSType { + JS_NORMAL = 0, + JS_STRING = 1, + JS_NUMBER = 2 + } + } + + /** Properties of an OneofOptions. */ + interface IOneofOptions { + + /** OneofOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + } + + /** Represents an OneofOptions. */ + class OneofOptions implements IOneofOptions { + + /** + * Constructs a new OneofOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IOneofOptions); + + /** OneofOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new OneofOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns OneofOptions instance + */ + public static create(properties?: google.protobuf.IOneofOptions): google.protobuf.OneofOptions; + + /** + * Encodes the specified OneofOptions message. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages. + * @param message OneofOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified OneofOptions message, length delimited. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages. + * @param message OneofOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an OneofOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns OneofOptions + * @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.protobuf.OneofOptions; + + /** + * Decodes an OneofOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns OneofOptions + * @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.protobuf.OneofOptions; + + /** + * Verifies an OneofOptions 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 an OneofOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns OneofOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.OneofOptions; + + /** + * Creates a plain object from an OneofOptions message. Also converts values to other types if specified. + * @param message OneofOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.OneofOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this OneofOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an EnumOptions. */ + interface IEnumOptions { + + /** EnumOptions allowAlias */ + allowAlias?: (boolean|null); + + /** EnumOptions deprecated */ + deprecated?: (boolean|null); + + /** EnumOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + } + + /** Represents an EnumOptions. */ + class EnumOptions implements IEnumOptions { + + /** + * Constructs a new EnumOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IEnumOptions); + + /** EnumOptions allowAlias. */ + public allowAlias: boolean; + + /** EnumOptions deprecated. */ + public deprecated: boolean; + + /** EnumOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new EnumOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns EnumOptions instance + */ + public static create(properties?: google.protobuf.IEnumOptions): google.protobuf.EnumOptions; + + /** + * Encodes the specified EnumOptions message. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages. + * @param message EnumOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EnumOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages. + * @param message EnumOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EnumOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EnumOptions + * @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.protobuf.EnumOptions; + + /** + * Decodes an EnumOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EnumOptions + * @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.protobuf.EnumOptions; + + /** + * Verifies an EnumOptions 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 an EnumOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EnumOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.EnumOptions; + + /** + * Creates a plain object from an EnumOptions message. Also converts values to other types if specified. + * @param message EnumOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.EnumOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EnumOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an EnumValueOptions. */ + interface IEnumValueOptions { + + /** EnumValueOptions deprecated */ + deprecated?: (boolean|null); + + /** EnumValueOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + } + + /** Represents an EnumValueOptions. */ + class EnumValueOptions implements IEnumValueOptions { + + /** + * Constructs a new EnumValueOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IEnumValueOptions); + + /** EnumValueOptions deprecated. */ + public deprecated: boolean; + + /** EnumValueOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new EnumValueOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns EnumValueOptions instance + */ + public static create(properties?: google.protobuf.IEnumValueOptions): google.protobuf.EnumValueOptions; + + /** + * Encodes the specified EnumValueOptions message. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages. + * @param message EnumValueOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EnumValueOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages. + * @param message EnumValueOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EnumValueOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EnumValueOptions + * @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.protobuf.EnumValueOptions; + + /** + * Decodes an EnumValueOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EnumValueOptions + * @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.protobuf.EnumValueOptions; + + /** + * Verifies an EnumValueOptions 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 an EnumValueOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EnumValueOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueOptions; + + /** + * Creates a plain object from an EnumValueOptions message. Also converts values to other types if specified. + * @param message EnumValueOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.EnumValueOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EnumValueOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ServiceOptions. */ + interface IServiceOptions { + + /** ServiceOptions deprecated */ + deprecated?: (boolean|null); + + /** ServiceOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + + /** ServiceOptions .google.api.defaultHost */ + ".google.api.defaultHost"?: (string|null); + + /** ServiceOptions .google.api.oauthScopes */ + ".google.api.oauthScopes"?: (string|null); + } + + /** Represents a ServiceOptions. */ + class ServiceOptions implements IServiceOptions { + + /** + * Constructs a new ServiceOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IServiceOptions); + + /** ServiceOptions deprecated. */ + public deprecated: boolean; + + /** ServiceOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new ServiceOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns ServiceOptions instance + */ + public static create(properties?: google.protobuf.IServiceOptions): google.protobuf.ServiceOptions; + + /** + * Encodes the specified ServiceOptions message. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages. + * @param message ServiceOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ServiceOptions message, length delimited. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages. + * @param message ServiceOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ServiceOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ServiceOptions + * @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.protobuf.ServiceOptions; + + /** + * Decodes a ServiceOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ServiceOptions + * @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.protobuf.ServiceOptions; + + /** + * Verifies a ServiceOptions 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 ServiceOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ServiceOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceOptions; + + /** + * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified. + * @param message ServiceOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.ServiceOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ServiceOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a MethodOptions. */ + interface IMethodOptions { + + /** MethodOptions deprecated */ + deprecated?: (boolean|null); + + /** MethodOptions idempotencyLevel */ + idempotencyLevel?: (google.protobuf.MethodOptions.IdempotencyLevel|null); + + /** MethodOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + + /** MethodOptions .google.api.http */ + ".google.api.http"?: (google.api.IHttpRule|null); + + /** MethodOptions .google.api.methodSignature */ + ".google.api.methodSignature"?: (string[]|null); + } + + /** Represents a MethodOptions. */ + class MethodOptions implements IMethodOptions { + + /** + * Constructs a new MethodOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IMethodOptions); + + /** MethodOptions deprecated. */ + public deprecated: boolean; + + /** MethodOptions idempotencyLevel. */ + public idempotencyLevel: google.protobuf.MethodOptions.IdempotencyLevel; + + /** MethodOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new MethodOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns MethodOptions instance + */ + public static create(properties?: google.protobuf.IMethodOptions): google.protobuf.MethodOptions; + + /** + * Encodes the specified MethodOptions message. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages. + * @param message MethodOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MethodOptions message, length delimited. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages. + * @param message MethodOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MethodOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MethodOptions + * @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.protobuf.MethodOptions; + + /** + * Decodes a MethodOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MethodOptions + * @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.protobuf.MethodOptions; + + /** + * Verifies a MethodOptions 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 MethodOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MethodOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.MethodOptions; + + /** + * Creates a plain object from a MethodOptions message. Also converts values to other types if specified. + * @param message MethodOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.MethodOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MethodOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace MethodOptions { + + /** IdempotencyLevel enum. */ + enum IdempotencyLevel { + IDEMPOTENCY_UNKNOWN = 0, + NO_SIDE_EFFECTS = 1, + IDEMPOTENT = 2 + } + } + + /** Properties of an UninterpretedOption. */ + interface IUninterpretedOption { + + /** UninterpretedOption name */ + name?: (google.protobuf.UninterpretedOption.INamePart[]|null); + + /** UninterpretedOption identifierValue */ + identifierValue?: (string|null); + + /** UninterpretedOption positiveIntValue */ + positiveIntValue?: (number|Long|null); + + /** UninterpretedOption negativeIntValue */ + negativeIntValue?: (number|Long|null); + + /** UninterpretedOption doubleValue */ + doubleValue?: (number|null); + + /** UninterpretedOption stringValue */ + stringValue?: (Uint8Array|null); + + /** UninterpretedOption aggregateValue */ + aggregateValue?: (string|null); + } + + /** Represents an UninterpretedOption. */ + class UninterpretedOption implements IUninterpretedOption { + + /** + * Constructs a new UninterpretedOption. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IUninterpretedOption); + + /** UninterpretedOption name. */ + public name: google.protobuf.UninterpretedOption.INamePart[]; + + /** UninterpretedOption identifierValue. */ + public identifierValue: string; + + /** UninterpretedOption positiveIntValue. */ + public positiveIntValue: (number|Long); + + /** UninterpretedOption negativeIntValue. */ + public negativeIntValue: (number|Long); + + /** UninterpretedOption doubleValue. */ + public doubleValue: number; + + /** UninterpretedOption stringValue. */ + public stringValue: Uint8Array; + + /** UninterpretedOption aggregateValue. */ + public aggregateValue: string; + + /** + * Creates a new UninterpretedOption instance using the specified properties. + * @param [properties] Properties to set + * @returns UninterpretedOption instance + */ + public static create(properties?: google.protobuf.IUninterpretedOption): google.protobuf.UninterpretedOption; + + /** + * Encodes the specified UninterpretedOption message. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages. + * @param message UninterpretedOption message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified UninterpretedOption message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages. + * @param message UninterpretedOption message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an UninterpretedOption message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns UninterpretedOption + * @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.protobuf.UninterpretedOption; + + /** + * Decodes an UninterpretedOption message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns UninterpretedOption + * @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.protobuf.UninterpretedOption; + + /** + * Verifies an UninterpretedOption 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 an UninterpretedOption message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns UninterpretedOption + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption; + + /** + * Creates a plain object from an UninterpretedOption message. Also converts values to other types if specified. + * @param message UninterpretedOption + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.UninterpretedOption, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this UninterpretedOption to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace UninterpretedOption { + + /** Properties of a NamePart. */ + interface INamePart { + + /** NamePart namePart */ + namePart: string; + + /** NamePart isExtension */ + isExtension: boolean; + } + + /** Represents a NamePart. */ + class NamePart implements INamePart { + + /** + * Constructs a new NamePart. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.UninterpretedOption.INamePart); + + /** NamePart namePart. */ + public namePart: string; + + /** NamePart isExtension. */ + public isExtension: boolean; + + /** + * Creates a new NamePart instance using the specified properties. + * @param [properties] Properties to set + * @returns NamePart instance + */ + public static create(properties?: google.protobuf.UninterpretedOption.INamePart): google.protobuf.UninterpretedOption.NamePart; + + /** + * Encodes the specified NamePart message. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages. + * @param message NamePart message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified NamePart message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages. + * @param message NamePart message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a NamePart message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns NamePart + * @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.protobuf.UninterpretedOption.NamePart; + + /** + * Decodes a NamePart message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns NamePart + * @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.protobuf.UninterpretedOption.NamePart; + + /** + * Verifies a NamePart 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 NamePart message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns NamePart + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption.NamePart; + + /** + * Creates a plain object from a NamePart message. Also converts values to other types if specified. + * @param message NamePart + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.UninterpretedOption.NamePart, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this NamePart to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + + /** Properties of a SourceCodeInfo. */ + interface ISourceCodeInfo { + + /** SourceCodeInfo location */ + location?: (google.protobuf.SourceCodeInfo.ILocation[]|null); + } + + /** Represents a SourceCodeInfo. */ + class SourceCodeInfo implements ISourceCodeInfo { + + /** + * Constructs a new SourceCodeInfo. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.ISourceCodeInfo); + + /** SourceCodeInfo location. */ + public location: google.protobuf.SourceCodeInfo.ILocation[]; + + /** + * Creates a new SourceCodeInfo instance using the specified properties. + * @param [properties] Properties to set + * @returns SourceCodeInfo instance + */ + public static create(properties?: google.protobuf.ISourceCodeInfo): google.protobuf.SourceCodeInfo; + + /** + * Encodes the specified SourceCodeInfo message. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages. + * @param message SourceCodeInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SourceCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages. + * @param message SourceCodeInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SourceCodeInfo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SourceCodeInfo + * @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.protobuf.SourceCodeInfo; + + /** + * Decodes a SourceCodeInfo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SourceCodeInfo + * @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.protobuf.SourceCodeInfo; + + /** + * Verifies a SourceCodeInfo 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 SourceCodeInfo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SourceCodeInfo + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo; + + /** + * Creates a plain object from a SourceCodeInfo message. Also converts values to other types if specified. + * @param message SourceCodeInfo + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.SourceCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SourceCodeInfo to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace SourceCodeInfo { + + /** Properties of a Location. */ + interface ILocation { + + /** Location path */ + path?: (number[]|null); + + /** Location span */ + span?: (number[]|null); + + /** Location leadingComments */ + leadingComments?: (string|null); + + /** Location trailingComments */ + trailingComments?: (string|null); + + /** Location leadingDetachedComments */ + leadingDetachedComments?: (string[]|null); + } + + /** Represents a Location. */ + class Location implements ILocation { + + /** + * Constructs a new Location. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.SourceCodeInfo.ILocation); + + /** Location path. */ + public path: number[]; + + /** Location span. */ + public span: number[]; + + /** Location leadingComments. */ + public leadingComments: string; + + /** Location trailingComments. */ + public trailingComments: string; + + /** Location leadingDetachedComments. */ + public leadingDetachedComments: string[]; + + /** + * Creates a new Location instance using the specified properties. + * @param [properties] Properties to set + * @returns Location instance + */ + public static create(properties?: google.protobuf.SourceCodeInfo.ILocation): google.protobuf.SourceCodeInfo.Location; + + /** + * Encodes the specified Location message. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages. + * @param message Location message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Location message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages. + * @param message Location message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Location message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Location + * @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.protobuf.SourceCodeInfo.Location; + + /** + * Decodes a Location message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Location + * @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.protobuf.SourceCodeInfo.Location; + + /** + * Verifies a Location 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 Location message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Location + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo.Location; + + /** + * Creates a plain object from a Location message. Also converts values to other types if specified. + * @param message Location + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.SourceCodeInfo.Location, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Location to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + + /** Properties of a GeneratedCodeInfo. */ + interface IGeneratedCodeInfo { + + /** GeneratedCodeInfo annotation */ + annotation?: (google.protobuf.GeneratedCodeInfo.IAnnotation[]|null); + } + + /** Represents a GeneratedCodeInfo. */ + class GeneratedCodeInfo implements IGeneratedCodeInfo { + + /** + * Constructs a new GeneratedCodeInfo. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IGeneratedCodeInfo); + + /** GeneratedCodeInfo annotation. */ + public annotation: google.protobuf.GeneratedCodeInfo.IAnnotation[]; + + /** + * Creates a new GeneratedCodeInfo instance using the specified properties. + * @param [properties] Properties to set + * @returns GeneratedCodeInfo instance + */ + public static create(properties?: google.protobuf.IGeneratedCodeInfo): google.protobuf.GeneratedCodeInfo; + + /** + * Encodes the specified GeneratedCodeInfo message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages. + * @param message GeneratedCodeInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GeneratedCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages. + * @param message GeneratedCodeInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GeneratedCodeInfo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GeneratedCodeInfo + * @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.protobuf.GeneratedCodeInfo; + + /** + * Decodes a GeneratedCodeInfo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GeneratedCodeInfo + * @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.protobuf.GeneratedCodeInfo; + + /** + * Verifies a GeneratedCodeInfo 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 GeneratedCodeInfo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GeneratedCodeInfo + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo; + + /** + * Creates a plain object from a GeneratedCodeInfo message. Also converts values to other types if specified. + * @param message GeneratedCodeInfo + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.GeneratedCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GeneratedCodeInfo to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace GeneratedCodeInfo { + + /** Properties of an Annotation. */ + interface IAnnotation { + + /** Annotation path */ + path?: (number[]|null); + + /** Annotation sourceFile */ + sourceFile?: (string|null); + + /** Annotation begin */ + begin?: (number|null); + + /** Annotation end */ + end?: (number|null); + } + + /** Represents an Annotation. */ + class Annotation implements IAnnotation { + + /** + * Constructs a new Annotation. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation); + + /** Annotation path. */ + public path: number[]; + + /** Annotation sourceFile. */ + public sourceFile: string; + + /** Annotation begin. */ + public begin: number; + + /** Annotation end. */ + public end: number; + + /** + * Creates a new Annotation instance using the specified properties. + * @param [properties] Properties to set + * @returns Annotation instance + */ + public static create(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation): google.protobuf.GeneratedCodeInfo.Annotation; + + /** + * Encodes the specified Annotation message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages. + * @param message Annotation message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Annotation message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages. + * @param message Annotation message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an Annotation message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Annotation + * @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.protobuf.GeneratedCodeInfo.Annotation; + + /** + * Decodes an Annotation message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Annotation + * @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.protobuf.GeneratedCodeInfo.Annotation; + + /** + * Verifies an Annotation 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 an Annotation message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Annotation + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo.Annotation; + + /** + * Creates a plain object from an Annotation message. Also converts values to other types if specified. + * @param message Annotation + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.GeneratedCodeInfo.Annotation, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Annotation to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + + /** Properties of a Duration. */ + interface IDuration { + + /** Duration seconds */ + seconds?: (number|Long|null); + + /** Duration nanos */ + nanos?: (number|null); + } + + /** Represents a Duration. */ + class Duration implements IDuration { + + /** + * Constructs a new Duration. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IDuration); + + /** Duration seconds. */ + public seconds: (number|Long); + + /** Duration nanos. */ + public nanos: number; + + /** + * Creates a new Duration instance using the specified properties. + * @param [properties] Properties to set + * @returns Duration instance + */ + public static create(properties?: google.protobuf.IDuration): google.protobuf.Duration; + + /** + * Encodes the specified Duration message. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages. + * @param message Duration message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IDuration, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Duration message, length delimited. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages. + * @param message Duration message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IDuration, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Duration message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Duration + * @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.protobuf.Duration; + + /** + * Decodes a Duration message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Duration + * @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.protobuf.Duration; + + /** + * Verifies a Duration 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 Duration message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Duration + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.Duration; + + /** + * Creates a plain object from a Duration message. Also converts values to other types if specified. + * @param message Duration + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.Duration, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Duration to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a Struct. */ + interface IStruct { + + /** Struct fields */ + fields?: ({ [k: string]: google.protobuf.IValue }|null); + } + + /** Represents a Struct. */ + class Struct implements IStruct { + + /** + * Constructs a new Struct. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IStruct); + + /** Struct fields. */ + public fields: { [k: string]: google.protobuf.IValue }; + + /** + * Creates a new Struct instance using the specified properties. + * @param [properties] Properties to set + * @returns Struct instance + */ + public static create(properties?: google.protobuf.IStruct): google.protobuf.Struct; + + /** + * Encodes the specified Struct message. Does not implicitly {@link google.protobuf.Struct.verify|verify} messages. + * @param message Struct message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IStruct, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Struct message, length delimited. Does not implicitly {@link google.protobuf.Struct.verify|verify} messages. + * @param message Struct message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IStruct, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Struct message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Struct + * @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.protobuf.Struct; + + /** + * Decodes a Struct message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Struct + * @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.protobuf.Struct; + + /** + * Verifies a Struct 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 Struct message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Struct + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.Struct; + + /** + * Creates a plain object from a Struct message. Also converts values to other types if specified. + * @param message Struct + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.Struct, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Struct to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a Value. */ + interface IValue { + + /** Value nullValue */ + nullValue?: (google.protobuf.NullValue|null); + + /** Value numberValue */ + numberValue?: (number|null); + + /** Value stringValue */ + stringValue?: (string|null); + + /** Value boolValue */ + boolValue?: (boolean|null); + + /** Value structValue */ + structValue?: (google.protobuf.IStruct|null); + + /** Value listValue */ + listValue?: (google.protobuf.IListValue|null); + } + + /** Represents a Value. */ + class Value implements IValue { + + /** + * Constructs a new Value. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IValue); + + /** Value nullValue. */ + public nullValue: google.protobuf.NullValue; + + /** Value numberValue. */ + public numberValue: number; + + /** Value stringValue. */ + public stringValue: string; + + /** Value boolValue. */ + public boolValue: boolean; + + /** Value structValue. */ + public structValue?: (google.protobuf.IStruct|null); + + /** Value listValue. */ + public listValue?: (google.protobuf.IListValue|null); + + /** Value kind. */ + public kind?: ("nullValue"|"numberValue"|"stringValue"|"boolValue"|"structValue"|"listValue"); + + /** + * Creates a new Value instance using the specified properties. + * @param [properties] Properties to set + * @returns Value instance + */ + public static create(properties?: google.protobuf.IValue): google.protobuf.Value; + + /** + * Encodes the specified Value message. Does not implicitly {@link google.protobuf.Value.verify|verify} messages. + * @param message Value message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IValue, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Value message, length delimited. Does not implicitly {@link google.protobuf.Value.verify|verify} messages. + * @param message Value message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IValue, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Value message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Value + * @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.protobuf.Value; + + /** + * Decodes a Value message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Value + * @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.protobuf.Value; + + /** + * Verifies a Value 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 Value message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Value + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.Value; + + /** + * Creates a plain object from a Value message. Also converts values to other types if specified. + * @param message Value + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.Value, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Value to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** NullValue enum. */ + enum NullValue { + NULL_VALUE = 0 + } + + /** Properties of a ListValue. */ + interface IListValue { + + /** ListValue values */ + values?: (google.protobuf.IValue[]|null); + } + + /** Represents a ListValue. */ + class ListValue implements IListValue { + + /** + * Constructs a new ListValue. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IListValue); + + /** ListValue values. */ + public values: google.protobuf.IValue[]; + + /** + * Creates a new ListValue instance using the specified properties. + * @param [properties] Properties to set + * @returns ListValue instance + */ + public static create(properties?: google.protobuf.IListValue): google.protobuf.ListValue; + + /** + * Encodes the specified ListValue message. Does not implicitly {@link google.protobuf.ListValue.verify|verify} messages. + * @param message ListValue message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IListValue, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListValue message, length delimited. Does not implicitly {@link google.protobuf.ListValue.verify|verify} messages. + * @param message ListValue message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IListValue, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListValue message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListValue + * @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.protobuf.ListValue; + + /** + * Decodes a ListValue message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListValue + * @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.protobuf.ListValue; + + /** + * Verifies a ListValue 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 ListValue message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListValue + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.ListValue; + + /** + * Creates a plain object from a ListValue message. Also converts values to other types if specified. + * @param message ListValue + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.ListValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListValue to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a Timestamp. */ + interface ITimestamp { + + /** Timestamp seconds */ + seconds?: (number|Long|null); + + /** Timestamp nanos */ + nanos?: (number|null); + } + + /** Represents a Timestamp. */ + class Timestamp implements ITimestamp { + + /** + * Constructs a new Timestamp. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.ITimestamp); + + /** Timestamp seconds. */ + public seconds: (number|Long); + + /** Timestamp nanos. */ + public nanos: number; + + /** + * Creates a new Timestamp instance using the specified properties. + * @param [properties] Properties to set + * @returns Timestamp instance + */ + public static create(properties?: google.protobuf.ITimestamp): google.protobuf.Timestamp; + + /** + * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages. + * @param message Timestamp message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages. + * @param message Timestamp message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Timestamp message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Timestamp + * @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.protobuf.Timestamp; + + /** + * Decodes a Timestamp message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Timestamp + * @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.protobuf.Timestamp; + + /** + * Verifies a Timestamp 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 Timestamp message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Timestamp + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.Timestamp; + + /** + * Creates a plain object from a Timestamp message. Also converts values to other types if specified. + * @param message Timestamp + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.Timestamp, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Timestamp to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + + /** Namespace type. */ + namespace type { + + /** Properties of a Money. */ + interface IMoney { + + /** Money currencyCode */ + currencyCode?: (string|null); + + /** Money units */ + units?: (number|Long|null); + + /** Money nanos */ + nanos?: (number|null); + } + + /** Represents a Money. */ + class Money implements IMoney { + + /** + * Constructs a new Money. + * @param [properties] Properties to set + */ + constructor(properties?: google.type.IMoney); + + /** Money currencyCode. */ + public currencyCode: string; + + /** Money units. */ + public units: (number|Long); + + /** Money nanos. */ + public nanos: number; + + /** + * Creates a new Money instance using the specified properties. + * @param [properties] Properties to set + * @returns Money instance + */ + public static create(properties?: google.type.IMoney): google.type.Money; + + /** + * Encodes the specified Money message. Does not implicitly {@link google.type.Money.verify|verify} messages. + * @param message Money message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.type.IMoney, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Money message, length delimited. Does not implicitly {@link google.type.Money.verify|verify} messages. + * @param message Money message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.type.IMoney, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Money message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Money + * @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.type.Money; + + /** + * Decodes a Money message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Money + * @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.type.Money; + + /** + * Verifies a Money 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 Money message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Money + */ + public static fromObject(object: { [k: string]: any }): google.type.Money; + + /** + * Creates a plain object from a Money message. Also converts values to other types if specified. + * @param message Money + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.type.Money, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Money to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } +} diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js new file mode 100644 index 00000000000..af0d8aaeaa7 --- /dev/null +++ b/packages/google-cloud-recommender/protos/protos.js @@ -0,0 +1,15679 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// 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. + +/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/ +(function(global, factory) { /* global define, require, module */ + + /* AMD */ if (typeof define === 'function' && define.amd) + define(["protobufjs/minimal"], factory); + + /* CommonJS */ else if (typeof require === 'function' && typeof module === 'object' && module && module.exports) + module.exports = factory(require("protobufjs/minimal")); + +})(this, function($protobuf) { + "use strict"; + + // Common aliases + var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util; + + // Exported root namespace + var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {}); + + $root.google = (function() { + + /** + * Namespace google. + * @exports google + * @namespace + */ + var google = {}; + + google.cloud = (function() { + + /** + * Namespace cloud. + * @memberof google + * @namespace + */ + var cloud = {}; + + cloud.recommender = (function() { + + /** + * Namespace recommender. + * @memberof google.cloud + * @namespace + */ + var recommender = {}; + + recommender.v1beta1 = (function() { + + /** + * Namespace v1beta1. + * @memberof google.cloud.recommender + * @namespace + */ + var v1beta1 = {}; + + v1beta1.Recommendation = (function() { + + /** + * Properties of a Recommendation. + * @memberof google.cloud.recommender.v1beta1 + * @interface IRecommendation + * @property {string|null} [name] Recommendation name + * @property {string|null} [description] Recommendation description + * @property {string|null} [recommenderSubtype] Recommendation recommenderSubtype + * @property {google.protobuf.ITimestamp|null} [lastRefreshTime] Recommendation lastRefreshTime + * @property {google.cloud.recommender.v1beta1.IImpact|null} [primaryImpact] Recommendation primaryImpact + * @property {Array.|null} [additionalImpact] Recommendation additionalImpact + * @property {google.cloud.recommender.v1beta1.IRecommendationContent|null} [content] Recommendation content + * @property {google.cloud.recommender.v1beta1.IRecommendationStateInfo|null} [stateInfo] Recommendation stateInfo + * @property {string|null} [etag] Recommendation etag + */ + + /** + * Constructs a new Recommendation. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents a Recommendation. + * @implements IRecommendation + * @constructor + * @param {google.cloud.recommender.v1beta1.IRecommendation=} [properties] Properties to set + */ + function Recommendation(properties) { + this.additionalImpact = []; + 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]]; + } + + /** + * Recommendation name. + * @member {string} name + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @instance + */ + Recommendation.prototype.name = ""; + + /** + * Recommendation description. + * @member {string} description + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @instance + */ + Recommendation.prototype.description = ""; + + /** + * Recommendation recommenderSubtype. + * @member {string} recommenderSubtype + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @instance + */ + Recommendation.prototype.recommenderSubtype = ""; + + /** + * Recommendation lastRefreshTime. + * @member {google.protobuf.ITimestamp|null|undefined} lastRefreshTime + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @instance + */ + Recommendation.prototype.lastRefreshTime = null; + + /** + * Recommendation primaryImpact. + * @member {google.cloud.recommender.v1beta1.IImpact|null|undefined} primaryImpact + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @instance + */ + Recommendation.prototype.primaryImpact = null; + + /** + * Recommendation additionalImpact. + * @member {Array.} additionalImpact + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @instance + */ + Recommendation.prototype.additionalImpact = $util.emptyArray; + + /** + * Recommendation content. + * @member {google.cloud.recommender.v1beta1.IRecommendationContent|null|undefined} content + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @instance + */ + Recommendation.prototype.content = null; + + /** + * Recommendation stateInfo. + * @member {google.cloud.recommender.v1beta1.IRecommendationStateInfo|null|undefined} stateInfo + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @instance + */ + Recommendation.prototype.stateInfo = null; + + /** + * Recommendation etag. + * @member {string} etag + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @instance + */ + Recommendation.prototype.etag = ""; + + /** + * Creates a new Recommendation instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @static + * @param {google.cloud.recommender.v1beta1.IRecommendation=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.Recommendation} Recommendation instance + */ + Recommendation.create = function create(properties) { + return new Recommendation(properties); + }; + + /** + * Encodes the specified Recommendation message. Does not implicitly {@link google.cloud.recommender.v1beta1.Recommendation.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @static + * @param {google.cloud.recommender.v1beta1.IRecommendation} message Recommendation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Recommendation.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.description != null && message.hasOwnProperty("description")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.description); + if (message.lastRefreshTime != null && message.hasOwnProperty("lastRefreshTime")) + $root.google.protobuf.Timestamp.encode(message.lastRefreshTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.primaryImpact != null && message.hasOwnProperty("primaryImpact")) + $root.google.cloud.recommender.v1beta1.Impact.encode(message.primaryImpact, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.additionalImpact != null && message.additionalImpact.length) + for (var i = 0; i < message.additionalImpact.length; ++i) + $root.google.cloud.recommender.v1beta1.Impact.encode(message.additionalImpact[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.content != null && message.hasOwnProperty("content")) + $root.google.cloud.recommender.v1beta1.RecommendationContent.encode(message.content, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) + $root.google.cloud.recommender.v1beta1.RecommendationStateInfo.encode(message.stateInfo, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + if (message.etag != null && message.hasOwnProperty("etag")) + writer.uint32(/* id 11, wireType 2 =*/90).string(message.etag); + if (message.recommenderSubtype != null && message.hasOwnProperty("recommenderSubtype")) + writer.uint32(/* id 12, wireType 2 =*/98).string(message.recommenderSubtype); + return writer; + }; + + /** + * Encodes the specified Recommendation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.Recommendation.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @static + * @param {google.cloud.recommender.v1beta1.IRecommendation} message Recommendation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Recommendation.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Recommendation message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.Recommendation} Recommendation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Recommendation.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.Recommendation(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.description = reader.string(); + break; + case 12: + message.recommenderSubtype = reader.string(); + break; + case 4: + message.lastRefreshTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + case 5: + message.primaryImpact = $root.google.cloud.recommender.v1beta1.Impact.decode(reader, reader.uint32()); + break; + case 6: + if (!(message.additionalImpact && message.additionalImpact.length)) + message.additionalImpact = []; + message.additionalImpact.push($root.google.cloud.recommender.v1beta1.Impact.decode(reader, reader.uint32())); + break; + case 7: + message.content = $root.google.cloud.recommender.v1beta1.RecommendationContent.decode(reader, reader.uint32()); + break; + case 10: + message.stateInfo = $root.google.cloud.recommender.v1beta1.RecommendationStateInfo.decode(reader, reader.uint32()); + break; + case 11: + message.etag = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Recommendation message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.Recommendation} Recommendation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Recommendation.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Recommendation message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Recommendation.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.description != null && message.hasOwnProperty("description")) + if (!$util.isString(message.description)) + return "description: string expected"; + if (message.recommenderSubtype != null && message.hasOwnProperty("recommenderSubtype")) + if (!$util.isString(message.recommenderSubtype)) + return "recommenderSubtype: string expected"; + if (message.lastRefreshTime != null && message.hasOwnProperty("lastRefreshTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.lastRefreshTime); + if (error) + return "lastRefreshTime." + error; + } + if (message.primaryImpact != null && message.hasOwnProperty("primaryImpact")) { + var error = $root.google.cloud.recommender.v1beta1.Impact.verify(message.primaryImpact); + if (error) + return "primaryImpact." + error; + } + if (message.additionalImpact != null && message.hasOwnProperty("additionalImpact")) { + if (!Array.isArray(message.additionalImpact)) + return "additionalImpact: array expected"; + for (var i = 0; i < message.additionalImpact.length; ++i) { + var error = $root.google.cloud.recommender.v1beta1.Impact.verify(message.additionalImpact[i]); + if (error) + return "additionalImpact." + error; + } + } + if (message.content != null && message.hasOwnProperty("content")) { + var error = $root.google.cloud.recommender.v1beta1.RecommendationContent.verify(message.content); + if (error) + return "content." + error; + } + if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) { + var error = $root.google.cloud.recommender.v1beta1.RecommendationStateInfo.verify(message.stateInfo); + if (error) + return "stateInfo." + error; + } + if (message.etag != null && message.hasOwnProperty("etag")) + if (!$util.isString(message.etag)) + return "etag: string expected"; + return null; + }; + + /** + * Creates a Recommendation message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.Recommendation} Recommendation + */ + Recommendation.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.Recommendation) + return object; + var message = new $root.google.cloud.recommender.v1beta1.Recommendation(); + if (object.name != null) + message.name = String(object.name); + if (object.description != null) + message.description = String(object.description); + if (object.recommenderSubtype != null) + message.recommenderSubtype = String(object.recommenderSubtype); + if (object.lastRefreshTime != null) { + if (typeof object.lastRefreshTime !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.Recommendation.lastRefreshTime: object expected"); + message.lastRefreshTime = $root.google.protobuf.Timestamp.fromObject(object.lastRefreshTime); + } + if (object.primaryImpact != null) { + if (typeof object.primaryImpact !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.Recommendation.primaryImpact: object expected"); + message.primaryImpact = $root.google.cloud.recommender.v1beta1.Impact.fromObject(object.primaryImpact); + } + if (object.additionalImpact) { + if (!Array.isArray(object.additionalImpact)) + throw TypeError(".google.cloud.recommender.v1beta1.Recommendation.additionalImpact: array expected"); + message.additionalImpact = []; + for (var i = 0; i < object.additionalImpact.length; ++i) { + if (typeof object.additionalImpact[i] !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.Recommendation.additionalImpact: object expected"); + message.additionalImpact[i] = $root.google.cloud.recommender.v1beta1.Impact.fromObject(object.additionalImpact[i]); + } + } + if (object.content != null) { + if (typeof object.content !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.Recommendation.content: object expected"); + message.content = $root.google.cloud.recommender.v1beta1.RecommendationContent.fromObject(object.content); + } + if (object.stateInfo != null) { + if (typeof object.stateInfo !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.Recommendation.stateInfo: object expected"); + message.stateInfo = $root.google.cloud.recommender.v1beta1.RecommendationStateInfo.fromObject(object.stateInfo); + } + if (object.etag != null) + message.etag = String(object.etag); + return message; + }; + + /** + * Creates a plain object from a Recommendation message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @static + * @param {google.cloud.recommender.v1beta1.Recommendation} message Recommendation + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Recommendation.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.additionalImpact = []; + if (options.defaults) { + object.name = ""; + object.description = ""; + object.lastRefreshTime = null; + object.primaryImpact = null; + object.content = null; + object.stateInfo = null; + object.etag = ""; + object.recommenderSubtype = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.description != null && message.hasOwnProperty("description")) + object.description = message.description; + if (message.lastRefreshTime != null && message.hasOwnProperty("lastRefreshTime")) + object.lastRefreshTime = $root.google.protobuf.Timestamp.toObject(message.lastRefreshTime, options); + if (message.primaryImpact != null && message.hasOwnProperty("primaryImpact")) + object.primaryImpact = $root.google.cloud.recommender.v1beta1.Impact.toObject(message.primaryImpact, options); + if (message.additionalImpact && message.additionalImpact.length) { + object.additionalImpact = []; + for (var j = 0; j < message.additionalImpact.length; ++j) + object.additionalImpact[j] = $root.google.cloud.recommender.v1beta1.Impact.toObject(message.additionalImpact[j], options); + } + if (message.content != null && message.hasOwnProperty("content")) + object.content = $root.google.cloud.recommender.v1beta1.RecommendationContent.toObject(message.content, options); + if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) + object.stateInfo = $root.google.cloud.recommender.v1beta1.RecommendationStateInfo.toObject(message.stateInfo, options); + if (message.etag != null && message.hasOwnProperty("etag")) + object.etag = message.etag; + if (message.recommenderSubtype != null && message.hasOwnProperty("recommenderSubtype")) + object.recommenderSubtype = message.recommenderSubtype; + return object; + }; + + /** + * Converts this Recommendation to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.Recommendation + * @instance + * @returns {Object.} JSON object + */ + Recommendation.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Recommendation; + })(); + + v1beta1.RecommendationContent = (function() { + + /** + * Properties of a RecommendationContent. + * @memberof google.cloud.recommender.v1beta1 + * @interface IRecommendationContent + * @property {Array.|null} [operationGroups] RecommendationContent operationGroups + */ + + /** + * Constructs a new RecommendationContent. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents a RecommendationContent. + * @implements IRecommendationContent + * @constructor + * @param {google.cloud.recommender.v1beta1.IRecommendationContent=} [properties] Properties to set + */ + function RecommendationContent(properties) { + this.operationGroups = []; + 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]]; + } + + /** + * RecommendationContent operationGroups. + * @member {Array.} operationGroups + * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @instance + */ + RecommendationContent.prototype.operationGroups = $util.emptyArray; + + /** + * Creates a new RecommendationContent instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @static + * @param {google.cloud.recommender.v1beta1.IRecommendationContent=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.RecommendationContent} RecommendationContent instance + */ + RecommendationContent.create = function create(properties) { + return new RecommendationContent(properties); + }; + + /** + * Encodes the specified RecommendationContent message. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationContent.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @static + * @param {google.cloud.recommender.v1beta1.IRecommendationContent} message RecommendationContent message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RecommendationContent.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.operationGroups != null && message.operationGroups.length) + for (var i = 0; i < message.operationGroups.length; ++i) + $root.google.cloud.recommender.v1beta1.OperationGroup.encode(message.operationGroups[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified RecommendationContent message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationContent.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @static + * @param {google.cloud.recommender.v1beta1.IRecommendationContent} message RecommendationContent message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RecommendationContent.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RecommendationContent message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.RecommendationContent} RecommendationContent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RecommendationContent.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.RecommendationContent(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + if (!(message.operationGroups && message.operationGroups.length)) + message.operationGroups = []; + message.operationGroups.push($root.google.cloud.recommender.v1beta1.OperationGroup.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RecommendationContent message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.RecommendationContent} RecommendationContent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RecommendationContent.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RecommendationContent message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RecommendationContent.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.operationGroups != null && message.hasOwnProperty("operationGroups")) { + if (!Array.isArray(message.operationGroups)) + return "operationGroups: array expected"; + for (var i = 0; i < message.operationGroups.length; ++i) { + var error = $root.google.cloud.recommender.v1beta1.OperationGroup.verify(message.operationGroups[i]); + if (error) + return "operationGroups." + error; + } + } + return null; + }; + + /** + * Creates a RecommendationContent message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.RecommendationContent} RecommendationContent + */ + RecommendationContent.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.RecommendationContent) + return object; + var message = new $root.google.cloud.recommender.v1beta1.RecommendationContent(); + if (object.operationGroups) { + if (!Array.isArray(object.operationGroups)) + throw TypeError(".google.cloud.recommender.v1beta1.RecommendationContent.operationGroups: array expected"); + message.operationGroups = []; + for (var i = 0; i < object.operationGroups.length; ++i) { + if (typeof object.operationGroups[i] !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.RecommendationContent.operationGroups: object expected"); + message.operationGroups[i] = $root.google.cloud.recommender.v1beta1.OperationGroup.fromObject(object.operationGroups[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a RecommendationContent message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @static + * @param {google.cloud.recommender.v1beta1.RecommendationContent} message RecommendationContent + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RecommendationContent.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.operationGroups = []; + if (message.operationGroups && message.operationGroups.length) { + object.operationGroups = []; + for (var j = 0; j < message.operationGroups.length; ++j) + object.operationGroups[j] = $root.google.cloud.recommender.v1beta1.OperationGroup.toObject(message.operationGroups[j], options); + } + return object; + }; + + /** + * Converts this RecommendationContent to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @instance + * @returns {Object.} JSON object + */ + RecommendationContent.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return RecommendationContent; + })(); + + v1beta1.OperationGroup = (function() { + + /** + * Properties of an OperationGroup. + * @memberof google.cloud.recommender.v1beta1 + * @interface IOperationGroup + * @property {Array.|null} [operations] OperationGroup operations + */ + + /** + * Constructs a new OperationGroup. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents an OperationGroup. + * @implements IOperationGroup + * @constructor + * @param {google.cloud.recommender.v1beta1.IOperationGroup=} [properties] Properties to set + */ + function OperationGroup(properties) { + this.operations = []; + 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]]; + } + + /** + * OperationGroup operations. + * @member {Array.} operations + * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @instance + */ + OperationGroup.prototype.operations = $util.emptyArray; + + /** + * Creates a new OperationGroup instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @static + * @param {google.cloud.recommender.v1beta1.IOperationGroup=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.OperationGroup} OperationGroup instance + */ + OperationGroup.create = function create(properties) { + return new OperationGroup(properties); + }; + + /** + * Encodes the specified OperationGroup message. Does not implicitly {@link google.cloud.recommender.v1beta1.OperationGroup.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @static + * @param {google.cloud.recommender.v1beta1.IOperationGroup} message OperationGroup message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OperationGroup.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.operations != null && message.operations.length) + for (var i = 0; i < message.operations.length; ++i) + $root.google.cloud.recommender.v1beta1.Operation.encode(message.operations[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified OperationGroup message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.OperationGroup.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @static + * @param {google.cloud.recommender.v1beta1.IOperationGroup} message OperationGroup message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OperationGroup.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an OperationGroup message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.OperationGroup} OperationGroup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OperationGroup.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.OperationGroup(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.operations && message.operations.length)) + message.operations = []; + message.operations.push($root.google.cloud.recommender.v1beta1.Operation.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an OperationGroup message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.OperationGroup} OperationGroup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OperationGroup.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an OperationGroup message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + OperationGroup.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.operations != null && message.hasOwnProperty("operations")) { + if (!Array.isArray(message.operations)) + return "operations: array expected"; + for (var i = 0; i < message.operations.length; ++i) { + var error = $root.google.cloud.recommender.v1beta1.Operation.verify(message.operations[i]); + if (error) + return "operations." + error; + } + } + return null; + }; + + /** + * Creates an OperationGroup message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.OperationGroup} OperationGroup + */ + OperationGroup.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.OperationGroup) + return object; + var message = new $root.google.cloud.recommender.v1beta1.OperationGroup(); + if (object.operations) { + if (!Array.isArray(object.operations)) + throw TypeError(".google.cloud.recommender.v1beta1.OperationGroup.operations: array expected"); + message.operations = []; + for (var i = 0; i < object.operations.length; ++i) { + if (typeof object.operations[i] !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.OperationGroup.operations: object expected"); + message.operations[i] = $root.google.cloud.recommender.v1beta1.Operation.fromObject(object.operations[i]); + } + } + return message; + }; + + /** + * Creates a plain object from an OperationGroup message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @static + * @param {google.cloud.recommender.v1beta1.OperationGroup} message OperationGroup + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + OperationGroup.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.operations = []; + if (message.operations && message.operations.length) { + object.operations = []; + for (var j = 0; j < message.operations.length; ++j) + object.operations[j] = $root.google.cloud.recommender.v1beta1.Operation.toObject(message.operations[j], options); + } + return object; + }; + + /** + * Converts this OperationGroup to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @instance + * @returns {Object.} JSON object + */ + OperationGroup.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return OperationGroup; + })(); + + v1beta1.Operation = (function() { + + /** + * Properties of an Operation. + * @memberof google.cloud.recommender.v1beta1 + * @interface IOperation + * @property {string|null} [action] Operation action + * @property {string|null} [resourceType] Operation resourceType + * @property {string|null} [resource] Operation resource + * @property {string|null} [path] Operation path + * @property {string|null} [sourceResource] Operation sourceResource + * @property {string|null} [sourcePath] Operation sourcePath + * @property {google.protobuf.IValue|null} [value] Operation value + * @property {google.cloud.recommender.v1beta1.IValueMatcher|null} [valueMatcher] Operation valueMatcher + * @property {Object.|null} [pathFilters] Operation pathFilters + * @property {Object.|null} [pathValueMatchers] Operation pathValueMatchers + */ + + /** + * Constructs a new Operation. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents an Operation. + * @implements IOperation + * @constructor + * @param {google.cloud.recommender.v1beta1.IOperation=} [properties] Properties to set + */ + function Operation(properties) { + this.pathFilters = {}; + this.pathValueMatchers = {}; + 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]]; + } + + /** + * Operation action. + * @member {string} action + * @memberof google.cloud.recommender.v1beta1.Operation + * @instance + */ + Operation.prototype.action = ""; + + /** + * Operation resourceType. + * @member {string} resourceType + * @memberof google.cloud.recommender.v1beta1.Operation + * @instance + */ + Operation.prototype.resourceType = ""; + + /** + * Operation resource. + * @member {string} resource + * @memberof google.cloud.recommender.v1beta1.Operation + * @instance + */ + Operation.prototype.resource = ""; + + /** + * Operation path. + * @member {string} path + * @memberof google.cloud.recommender.v1beta1.Operation + * @instance + */ + Operation.prototype.path = ""; + + /** + * Operation sourceResource. + * @member {string} sourceResource + * @memberof google.cloud.recommender.v1beta1.Operation + * @instance + */ + Operation.prototype.sourceResource = ""; + + /** + * Operation sourcePath. + * @member {string} sourcePath + * @memberof google.cloud.recommender.v1beta1.Operation + * @instance + */ + Operation.prototype.sourcePath = ""; + + /** + * Operation value. + * @member {google.protobuf.IValue|null|undefined} value + * @memberof google.cloud.recommender.v1beta1.Operation + * @instance + */ + Operation.prototype.value = null; + + /** + * Operation valueMatcher. + * @member {google.cloud.recommender.v1beta1.IValueMatcher|null|undefined} valueMatcher + * @memberof google.cloud.recommender.v1beta1.Operation + * @instance + */ + Operation.prototype.valueMatcher = null; + + /** + * Operation pathFilters. + * @member {Object.} pathFilters + * @memberof google.cloud.recommender.v1beta1.Operation + * @instance + */ + Operation.prototype.pathFilters = $util.emptyObject; + + /** + * Operation pathValueMatchers. + * @member {Object.} pathValueMatchers + * @memberof google.cloud.recommender.v1beta1.Operation + * @instance + */ + Operation.prototype.pathValueMatchers = $util.emptyObject; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * Operation pathValue. + * @member {"value"|"valueMatcher"|undefined} pathValue + * @memberof google.cloud.recommender.v1beta1.Operation + * @instance + */ + Object.defineProperty(Operation.prototype, "pathValue", { + get: $util.oneOfGetter($oneOfFields = ["value", "valueMatcher"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Operation instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.Operation + * @static + * @param {google.cloud.recommender.v1beta1.IOperation=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.Operation} Operation instance + */ + Operation.create = function create(properties) { + return new Operation(properties); + }; + + /** + * Encodes the specified Operation message. Does not implicitly {@link google.cloud.recommender.v1beta1.Operation.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.Operation + * @static + * @param {google.cloud.recommender.v1beta1.IOperation} message Operation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Operation.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.action != null && message.hasOwnProperty("action")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.action); + if (message.resourceType != null && message.hasOwnProperty("resourceType")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.resourceType); + if (message.resource != null && message.hasOwnProperty("resource")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.resource); + if (message.path != null && message.hasOwnProperty("path")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.path); + if (message.sourceResource != null && message.hasOwnProperty("sourceResource")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.sourceResource); + if (message.sourcePath != null && message.hasOwnProperty("sourcePath")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.sourcePath); + if (message.value != null && message.hasOwnProperty("value")) + $root.google.protobuf.Value.encode(message.value, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.pathFilters != null && message.hasOwnProperty("pathFilters")) + for (var keys = Object.keys(message.pathFilters), i = 0; i < keys.length; ++i) { + writer.uint32(/* id 8, wireType 2 =*/66).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); + $root.google.protobuf.Value.encode(message.pathFilters[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); + } + if (message.valueMatcher != null && message.hasOwnProperty("valueMatcher")) + $root.google.cloud.recommender.v1beta1.ValueMatcher.encode(message.valueMatcher, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + if (message.pathValueMatchers != null && message.hasOwnProperty("pathValueMatchers")) + for (var keys = Object.keys(message.pathValueMatchers), i = 0; i < keys.length; ++i) { + writer.uint32(/* id 11, wireType 2 =*/90).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); + $root.google.cloud.recommender.v1beta1.ValueMatcher.encode(message.pathValueMatchers[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); + } + return writer; + }; + + /** + * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.Operation.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.Operation + * @static + * @param {google.cloud.recommender.v1beta1.IOperation} message Operation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Operation.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an Operation message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.Operation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.Operation} Operation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Operation.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.Operation(), key; + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.action = reader.string(); + break; + case 2: + message.resourceType = reader.string(); + break; + case 3: + message.resource = reader.string(); + break; + case 4: + message.path = reader.string(); + break; + case 5: + message.sourceResource = reader.string(); + break; + case 6: + message.sourcePath = reader.string(); + break; + case 7: + message.value = $root.google.protobuf.Value.decode(reader, reader.uint32()); + break; + case 10: + message.valueMatcher = $root.google.cloud.recommender.v1beta1.ValueMatcher.decode(reader, reader.uint32()); + break; + case 8: + reader.skip().pos++; + if (message.pathFilters === $util.emptyObject) + message.pathFilters = {}; + key = reader.string(); + reader.pos++; + message.pathFilters[key] = $root.google.protobuf.Value.decode(reader, reader.uint32()); + break; + case 11: + reader.skip().pos++; + if (message.pathValueMatchers === $util.emptyObject) + message.pathValueMatchers = {}; + key = reader.string(); + reader.pos++; + message.pathValueMatchers[key] = $root.google.cloud.recommender.v1beta1.ValueMatcher.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an Operation message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.Operation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.Operation} Operation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Operation.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an Operation message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.Operation + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Operation.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.action != null && message.hasOwnProperty("action")) + if (!$util.isString(message.action)) + return "action: string expected"; + if (message.resourceType != null && message.hasOwnProperty("resourceType")) + if (!$util.isString(message.resourceType)) + return "resourceType: string expected"; + if (message.resource != null && message.hasOwnProperty("resource")) + if (!$util.isString(message.resource)) + return "resource: string expected"; + if (message.path != null && message.hasOwnProperty("path")) + if (!$util.isString(message.path)) + return "path: string expected"; + if (message.sourceResource != null && message.hasOwnProperty("sourceResource")) + if (!$util.isString(message.sourceResource)) + return "sourceResource: string expected"; + if (message.sourcePath != null && message.hasOwnProperty("sourcePath")) + if (!$util.isString(message.sourcePath)) + return "sourcePath: string expected"; + if (message.value != null && message.hasOwnProperty("value")) { + properties.pathValue = 1; + { + var error = $root.google.protobuf.Value.verify(message.value); + if (error) + return "value." + error; + } + } + if (message.valueMatcher != null && message.hasOwnProperty("valueMatcher")) { + if (properties.pathValue === 1) + return "pathValue: multiple values"; + properties.pathValue = 1; + { + var error = $root.google.cloud.recommender.v1beta1.ValueMatcher.verify(message.valueMatcher); + if (error) + return "valueMatcher." + error; + } + } + if (message.pathFilters != null && message.hasOwnProperty("pathFilters")) { + if (!$util.isObject(message.pathFilters)) + return "pathFilters: object expected"; + var key = Object.keys(message.pathFilters); + for (var i = 0; i < key.length; ++i) { + var error = $root.google.protobuf.Value.verify(message.pathFilters[key[i]]); + if (error) + return "pathFilters." + error; + } + } + if (message.pathValueMatchers != null && message.hasOwnProperty("pathValueMatchers")) { + if (!$util.isObject(message.pathValueMatchers)) + return "pathValueMatchers: object expected"; + var key = Object.keys(message.pathValueMatchers); + for (var i = 0; i < key.length; ++i) { + var error = $root.google.cloud.recommender.v1beta1.ValueMatcher.verify(message.pathValueMatchers[key[i]]); + if (error) + return "pathValueMatchers." + error; + } + } + return null; + }; + + /** + * Creates an Operation message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.Operation + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.Operation} Operation + */ + Operation.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.Operation) + return object; + var message = new $root.google.cloud.recommender.v1beta1.Operation(); + if (object.action != null) + message.action = String(object.action); + if (object.resourceType != null) + message.resourceType = String(object.resourceType); + if (object.resource != null) + message.resource = String(object.resource); + if (object.path != null) + message.path = String(object.path); + if (object.sourceResource != null) + message.sourceResource = String(object.sourceResource); + if (object.sourcePath != null) + message.sourcePath = String(object.sourcePath); + if (object.value != null) { + if (typeof object.value !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.Operation.value: object expected"); + message.value = $root.google.protobuf.Value.fromObject(object.value); + } + if (object.valueMatcher != null) { + if (typeof object.valueMatcher !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.Operation.valueMatcher: object expected"); + message.valueMatcher = $root.google.cloud.recommender.v1beta1.ValueMatcher.fromObject(object.valueMatcher); + } + if (object.pathFilters) { + if (typeof object.pathFilters !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.Operation.pathFilters: object expected"); + message.pathFilters = {}; + for (var keys = Object.keys(object.pathFilters), i = 0; i < keys.length; ++i) { + if (typeof object.pathFilters[keys[i]] !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.Operation.pathFilters: object expected"); + message.pathFilters[keys[i]] = $root.google.protobuf.Value.fromObject(object.pathFilters[keys[i]]); + } + } + if (object.pathValueMatchers) { + if (typeof object.pathValueMatchers !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.Operation.pathValueMatchers: object expected"); + message.pathValueMatchers = {}; + for (var keys = Object.keys(object.pathValueMatchers), i = 0; i < keys.length; ++i) { + if (typeof object.pathValueMatchers[keys[i]] !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.Operation.pathValueMatchers: object expected"); + message.pathValueMatchers[keys[i]] = $root.google.cloud.recommender.v1beta1.ValueMatcher.fromObject(object.pathValueMatchers[keys[i]]); + } + } + return message; + }; + + /** + * Creates a plain object from an Operation message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.Operation + * @static + * @param {google.cloud.recommender.v1beta1.Operation} message Operation + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Operation.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.objects || options.defaults) { + object.pathFilters = {}; + object.pathValueMatchers = {}; + } + if (options.defaults) { + object.action = ""; + object.resourceType = ""; + object.resource = ""; + object.path = ""; + object.sourceResource = ""; + object.sourcePath = ""; + } + if (message.action != null && message.hasOwnProperty("action")) + object.action = message.action; + if (message.resourceType != null && message.hasOwnProperty("resourceType")) + object.resourceType = message.resourceType; + if (message.resource != null && message.hasOwnProperty("resource")) + object.resource = message.resource; + if (message.path != null && message.hasOwnProperty("path")) + object.path = message.path; + if (message.sourceResource != null && message.hasOwnProperty("sourceResource")) + object.sourceResource = message.sourceResource; + if (message.sourcePath != null && message.hasOwnProperty("sourcePath")) + object.sourcePath = message.sourcePath; + if (message.value != null && message.hasOwnProperty("value")) { + object.value = $root.google.protobuf.Value.toObject(message.value, options); + if (options.oneofs) + object.pathValue = "value"; + } + var keys2; + if (message.pathFilters && (keys2 = Object.keys(message.pathFilters)).length) { + object.pathFilters = {}; + for (var j = 0; j < keys2.length; ++j) + object.pathFilters[keys2[j]] = $root.google.protobuf.Value.toObject(message.pathFilters[keys2[j]], options); + } + if (message.valueMatcher != null && message.hasOwnProperty("valueMatcher")) { + object.valueMatcher = $root.google.cloud.recommender.v1beta1.ValueMatcher.toObject(message.valueMatcher, options); + if (options.oneofs) + object.pathValue = "valueMatcher"; + } + if (message.pathValueMatchers && (keys2 = Object.keys(message.pathValueMatchers)).length) { + object.pathValueMatchers = {}; + for (var j = 0; j < keys2.length; ++j) + object.pathValueMatchers[keys2[j]] = $root.google.cloud.recommender.v1beta1.ValueMatcher.toObject(message.pathValueMatchers[keys2[j]], options); + } + return object; + }; + + /** + * Converts this Operation to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.Operation + * @instance + * @returns {Object.} JSON object + */ + Operation.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Operation; + })(); + + v1beta1.ValueMatcher = (function() { + + /** + * Properties of a ValueMatcher. + * @memberof google.cloud.recommender.v1beta1 + * @interface IValueMatcher + * @property {string|null} [matchesPattern] ValueMatcher matchesPattern + */ + + /** + * Constructs a new ValueMatcher. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents a ValueMatcher. + * @implements IValueMatcher + * @constructor + * @param {google.cloud.recommender.v1beta1.IValueMatcher=} [properties] Properties to set + */ + function ValueMatcher(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]]; + } + + /** + * ValueMatcher matchesPattern. + * @member {string} matchesPattern + * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @instance + */ + ValueMatcher.prototype.matchesPattern = ""; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * ValueMatcher matchVariant. + * @member {"matchesPattern"|undefined} matchVariant + * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @instance + */ + Object.defineProperty(ValueMatcher.prototype, "matchVariant", { + get: $util.oneOfGetter($oneOfFields = ["matchesPattern"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ValueMatcher instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @static + * @param {google.cloud.recommender.v1beta1.IValueMatcher=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.ValueMatcher} ValueMatcher instance + */ + ValueMatcher.create = function create(properties) { + return new ValueMatcher(properties); + }; + + /** + * Encodes the specified ValueMatcher message. Does not implicitly {@link google.cloud.recommender.v1beta1.ValueMatcher.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @static + * @param {google.cloud.recommender.v1beta1.IValueMatcher} message ValueMatcher message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ValueMatcher.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.matchesPattern != null && message.hasOwnProperty("matchesPattern")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.matchesPattern); + return writer; + }; + + /** + * Encodes the specified ValueMatcher message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.ValueMatcher.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @static + * @param {google.cloud.recommender.v1beta1.IValueMatcher} message ValueMatcher message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ValueMatcher.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ValueMatcher message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.ValueMatcher} ValueMatcher + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ValueMatcher.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.ValueMatcher(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.matchesPattern = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ValueMatcher message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.ValueMatcher} ValueMatcher + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ValueMatcher.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ValueMatcher message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ValueMatcher.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.matchesPattern != null && message.hasOwnProperty("matchesPattern")) { + properties.matchVariant = 1; + if (!$util.isString(message.matchesPattern)) + return "matchesPattern: string expected"; + } + return null; + }; + + /** + * Creates a ValueMatcher message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.ValueMatcher} ValueMatcher + */ + ValueMatcher.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.ValueMatcher) + return object; + var message = new $root.google.cloud.recommender.v1beta1.ValueMatcher(); + if (object.matchesPattern != null) + message.matchesPattern = String(object.matchesPattern); + return message; + }; + + /** + * Creates a plain object from a ValueMatcher message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @static + * @param {google.cloud.recommender.v1beta1.ValueMatcher} message ValueMatcher + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ValueMatcher.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.matchesPattern != null && message.hasOwnProperty("matchesPattern")) { + object.matchesPattern = message.matchesPattern; + if (options.oneofs) + object.matchVariant = "matchesPattern"; + } + return object; + }; + + /** + * Converts this ValueMatcher to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @instance + * @returns {Object.} JSON object + */ + ValueMatcher.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ValueMatcher; + })(); + + v1beta1.CostProjection = (function() { + + /** + * Properties of a CostProjection. + * @memberof google.cloud.recommender.v1beta1 + * @interface ICostProjection + * @property {google.type.IMoney|null} [cost] CostProjection cost + * @property {google.protobuf.IDuration|null} [duration] CostProjection duration + */ + + /** + * Constructs a new CostProjection. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents a CostProjection. + * @implements ICostProjection + * @constructor + * @param {google.cloud.recommender.v1beta1.ICostProjection=} [properties] Properties to set + */ + function CostProjection(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]]; + } + + /** + * CostProjection cost. + * @member {google.type.IMoney|null|undefined} cost + * @memberof google.cloud.recommender.v1beta1.CostProjection + * @instance + */ + CostProjection.prototype.cost = null; + + /** + * CostProjection duration. + * @member {google.protobuf.IDuration|null|undefined} duration + * @memberof google.cloud.recommender.v1beta1.CostProjection + * @instance + */ + CostProjection.prototype.duration = null; + + /** + * Creates a new CostProjection instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.CostProjection + * @static + * @param {google.cloud.recommender.v1beta1.ICostProjection=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.CostProjection} CostProjection instance + */ + CostProjection.create = function create(properties) { + return new CostProjection(properties); + }; + + /** + * Encodes the specified CostProjection message. Does not implicitly {@link google.cloud.recommender.v1beta1.CostProjection.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.CostProjection + * @static + * @param {google.cloud.recommender.v1beta1.ICostProjection} message CostProjection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CostProjection.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.cost != null && message.hasOwnProperty("cost")) + $root.google.type.Money.encode(message.cost, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.duration != null && message.hasOwnProperty("duration")) + $root.google.protobuf.Duration.encode(message.duration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified CostProjection message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.CostProjection.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.CostProjection + * @static + * @param {google.cloud.recommender.v1beta1.ICostProjection} message CostProjection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CostProjection.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CostProjection message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.CostProjection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.CostProjection} CostProjection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CostProjection.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.CostProjection(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.cost = $root.google.type.Money.decode(reader, reader.uint32()); + break; + case 2: + message.duration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CostProjection message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.CostProjection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.CostProjection} CostProjection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CostProjection.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CostProjection message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.CostProjection + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CostProjection.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.cost != null && message.hasOwnProperty("cost")) { + var error = $root.google.type.Money.verify(message.cost); + if (error) + return "cost." + error; + } + if (message.duration != null && message.hasOwnProperty("duration")) { + var error = $root.google.protobuf.Duration.verify(message.duration); + if (error) + return "duration." + error; + } + return null; + }; + + /** + * Creates a CostProjection message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.CostProjection + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.CostProjection} CostProjection + */ + CostProjection.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.CostProjection) + return object; + var message = new $root.google.cloud.recommender.v1beta1.CostProjection(); + if (object.cost != null) { + if (typeof object.cost !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.CostProjection.cost: object expected"); + message.cost = $root.google.type.Money.fromObject(object.cost); + } + if (object.duration != null) { + if (typeof object.duration !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.CostProjection.duration: object expected"); + message.duration = $root.google.protobuf.Duration.fromObject(object.duration); + } + return message; + }; + + /** + * Creates a plain object from a CostProjection message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.CostProjection + * @static + * @param {google.cloud.recommender.v1beta1.CostProjection} message CostProjection + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CostProjection.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.cost = null; + object.duration = null; + } + if (message.cost != null && message.hasOwnProperty("cost")) + object.cost = $root.google.type.Money.toObject(message.cost, options); + if (message.duration != null && message.hasOwnProperty("duration")) + object.duration = $root.google.protobuf.Duration.toObject(message.duration, options); + return object; + }; + + /** + * Converts this CostProjection to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.CostProjection + * @instance + * @returns {Object.} JSON object + */ + CostProjection.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return CostProjection; + })(); + + v1beta1.Impact = (function() { + + /** + * Properties of an Impact. + * @memberof google.cloud.recommender.v1beta1 + * @interface IImpact + * @property {google.cloud.recommender.v1beta1.Impact.Category|null} [category] Impact category + * @property {google.cloud.recommender.v1beta1.ICostProjection|null} [costProjection] Impact costProjection + */ + + /** + * Constructs a new Impact. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents an Impact. + * @implements IImpact + * @constructor + * @param {google.cloud.recommender.v1beta1.IImpact=} [properties] Properties to set + */ + function Impact(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]]; + } + + /** + * Impact category. + * @member {google.cloud.recommender.v1beta1.Impact.Category} category + * @memberof google.cloud.recommender.v1beta1.Impact + * @instance + */ + Impact.prototype.category = 0; + + /** + * Impact costProjection. + * @member {google.cloud.recommender.v1beta1.ICostProjection|null|undefined} costProjection + * @memberof google.cloud.recommender.v1beta1.Impact + * @instance + */ + Impact.prototype.costProjection = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * Impact projection. + * @member {"costProjection"|undefined} projection + * @memberof google.cloud.recommender.v1beta1.Impact + * @instance + */ + Object.defineProperty(Impact.prototype, "projection", { + get: $util.oneOfGetter($oneOfFields = ["costProjection"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Impact instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.Impact + * @static + * @param {google.cloud.recommender.v1beta1.IImpact=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.Impact} Impact instance + */ + Impact.create = function create(properties) { + return new Impact(properties); + }; + + /** + * Encodes the specified Impact message. Does not implicitly {@link google.cloud.recommender.v1beta1.Impact.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.Impact + * @static + * @param {google.cloud.recommender.v1beta1.IImpact} message Impact message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Impact.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.category != null && message.hasOwnProperty("category")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.category); + if (message.costProjection != null && message.hasOwnProperty("costProjection")) + $root.google.cloud.recommender.v1beta1.CostProjection.encode(message.costProjection, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Impact message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.Impact.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.Impact + * @static + * @param {google.cloud.recommender.v1beta1.IImpact} message Impact message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Impact.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an Impact message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.Impact + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.Impact} Impact + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Impact.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.Impact(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.category = reader.int32(); + break; + case 100: + message.costProjection = $root.google.cloud.recommender.v1beta1.CostProjection.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an Impact message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.Impact + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.Impact} Impact + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Impact.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an Impact message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.Impact + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Impact.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.category != null && message.hasOwnProperty("category")) + switch (message.category) { + default: + return "category: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + if (message.costProjection != null && message.hasOwnProperty("costProjection")) { + properties.projection = 1; + { + var error = $root.google.cloud.recommender.v1beta1.CostProjection.verify(message.costProjection); + if (error) + return "costProjection." + error; + } + } + return null; + }; + + /** + * Creates an Impact message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.Impact + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.Impact} Impact + */ + Impact.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.Impact) + return object; + var message = new $root.google.cloud.recommender.v1beta1.Impact(); + switch (object.category) { + case "CATEGORY_UNSPECIFIED": + case 0: + message.category = 0; + break; + case "COST": + case 1: + message.category = 1; + break; + case "SECURITY": + case 2: + message.category = 2; + break; + case "PERFORMANCE": + case 3: + message.category = 3; + break; + case "MANAGEABILITY": + case 4: + message.category = 4; + break; + } + if (object.costProjection != null) { + if (typeof object.costProjection !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.Impact.costProjection: object expected"); + message.costProjection = $root.google.cloud.recommender.v1beta1.CostProjection.fromObject(object.costProjection); + } + return message; + }; + + /** + * Creates a plain object from an Impact message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.Impact + * @static + * @param {google.cloud.recommender.v1beta1.Impact} message Impact + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Impact.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.category = options.enums === String ? "CATEGORY_UNSPECIFIED" : 0; + if (message.category != null && message.hasOwnProperty("category")) + object.category = options.enums === String ? $root.google.cloud.recommender.v1beta1.Impact.Category[message.category] : message.category; + if (message.costProjection != null && message.hasOwnProperty("costProjection")) { + object.costProjection = $root.google.cloud.recommender.v1beta1.CostProjection.toObject(message.costProjection, options); + if (options.oneofs) + object.projection = "costProjection"; + } + return object; + }; + + /** + * Converts this Impact to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.Impact + * @instance + * @returns {Object.} JSON object + */ + Impact.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Category enum. + * @name google.cloud.recommender.v1beta1.Impact.Category + * @enum {string} + * @property {number} CATEGORY_UNSPECIFIED=0 CATEGORY_UNSPECIFIED value + * @property {number} COST=1 COST value + * @property {number} SECURITY=2 SECURITY value + * @property {number} PERFORMANCE=3 PERFORMANCE value + * @property {number} MANAGEABILITY=4 MANAGEABILITY value + */ + Impact.Category = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "CATEGORY_UNSPECIFIED"] = 0; + values[valuesById[1] = "COST"] = 1; + values[valuesById[2] = "SECURITY"] = 2; + values[valuesById[3] = "PERFORMANCE"] = 3; + values[valuesById[4] = "MANAGEABILITY"] = 4; + return values; + })(); + + return Impact; + })(); + + v1beta1.RecommendationStateInfo = (function() { + + /** + * Properties of a RecommendationStateInfo. + * @memberof google.cloud.recommender.v1beta1 + * @interface IRecommendationStateInfo + * @property {google.cloud.recommender.v1beta1.RecommendationStateInfo.State|null} [state] RecommendationStateInfo state + * @property {Object.|null} [stateMetadata] RecommendationStateInfo stateMetadata + */ + + /** + * Constructs a new RecommendationStateInfo. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents a RecommendationStateInfo. + * @implements IRecommendationStateInfo + * @constructor + * @param {google.cloud.recommender.v1beta1.IRecommendationStateInfo=} [properties] Properties to set + */ + function RecommendationStateInfo(properties) { + this.stateMetadata = {}; + 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]]; + } + + /** + * RecommendationStateInfo state. + * @member {google.cloud.recommender.v1beta1.RecommendationStateInfo.State} state + * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @instance + */ + RecommendationStateInfo.prototype.state = 0; + + /** + * RecommendationStateInfo stateMetadata. + * @member {Object.} stateMetadata + * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @instance + */ + RecommendationStateInfo.prototype.stateMetadata = $util.emptyObject; + + /** + * Creates a new RecommendationStateInfo instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @static + * @param {google.cloud.recommender.v1beta1.IRecommendationStateInfo=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.RecommendationStateInfo} RecommendationStateInfo instance + */ + RecommendationStateInfo.create = function create(properties) { + return new RecommendationStateInfo(properties); + }; + + /** + * Encodes the specified RecommendationStateInfo message. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationStateInfo.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @static + * @param {google.cloud.recommender.v1beta1.IRecommendationStateInfo} message RecommendationStateInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RecommendationStateInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.state != null && message.hasOwnProperty("state")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.state); + if (message.stateMetadata != null && message.hasOwnProperty("stateMetadata")) + for (var keys = Object.keys(message.stateMetadata), i = 0; i < keys.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.stateMetadata[keys[i]]).ldelim(); + return writer; + }; + + /** + * Encodes the specified RecommendationStateInfo message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationStateInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @static + * @param {google.cloud.recommender.v1beta1.IRecommendationStateInfo} message RecommendationStateInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RecommendationStateInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RecommendationStateInfo message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.RecommendationStateInfo} RecommendationStateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RecommendationStateInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.RecommendationStateInfo(), key; + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.state = reader.int32(); + break; + case 2: + reader.skip().pos++; + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + key = reader.string(); + reader.pos++; + message.stateMetadata[key] = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RecommendationStateInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.RecommendationStateInfo} RecommendationStateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RecommendationStateInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RecommendationStateInfo message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RecommendationStateInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.state != null && message.hasOwnProperty("state")) + switch (message.state) { + default: + return "state: enum value expected"; + case 0: + case 1: + case 6: + case 3: + case 4: + case 5: + break; + } + if (message.stateMetadata != null && message.hasOwnProperty("stateMetadata")) { + if (!$util.isObject(message.stateMetadata)) + return "stateMetadata: object expected"; + var key = Object.keys(message.stateMetadata); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.stateMetadata[key[i]])) + return "stateMetadata: string{k:string} expected"; + } + return null; + }; + + /** + * Creates a RecommendationStateInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.RecommendationStateInfo} RecommendationStateInfo + */ + RecommendationStateInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.RecommendationStateInfo) + return object; + var message = new $root.google.cloud.recommender.v1beta1.RecommendationStateInfo(); + switch (object.state) { + case "STATE_UNSPECIFIED": + case 0: + message.state = 0; + break; + case "ACTIVE": + case 1: + message.state = 1; + break; + case "CLAIMED": + case 6: + message.state = 6; + break; + case "SUCCEEDED": + case 3: + message.state = 3; + break; + case "FAILED": + case 4: + message.state = 4; + break; + case "DISMISSED": + case 5: + message.state = 5; + break; + } + if (object.stateMetadata) { + if (typeof object.stateMetadata !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.RecommendationStateInfo.stateMetadata: object expected"); + message.stateMetadata = {}; + for (var keys = Object.keys(object.stateMetadata), i = 0; i < keys.length; ++i) + message.stateMetadata[keys[i]] = String(object.stateMetadata[keys[i]]); + } + return message; + }; + + /** + * Creates a plain object from a RecommendationStateInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @static + * @param {google.cloud.recommender.v1beta1.RecommendationStateInfo} message RecommendationStateInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RecommendationStateInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.objects || options.defaults) + object.stateMetadata = {}; + if (options.defaults) + object.state = options.enums === String ? "STATE_UNSPECIFIED" : 0; + if (message.state != null && message.hasOwnProperty("state")) + object.state = options.enums === String ? $root.google.cloud.recommender.v1beta1.RecommendationStateInfo.State[message.state] : message.state; + var keys2; + if (message.stateMetadata && (keys2 = Object.keys(message.stateMetadata)).length) { + object.stateMetadata = {}; + for (var j = 0; j < keys2.length; ++j) + object.stateMetadata[keys2[j]] = message.stateMetadata[keys2[j]]; + } + return object; + }; + + /** + * Converts this RecommendationStateInfo to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @instance + * @returns {Object.} JSON object + */ + RecommendationStateInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * State enum. + * @name google.cloud.recommender.v1beta1.RecommendationStateInfo.State + * @enum {string} + * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value + * @property {number} ACTIVE=1 ACTIVE value + * @property {number} CLAIMED=6 CLAIMED value + * @property {number} SUCCEEDED=3 SUCCEEDED value + * @property {number} FAILED=4 FAILED value + * @property {number} DISMISSED=5 DISMISSED value + */ + RecommendationStateInfo.State = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STATE_UNSPECIFIED"] = 0; + values[valuesById[1] = "ACTIVE"] = 1; + values[valuesById[6] = "CLAIMED"] = 6; + values[valuesById[3] = "SUCCEEDED"] = 3; + values[valuesById[4] = "FAILED"] = 4; + values[valuesById[5] = "DISMISSED"] = 5; + return values; + })(); + + return RecommendationStateInfo; + })(); + + v1beta1.Recommender = (function() { + + /** + * Constructs a new Recommender service. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents a Recommender + * @extends $protobuf.rpc.Service + * @constructor + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + */ + function Recommender(rpcImpl, requestDelimited, responseDelimited) { + $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited); + } + + (Recommender.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = Recommender; + + /** + * Creates new Recommender service using the specified rpc implementation. + * @function create + * @memberof google.cloud.recommender.v1beta1.Recommender + * @static + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + * @returns {Recommender} RPC service. Useful where requests and/or responses are streamed. + */ + Recommender.create = function create(rpcImpl, requestDelimited, responseDelimited) { + return new this(rpcImpl, requestDelimited, responseDelimited); + }; + + /** + * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#listRecommendations}. + * @memberof google.cloud.recommender.v1beta1.Recommender + * @typedef ListRecommendationsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1beta1.ListRecommendationsResponse} [response] ListRecommendationsResponse + */ + + /** + * Calls ListRecommendations. + * @function listRecommendations + * @memberof google.cloud.recommender.v1beta1.Recommender + * @instance + * @param {google.cloud.recommender.v1beta1.IListRecommendationsRequest} request ListRecommendationsRequest message or plain object + * @param {google.cloud.recommender.v1beta1.Recommender.ListRecommendationsCallback} callback Node-style callback called with the error, if any, and ListRecommendationsResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.listRecommendations = function listRecommendations(request, callback) { + return this.rpcCall(listRecommendations, $root.google.cloud.recommender.v1beta1.ListRecommendationsRequest, $root.google.cloud.recommender.v1beta1.ListRecommendationsResponse, request, callback); + }, "name", { value: "ListRecommendations" }); + + /** + * Calls ListRecommendations. + * @function listRecommendations + * @memberof google.cloud.recommender.v1beta1.Recommender + * @instance + * @param {google.cloud.recommender.v1beta1.IListRecommendationsRequest} request ListRecommendationsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#getRecommendation}. + * @memberof google.cloud.recommender.v1beta1.Recommender + * @typedef GetRecommendationCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1beta1.Recommendation} [response] Recommendation + */ + + /** + * Calls GetRecommendation. + * @function getRecommendation + * @memberof google.cloud.recommender.v1beta1.Recommender + * @instance + * @param {google.cloud.recommender.v1beta1.IGetRecommendationRequest} request GetRecommendationRequest message or plain object + * @param {google.cloud.recommender.v1beta1.Recommender.GetRecommendationCallback} callback Node-style callback called with the error, if any, and Recommendation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.getRecommendation = function getRecommendation(request, callback) { + return this.rpcCall(getRecommendation, $root.google.cloud.recommender.v1beta1.GetRecommendationRequest, $root.google.cloud.recommender.v1beta1.Recommendation, request, callback); + }, "name", { value: "GetRecommendation" }); + + /** + * Calls GetRecommendation. + * @function getRecommendation + * @memberof google.cloud.recommender.v1beta1.Recommender + * @instance + * @param {google.cloud.recommender.v1beta1.IGetRecommendationRequest} request GetRecommendationRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#markRecommendationClaimed}. + * @memberof google.cloud.recommender.v1beta1.Recommender + * @typedef MarkRecommendationClaimedCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1beta1.Recommendation} [response] Recommendation + */ + + /** + * Calls MarkRecommendationClaimed. + * @function markRecommendationClaimed + * @memberof google.cloud.recommender.v1beta1.Recommender + * @instance + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest} request MarkRecommendationClaimedRequest message or plain object + * @param {google.cloud.recommender.v1beta1.Recommender.MarkRecommendationClaimedCallback} callback Node-style callback called with the error, if any, and Recommendation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.markRecommendationClaimed = function markRecommendationClaimed(request, callback) { + return this.rpcCall(markRecommendationClaimed, $root.google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest, $root.google.cloud.recommender.v1beta1.Recommendation, request, callback); + }, "name", { value: "MarkRecommendationClaimed" }); + + /** + * Calls MarkRecommendationClaimed. + * @function markRecommendationClaimed + * @memberof google.cloud.recommender.v1beta1.Recommender + * @instance + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest} request MarkRecommendationClaimedRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#markRecommendationSucceeded}. + * @memberof google.cloud.recommender.v1beta1.Recommender + * @typedef MarkRecommendationSucceededCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1beta1.Recommendation} [response] Recommendation + */ + + /** + * Calls MarkRecommendationSucceeded. + * @function markRecommendationSucceeded + * @memberof google.cloud.recommender.v1beta1.Recommender + * @instance + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest} request MarkRecommendationSucceededRequest message or plain object + * @param {google.cloud.recommender.v1beta1.Recommender.MarkRecommendationSucceededCallback} callback Node-style callback called with the error, if any, and Recommendation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.markRecommendationSucceeded = function markRecommendationSucceeded(request, callback) { + return this.rpcCall(markRecommendationSucceeded, $root.google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest, $root.google.cloud.recommender.v1beta1.Recommendation, request, callback); + }, "name", { value: "MarkRecommendationSucceeded" }); + + /** + * Calls MarkRecommendationSucceeded. + * @function markRecommendationSucceeded + * @memberof google.cloud.recommender.v1beta1.Recommender + * @instance + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest} request MarkRecommendationSucceededRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#markRecommendationFailed}. + * @memberof google.cloud.recommender.v1beta1.Recommender + * @typedef MarkRecommendationFailedCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1beta1.Recommendation} [response] Recommendation + */ + + /** + * Calls MarkRecommendationFailed. + * @function markRecommendationFailed + * @memberof google.cloud.recommender.v1beta1.Recommender + * @instance + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest} request MarkRecommendationFailedRequest message or plain object + * @param {google.cloud.recommender.v1beta1.Recommender.MarkRecommendationFailedCallback} callback Node-style callback called with the error, if any, and Recommendation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.markRecommendationFailed = function markRecommendationFailed(request, callback) { + return this.rpcCall(markRecommendationFailed, $root.google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest, $root.google.cloud.recommender.v1beta1.Recommendation, request, callback); + }, "name", { value: "MarkRecommendationFailed" }); + + /** + * Calls MarkRecommendationFailed. + * @function markRecommendationFailed + * @memberof google.cloud.recommender.v1beta1.Recommender + * @instance + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest} request MarkRecommendationFailedRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + return Recommender; + })(); + + v1beta1.ListRecommendationsRequest = (function() { + + /** + * Properties of a ListRecommendationsRequest. + * @memberof google.cloud.recommender.v1beta1 + * @interface IListRecommendationsRequest + * @property {string|null} [parent] ListRecommendationsRequest parent + * @property {number|null} [pageSize] ListRecommendationsRequest pageSize + * @property {string|null} [pageToken] ListRecommendationsRequest pageToken + * @property {string|null} [filter] ListRecommendationsRequest filter + */ + + /** + * Constructs a new ListRecommendationsRequest. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents a ListRecommendationsRequest. + * @implements IListRecommendationsRequest + * @constructor + * @param {google.cloud.recommender.v1beta1.IListRecommendationsRequest=} [properties] Properties to set + */ + function ListRecommendationsRequest(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]]; + } + + /** + * ListRecommendationsRequest parent. + * @member {string} parent + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @instance + */ + ListRecommendationsRequest.prototype.parent = ""; + + /** + * ListRecommendationsRequest pageSize. + * @member {number} pageSize + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @instance + */ + ListRecommendationsRequest.prototype.pageSize = 0; + + /** + * ListRecommendationsRequest pageToken. + * @member {string} pageToken + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @instance + */ + ListRecommendationsRequest.prototype.pageToken = ""; + + /** + * ListRecommendationsRequest filter. + * @member {string} filter + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @instance + */ + ListRecommendationsRequest.prototype.filter = ""; + + /** + * Creates a new ListRecommendationsRequest instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @static + * @param {google.cloud.recommender.v1beta1.IListRecommendationsRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.ListRecommendationsRequest} ListRecommendationsRequest instance + */ + ListRecommendationsRequest.create = function create(properties) { + return new ListRecommendationsRequest(properties); + }; + + /** + * Encodes the specified ListRecommendationsRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @static + * @param {google.cloud.recommender.v1beta1.IListRecommendationsRequest} message ListRecommendationsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListRecommendationsRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.parent != null && message.hasOwnProperty("parent")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.pageSize); + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.pageToken); + if (message.filter != null && message.hasOwnProperty("filter")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.filter); + return writer; + }; + + /** + * Encodes the specified ListRecommendationsRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @static + * @param {google.cloud.recommender.v1beta1.IListRecommendationsRequest} message ListRecommendationsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListRecommendationsRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListRecommendationsRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.ListRecommendationsRequest} ListRecommendationsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListRecommendationsRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.ListRecommendationsRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.parent = reader.string(); + break; + case 2: + message.pageSize = reader.int32(); + break; + case 3: + message.pageToken = reader.string(); + break; + case 5: + message.filter = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListRecommendationsRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.ListRecommendationsRequest} ListRecommendationsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListRecommendationsRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListRecommendationsRequest message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListRecommendationsRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.parent != null && message.hasOwnProperty("parent")) + if (!$util.isString(message.parent)) + return "parent: string expected"; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (!$util.isInteger(message.pageSize)) + return "pageSize: integer expected"; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (!$util.isString(message.pageToken)) + return "pageToken: string expected"; + if (message.filter != null && message.hasOwnProperty("filter")) + if (!$util.isString(message.filter)) + return "filter: string expected"; + return null; + }; + + /** + * Creates a ListRecommendationsRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.ListRecommendationsRequest} ListRecommendationsRequest + */ + ListRecommendationsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.ListRecommendationsRequest) + return object; + var message = new $root.google.cloud.recommender.v1beta1.ListRecommendationsRequest(); + if (object.parent != null) + message.parent = String(object.parent); + if (object.pageSize != null) + message.pageSize = object.pageSize | 0; + if (object.pageToken != null) + message.pageToken = String(object.pageToken); + if (object.filter != null) + message.filter = String(object.filter); + return message; + }; + + /** + * Creates a plain object from a ListRecommendationsRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @static + * @param {google.cloud.recommender.v1beta1.ListRecommendationsRequest} message ListRecommendationsRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListRecommendationsRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.parent = ""; + object.pageSize = 0; + object.pageToken = ""; + object.filter = ""; + } + if (message.parent != null && message.hasOwnProperty("parent")) + object.parent = message.parent; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + object.pageSize = message.pageSize; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + object.pageToken = message.pageToken; + if (message.filter != null && message.hasOwnProperty("filter")) + object.filter = message.filter; + return object; + }; + + /** + * Converts this ListRecommendationsRequest to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @instance + * @returns {Object.} JSON object + */ + ListRecommendationsRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ListRecommendationsRequest; + })(); + + v1beta1.ListRecommendationsResponse = (function() { + + /** + * Properties of a ListRecommendationsResponse. + * @memberof google.cloud.recommender.v1beta1 + * @interface IListRecommendationsResponse + * @property {Array.|null} [recommendations] ListRecommendationsResponse recommendations + * @property {string|null} [nextPageToken] ListRecommendationsResponse nextPageToken + */ + + /** + * Constructs a new ListRecommendationsResponse. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents a ListRecommendationsResponse. + * @implements IListRecommendationsResponse + * @constructor + * @param {google.cloud.recommender.v1beta1.IListRecommendationsResponse=} [properties] Properties to set + */ + function ListRecommendationsResponse(properties) { + this.recommendations = []; + 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]]; + } + + /** + * ListRecommendationsResponse recommendations. + * @member {Array.} recommendations + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @instance + */ + ListRecommendationsResponse.prototype.recommendations = $util.emptyArray; + + /** + * ListRecommendationsResponse nextPageToken. + * @member {string} nextPageToken + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @instance + */ + ListRecommendationsResponse.prototype.nextPageToken = ""; + + /** + * Creates a new ListRecommendationsResponse instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @static + * @param {google.cloud.recommender.v1beta1.IListRecommendationsResponse=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.ListRecommendationsResponse} ListRecommendationsResponse instance + */ + ListRecommendationsResponse.create = function create(properties) { + return new ListRecommendationsResponse(properties); + }; + + /** + * Encodes the specified ListRecommendationsResponse message. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsResponse.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @static + * @param {google.cloud.recommender.v1beta1.IListRecommendationsResponse} message ListRecommendationsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListRecommendationsResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.recommendations != null && message.recommendations.length) + for (var i = 0; i < message.recommendations.length; ++i) + $root.google.cloud.recommender.v1beta1.Recommendation.encode(message.recommendations[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); + return writer; + }; + + /** + * Encodes the specified ListRecommendationsResponse message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @static + * @param {google.cloud.recommender.v1beta1.IListRecommendationsResponse} message ListRecommendationsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListRecommendationsResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListRecommendationsResponse message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.ListRecommendationsResponse} ListRecommendationsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListRecommendationsResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.ListRecommendationsResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.recommendations && message.recommendations.length)) + message.recommendations = []; + message.recommendations.push($root.google.cloud.recommender.v1beta1.Recommendation.decode(reader, reader.uint32())); + break; + case 2: + message.nextPageToken = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListRecommendationsResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.ListRecommendationsResponse} ListRecommendationsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListRecommendationsResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListRecommendationsResponse message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListRecommendationsResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.recommendations != null && message.hasOwnProperty("recommendations")) { + if (!Array.isArray(message.recommendations)) + return "recommendations: array expected"; + for (var i = 0; i < message.recommendations.length; ++i) { + var error = $root.google.cloud.recommender.v1beta1.Recommendation.verify(message.recommendations[i]); + if (error) + return "recommendations." + error; + } + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (!$util.isString(message.nextPageToken)) + return "nextPageToken: string expected"; + return null; + }; + + /** + * Creates a ListRecommendationsResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.ListRecommendationsResponse} ListRecommendationsResponse + */ + ListRecommendationsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.ListRecommendationsResponse) + return object; + var message = new $root.google.cloud.recommender.v1beta1.ListRecommendationsResponse(); + if (object.recommendations) { + if (!Array.isArray(object.recommendations)) + throw TypeError(".google.cloud.recommender.v1beta1.ListRecommendationsResponse.recommendations: array expected"); + message.recommendations = []; + for (var i = 0; i < object.recommendations.length; ++i) { + if (typeof object.recommendations[i] !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.ListRecommendationsResponse.recommendations: object expected"); + message.recommendations[i] = $root.google.cloud.recommender.v1beta1.Recommendation.fromObject(object.recommendations[i]); + } + } + if (object.nextPageToken != null) + message.nextPageToken = String(object.nextPageToken); + return message; + }; + + /** + * Creates a plain object from a ListRecommendationsResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @static + * @param {google.cloud.recommender.v1beta1.ListRecommendationsResponse} message ListRecommendationsResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListRecommendationsResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.recommendations = []; + if (options.defaults) + object.nextPageToken = ""; + if (message.recommendations && message.recommendations.length) { + object.recommendations = []; + for (var j = 0; j < message.recommendations.length; ++j) + object.recommendations[j] = $root.google.cloud.recommender.v1beta1.Recommendation.toObject(message.recommendations[j], options); + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + object.nextPageToken = message.nextPageToken; + return object; + }; + + /** + * Converts this ListRecommendationsResponse to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @instance + * @returns {Object.} JSON object + */ + ListRecommendationsResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ListRecommendationsResponse; + })(); + + v1beta1.GetRecommendationRequest = (function() { + + /** + * Properties of a GetRecommendationRequest. + * @memberof google.cloud.recommender.v1beta1 + * @interface IGetRecommendationRequest + * @property {string|null} [name] GetRecommendationRequest name + */ + + /** + * Constructs a new GetRecommendationRequest. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents a GetRecommendationRequest. + * @implements IGetRecommendationRequest + * @constructor + * @param {google.cloud.recommender.v1beta1.IGetRecommendationRequest=} [properties] Properties to set + */ + function GetRecommendationRequest(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]]; + } + + /** + * GetRecommendationRequest name. + * @member {string} name + * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @instance + */ + GetRecommendationRequest.prototype.name = ""; + + /** + * Creates a new GetRecommendationRequest instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @static + * @param {google.cloud.recommender.v1beta1.IGetRecommendationRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.GetRecommendationRequest} GetRecommendationRequest instance + */ + GetRecommendationRequest.create = function create(properties) { + return new GetRecommendationRequest(properties); + }; + + /** + * Encodes the specified GetRecommendationRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.GetRecommendationRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @static + * @param {google.cloud.recommender.v1beta1.IGetRecommendationRequest} message GetRecommendationRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetRecommendationRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + return writer; + }; + + /** + * Encodes the specified GetRecommendationRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.GetRecommendationRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @static + * @param {google.cloud.recommender.v1beta1.IGetRecommendationRequest} message GetRecommendationRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetRecommendationRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetRecommendationRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.GetRecommendationRequest} GetRecommendationRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetRecommendationRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.GetRecommendationRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetRecommendationRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.GetRecommendationRequest} GetRecommendationRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetRecommendationRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetRecommendationRequest message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetRecommendationRequest.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"; + return null; + }; + + /** + * Creates a GetRecommendationRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.GetRecommendationRequest} GetRecommendationRequest + */ + GetRecommendationRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.GetRecommendationRequest) + return object; + var message = new $root.google.cloud.recommender.v1beta1.GetRecommendationRequest(); + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from a GetRecommendationRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @static + * @param {google.cloud.recommender.v1beta1.GetRecommendationRequest} message GetRecommendationRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetRecommendationRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; + + /** + * Converts this GetRecommendationRequest to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @instance + * @returns {Object.} JSON object + */ + GetRecommendationRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GetRecommendationRequest; + })(); + + v1beta1.MarkRecommendationClaimedRequest = (function() { + + /** + * Properties of a MarkRecommendationClaimedRequest. + * @memberof google.cloud.recommender.v1beta1 + * @interface IMarkRecommendationClaimedRequest + * @property {string|null} [name] MarkRecommendationClaimedRequest name + * @property {Object.|null} [stateMetadata] MarkRecommendationClaimedRequest stateMetadata + * @property {string|null} [etag] MarkRecommendationClaimedRequest etag + */ + + /** + * Constructs a new MarkRecommendationClaimedRequest. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents a MarkRecommendationClaimedRequest. + * @implements IMarkRecommendationClaimedRequest + * @constructor + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest=} [properties] Properties to set + */ + function MarkRecommendationClaimedRequest(properties) { + this.stateMetadata = {}; + 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]]; + } + + /** + * MarkRecommendationClaimedRequest name. + * @member {string} name + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @instance + */ + MarkRecommendationClaimedRequest.prototype.name = ""; + + /** + * MarkRecommendationClaimedRequest stateMetadata. + * @member {Object.} stateMetadata + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @instance + */ + MarkRecommendationClaimedRequest.prototype.stateMetadata = $util.emptyObject; + + /** + * MarkRecommendationClaimedRequest etag. + * @member {string} etag + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @instance + */ + MarkRecommendationClaimedRequest.prototype.etag = ""; + + /** + * Creates a new MarkRecommendationClaimedRequest instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @static + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest} MarkRecommendationClaimedRequest instance + */ + MarkRecommendationClaimedRequest.create = function create(properties) { + return new MarkRecommendationClaimedRequest(properties); + }; + + /** + * Encodes the specified MarkRecommendationClaimedRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @static + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest} message MarkRecommendationClaimedRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MarkRecommendationClaimedRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.stateMetadata != null && message.hasOwnProperty("stateMetadata")) + for (var keys = Object.keys(message.stateMetadata), i = 0; i < keys.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.stateMetadata[keys[i]]).ldelim(); + if (message.etag != null && message.hasOwnProperty("etag")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.etag); + return writer; + }; + + /** + * Encodes the specified MarkRecommendationClaimedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @static + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest} message MarkRecommendationClaimedRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MarkRecommendationClaimedRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MarkRecommendationClaimedRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest} MarkRecommendationClaimedRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MarkRecommendationClaimedRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest(), key; + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + reader.skip().pos++; + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + key = reader.string(); + reader.pos++; + message.stateMetadata[key] = reader.string(); + break; + case 3: + message.etag = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MarkRecommendationClaimedRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest} MarkRecommendationClaimedRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MarkRecommendationClaimedRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MarkRecommendationClaimedRequest message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MarkRecommendationClaimedRequest.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.stateMetadata != null && message.hasOwnProperty("stateMetadata")) { + if (!$util.isObject(message.stateMetadata)) + return "stateMetadata: object expected"; + var key = Object.keys(message.stateMetadata); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.stateMetadata[key[i]])) + return "stateMetadata: string{k:string} expected"; + } + if (message.etag != null && message.hasOwnProperty("etag")) + if (!$util.isString(message.etag)) + return "etag: string expected"; + return null; + }; + + /** + * Creates a MarkRecommendationClaimedRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest} MarkRecommendationClaimedRequest + */ + MarkRecommendationClaimedRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest) + return object; + var message = new $root.google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest(); + if (object.name != null) + message.name = String(object.name); + if (object.stateMetadata) { + if (typeof object.stateMetadata !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest.stateMetadata: object expected"); + message.stateMetadata = {}; + for (var keys = Object.keys(object.stateMetadata), i = 0; i < keys.length; ++i) + message.stateMetadata[keys[i]] = String(object.stateMetadata[keys[i]]); + } + if (object.etag != null) + message.etag = String(object.etag); + return message; + }; + + /** + * Creates a plain object from a MarkRecommendationClaimedRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @static + * @param {google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest} message MarkRecommendationClaimedRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MarkRecommendationClaimedRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.objects || options.defaults) + object.stateMetadata = {}; + if (options.defaults) { + object.name = ""; + object.etag = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + var keys2; + if (message.stateMetadata && (keys2 = Object.keys(message.stateMetadata)).length) { + object.stateMetadata = {}; + for (var j = 0; j < keys2.length; ++j) + object.stateMetadata[keys2[j]] = message.stateMetadata[keys2[j]]; + } + if (message.etag != null && message.hasOwnProperty("etag")) + object.etag = message.etag; + return object; + }; + + /** + * Converts this MarkRecommendationClaimedRequest to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @instance + * @returns {Object.} JSON object + */ + MarkRecommendationClaimedRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return MarkRecommendationClaimedRequest; + })(); + + v1beta1.MarkRecommendationSucceededRequest = (function() { + + /** + * Properties of a MarkRecommendationSucceededRequest. + * @memberof google.cloud.recommender.v1beta1 + * @interface IMarkRecommendationSucceededRequest + * @property {string|null} [name] MarkRecommendationSucceededRequest name + * @property {Object.|null} [stateMetadata] MarkRecommendationSucceededRequest stateMetadata + * @property {string|null} [etag] MarkRecommendationSucceededRequest etag + */ + + /** + * Constructs a new MarkRecommendationSucceededRequest. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents a MarkRecommendationSucceededRequest. + * @implements IMarkRecommendationSucceededRequest + * @constructor + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest=} [properties] Properties to set + */ + function MarkRecommendationSucceededRequest(properties) { + this.stateMetadata = {}; + 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]]; + } + + /** + * MarkRecommendationSucceededRequest name. + * @member {string} name + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @instance + */ + MarkRecommendationSucceededRequest.prototype.name = ""; + + /** + * MarkRecommendationSucceededRequest stateMetadata. + * @member {Object.} stateMetadata + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @instance + */ + MarkRecommendationSucceededRequest.prototype.stateMetadata = $util.emptyObject; + + /** + * MarkRecommendationSucceededRequest etag. + * @member {string} etag + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @instance + */ + MarkRecommendationSucceededRequest.prototype.etag = ""; + + /** + * Creates a new MarkRecommendationSucceededRequest instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @static + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest} MarkRecommendationSucceededRequest instance + */ + MarkRecommendationSucceededRequest.create = function create(properties) { + return new MarkRecommendationSucceededRequest(properties); + }; + + /** + * Encodes the specified MarkRecommendationSucceededRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @static + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest} message MarkRecommendationSucceededRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MarkRecommendationSucceededRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.stateMetadata != null && message.hasOwnProperty("stateMetadata")) + for (var keys = Object.keys(message.stateMetadata), i = 0; i < keys.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.stateMetadata[keys[i]]).ldelim(); + if (message.etag != null && message.hasOwnProperty("etag")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.etag); + return writer; + }; + + /** + * Encodes the specified MarkRecommendationSucceededRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @static + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest} message MarkRecommendationSucceededRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MarkRecommendationSucceededRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MarkRecommendationSucceededRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest} MarkRecommendationSucceededRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MarkRecommendationSucceededRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest(), key; + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + reader.skip().pos++; + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + key = reader.string(); + reader.pos++; + message.stateMetadata[key] = reader.string(); + break; + case 3: + message.etag = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MarkRecommendationSucceededRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest} MarkRecommendationSucceededRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MarkRecommendationSucceededRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MarkRecommendationSucceededRequest message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MarkRecommendationSucceededRequest.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.stateMetadata != null && message.hasOwnProperty("stateMetadata")) { + if (!$util.isObject(message.stateMetadata)) + return "stateMetadata: object expected"; + var key = Object.keys(message.stateMetadata); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.stateMetadata[key[i]])) + return "stateMetadata: string{k:string} expected"; + } + if (message.etag != null && message.hasOwnProperty("etag")) + if (!$util.isString(message.etag)) + return "etag: string expected"; + return null; + }; + + /** + * Creates a MarkRecommendationSucceededRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest} MarkRecommendationSucceededRequest + */ + MarkRecommendationSucceededRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest) + return object; + var message = new $root.google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest(); + if (object.name != null) + message.name = String(object.name); + if (object.stateMetadata) { + if (typeof object.stateMetadata !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest.stateMetadata: object expected"); + message.stateMetadata = {}; + for (var keys = Object.keys(object.stateMetadata), i = 0; i < keys.length; ++i) + message.stateMetadata[keys[i]] = String(object.stateMetadata[keys[i]]); + } + if (object.etag != null) + message.etag = String(object.etag); + return message; + }; + + /** + * Creates a plain object from a MarkRecommendationSucceededRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @static + * @param {google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest} message MarkRecommendationSucceededRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MarkRecommendationSucceededRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.objects || options.defaults) + object.stateMetadata = {}; + if (options.defaults) { + object.name = ""; + object.etag = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + var keys2; + if (message.stateMetadata && (keys2 = Object.keys(message.stateMetadata)).length) { + object.stateMetadata = {}; + for (var j = 0; j < keys2.length; ++j) + object.stateMetadata[keys2[j]] = message.stateMetadata[keys2[j]]; + } + if (message.etag != null && message.hasOwnProperty("etag")) + object.etag = message.etag; + return object; + }; + + /** + * Converts this MarkRecommendationSucceededRequest to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @instance + * @returns {Object.} JSON object + */ + MarkRecommendationSucceededRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return MarkRecommendationSucceededRequest; + })(); + + v1beta1.MarkRecommendationFailedRequest = (function() { + + /** + * Properties of a MarkRecommendationFailedRequest. + * @memberof google.cloud.recommender.v1beta1 + * @interface IMarkRecommendationFailedRequest + * @property {string|null} [name] MarkRecommendationFailedRequest name + * @property {Object.|null} [stateMetadata] MarkRecommendationFailedRequest stateMetadata + * @property {string|null} [etag] MarkRecommendationFailedRequest etag + */ + + /** + * Constructs a new MarkRecommendationFailedRequest. + * @memberof google.cloud.recommender.v1beta1 + * @classdesc Represents a MarkRecommendationFailedRequest. + * @implements IMarkRecommendationFailedRequest + * @constructor + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest=} [properties] Properties to set + */ + function MarkRecommendationFailedRequest(properties) { + this.stateMetadata = {}; + 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]]; + } + + /** + * MarkRecommendationFailedRequest name. + * @member {string} name + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @instance + */ + MarkRecommendationFailedRequest.prototype.name = ""; + + /** + * MarkRecommendationFailedRequest stateMetadata. + * @member {Object.} stateMetadata + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @instance + */ + MarkRecommendationFailedRequest.prototype.stateMetadata = $util.emptyObject; + + /** + * MarkRecommendationFailedRequest etag. + * @member {string} etag + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @instance + */ + MarkRecommendationFailedRequest.prototype.etag = ""; + + /** + * Creates a new MarkRecommendationFailedRequest instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @static + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest} MarkRecommendationFailedRequest instance + */ + MarkRecommendationFailedRequest.create = function create(properties) { + return new MarkRecommendationFailedRequest(properties); + }; + + /** + * Encodes the specified MarkRecommendationFailedRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @static + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest} message MarkRecommendationFailedRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MarkRecommendationFailedRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.stateMetadata != null && message.hasOwnProperty("stateMetadata")) + for (var keys = Object.keys(message.stateMetadata), i = 0; i < keys.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.stateMetadata[keys[i]]).ldelim(); + if (message.etag != null && message.hasOwnProperty("etag")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.etag); + return writer; + }; + + /** + * Encodes the specified MarkRecommendationFailedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @static + * @param {google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest} message MarkRecommendationFailedRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MarkRecommendationFailedRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MarkRecommendationFailedRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest} MarkRecommendationFailedRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MarkRecommendationFailedRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest(), key; + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + reader.skip().pos++; + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + key = reader.string(); + reader.pos++; + message.stateMetadata[key] = reader.string(); + break; + case 3: + message.etag = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MarkRecommendationFailedRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest} MarkRecommendationFailedRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MarkRecommendationFailedRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MarkRecommendationFailedRequest message. + * @function verify + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MarkRecommendationFailedRequest.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.stateMetadata != null && message.hasOwnProperty("stateMetadata")) { + if (!$util.isObject(message.stateMetadata)) + return "stateMetadata: object expected"; + var key = Object.keys(message.stateMetadata); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.stateMetadata[key[i]])) + return "stateMetadata: string{k:string} expected"; + } + if (message.etag != null && message.hasOwnProperty("etag")) + if (!$util.isString(message.etag)) + return "etag: string expected"; + return null; + }; + + /** + * Creates a MarkRecommendationFailedRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest} MarkRecommendationFailedRequest + */ + MarkRecommendationFailedRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest) + return object; + var message = new $root.google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest(); + if (object.name != null) + message.name = String(object.name); + if (object.stateMetadata) { + if (typeof object.stateMetadata !== "object") + throw TypeError(".google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest.stateMetadata: object expected"); + message.stateMetadata = {}; + for (var keys = Object.keys(object.stateMetadata), i = 0; i < keys.length; ++i) + message.stateMetadata[keys[i]] = String(object.stateMetadata[keys[i]]); + } + if (object.etag != null) + message.etag = String(object.etag); + return message; + }; + + /** + * Creates a plain object from a MarkRecommendationFailedRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @static + * @param {google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest} message MarkRecommendationFailedRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MarkRecommendationFailedRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.objects || options.defaults) + object.stateMetadata = {}; + if (options.defaults) { + object.name = ""; + object.etag = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + var keys2; + if (message.stateMetadata && (keys2 = Object.keys(message.stateMetadata)).length) { + object.stateMetadata = {}; + for (var j = 0; j < keys2.length; ++j) + object.stateMetadata[keys2[j]] = message.stateMetadata[keys2[j]]; + } + if (message.etag != null && message.hasOwnProperty("etag")) + object.etag = message.etag; + return object; + }; + + /** + * Converts this MarkRecommendationFailedRequest to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @instance + * @returns {Object.} JSON object + */ + MarkRecommendationFailedRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return MarkRecommendationFailedRequest; + })(); + + return v1beta1; + })(); + + return recommender; + })(); + + return cloud; + })(); + + google.api = (function() { + + /** + * Namespace api. + * @memberof google + * @namespace + */ + var api = {}; + + api.ResourceDescriptor = (function() { + + /** + * Properties of a ResourceDescriptor. + * @memberof google.api + * @interface IResourceDescriptor + * @property {string|null} [type] ResourceDescriptor type + * @property {Array.|null} [pattern] ResourceDescriptor pattern + * @property {string|null} [nameField] ResourceDescriptor nameField + * @property {google.api.ResourceDescriptor.History|null} [history] ResourceDescriptor history + * @property {string|null} [plural] ResourceDescriptor plural + * @property {string|null} [singular] ResourceDescriptor singular + */ + + /** + * Constructs a new ResourceDescriptor. + * @memberof google.api + * @classdesc Represents a ResourceDescriptor. + * @implements IResourceDescriptor + * @constructor + * @param {google.api.IResourceDescriptor=} [properties] Properties to set + */ + function ResourceDescriptor(properties) { + this.pattern = []; + 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]]; + } + + /** + * ResourceDescriptor type. + * @member {string} type + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.type = ""; + + /** + * ResourceDescriptor pattern. + * @member {Array.} pattern + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.pattern = $util.emptyArray; + + /** + * ResourceDescriptor nameField. + * @member {string} nameField + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.nameField = ""; + + /** + * ResourceDescriptor history. + * @member {google.api.ResourceDescriptor.History} history + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.history = 0; + + /** + * ResourceDescriptor plural. + * @member {string} plural + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.plural = ""; + + /** + * ResourceDescriptor singular. + * @member {string} singular + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.singular = ""; + + /** + * Creates a new ResourceDescriptor instance using the specified properties. + * @function create + * @memberof google.api.ResourceDescriptor + * @static + * @param {google.api.IResourceDescriptor=} [properties] Properties to set + * @returns {google.api.ResourceDescriptor} ResourceDescriptor instance + */ + ResourceDescriptor.create = function create(properties) { + return new ResourceDescriptor(properties); + }; + + /** + * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. + * @function encode + * @memberof google.api.ResourceDescriptor + * @static + * @param {google.api.IResourceDescriptor} message ResourceDescriptor message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResourceDescriptor.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.type != null && message.hasOwnProperty("type")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.type); + if (message.pattern != null && message.pattern.length) + for (var i = 0; i < message.pattern.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.pattern[i]); + if (message.nameField != null && message.hasOwnProperty("nameField")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.nameField); + if (message.history != null && message.hasOwnProperty("history")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.history); + if (message.plural != null && message.hasOwnProperty("plural")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.plural); + if (message.singular != null && message.hasOwnProperty("singular")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.singular); + return writer; + }; + + /** + * Encodes the specified ResourceDescriptor message, length delimited. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. + * @function encodeDelimited + * @memberof google.api.ResourceDescriptor + * @static + * @param {google.api.IResourceDescriptor} message ResourceDescriptor message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResourceDescriptor.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ResourceDescriptor message from the specified reader or buffer. + * @function decode + * @memberof google.api.ResourceDescriptor + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.api.ResourceDescriptor} ResourceDescriptor + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ResourceDescriptor.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.ResourceDescriptor(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.string(); + break; + case 2: + if (!(message.pattern && message.pattern.length)) + message.pattern = []; + message.pattern.push(reader.string()); + break; + case 3: + message.nameField = reader.string(); + break; + case 4: + message.history = reader.int32(); + break; + case 5: + message.plural = reader.string(); + break; + case 6: + message.singular = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ResourceDescriptor message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.api.ResourceDescriptor + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.api.ResourceDescriptor} ResourceDescriptor + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ResourceDescriptor.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ResourceDescriptor message. + * @function verify + * @memberof google.api.ResourceDescriptor + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ResourceDescriptor.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.type != null && message.hasOwnProperty("type")) + if (!$util.isString(message.type)) + return "type: string expected"; + if (message.pattern != null && message.hasOwnProperty("pattern")) { + if (!Array.isArray(message.pattern)) + return "pattern: array expected"; + for (var i = 0; i < message.pattern.length; ++i) + if (!$util.isString(message.pattern[i])) + return "pattern: string[] expected"; + } + if (message.nameField != null && message.hasOwnProperty("nameField")) + if (!$util.isString(message.nameField)) + return "nameField: string expected"; + if (message.history != null && message.hasOwnProperty("history")) + switch (message.history) { + default: + return "history: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.plural != null && message.hasOwnProperty("plural")) + if (!$util.isString(message.plural)) + return "plural: string expected"; + if (message.singular != null && message.hasOwnProperty("singular")) + if (!$util.isString(message.singular)) + return "singular: string expected"; + return null; + }; + + /** + * Creates a ResourceDescriptor message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.api.ResourceDescriptor + * @static + * @param {Object.} object Plain object + * @returns {google.api.ResourceDescriptor} ResourceDescriptor + */ + ResourceDescriptor.fromObject = function fromObject(object) { + if (object instanceof $root.google.api.ResourceDescriptor) + return object; + var message = new $root.google.api.ResourceDescriptor(); + if (object.type != null) + message.type = String(object.type); + if (object.pattern) { + if (!Array.isArray(object.pattern)) + throw TypeError(".google.api.ResourceDescriptor.pattern: array expected"); + message.pattern = []; + for (var i = 0; i < object.pattern.length; ++i) + message.pattern[i] = String(object.pattern[i]); + } + if (object.nameField != null) + message.nameField = String(object.nameField); + switch (object.history) { + case "HISTORY_UNSPECIFIED": + case 0: + message.history = 0; + break; + case "ORIGINALLY_SINGLE_PATTERN": + case 1: + message.history = 1; + break; + case "FUTURE_MULTI_PATTERN": + case 2: + message.history = 2; + break; + } + if (object.plural != null) + message.plural = String(object.plural); + if (object.singular != null) + message.singular = String(object.singular); + return message; + }; + + /** + * Creates a plain object from a ResourceDescriptor message. Also converts values to other types if specified. + * @function toObject + * @memberof google.api.ResourceDescriptor + * @static + * @param {google.api.ResourceDescriptor} message ResourceDescriptor + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ResourceDescriptor.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.pattern = []; + if (options.defaults) { + object.type = ""; + object.nameField = ""; + object.history = options.enums === String ? "HISTORY_UNSPECIFIED" : 0; + object.plural = ""; + object.singular = ""; + } + if (message.type != null && message.hasOwnProperty("type")) + object.type = message.type; + if (message.pattern && message.pattern.length) { + object.pattern = []; + for (var j = 0; j < message.pattern.length; ++j) + object.pattern[j] = message.pattern[j]; + } + if (message.nameField != null && message.hasOwnProperty("nameField")) + object.nameField = message.nameField; + if (message.history != null && message.hasOwnProperty("history")) + object.history = options.enums === String ? $root.google.api.ResourceDescriptor.History[message.history] : message.history; + if (message.plural != null && message.hasOwnProperty("plural")) + object.plural = message.plural; + if (message.singular != null && message.hasOwnProperty("singular")) + object.singular = message.singular; + return object; + }; + + /** + * Converts this ResourceDescriptor to JSON. + * @function toJSON + * @memberof google.api.ResourceDescriptor + * @instance + * @returns {Object.} JSON object + */ + ResourceDescriptor.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * History enum. + * @name google.api.ResourceDescriptor.History + * @enum {string} + * @property {number} HISTORY_UNSPECIFIED=0 HISTORY_UNSPECIFIED value + * @property {number} ORIGINALLY_SINGLE_PATTERN=1 ORIGINALLY_SINGLE_PATTERN value + * @property {number} FUTURE_MULTI_PATTERN=2 FUTURE_MULTI_PATTERN value + */ + ResourceDescriptor.History = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "HISTORY_UNSPECIFIED"] = 0; + values[valuesById[1] = "ORIGINALLY_SINGLE_PATTERN"] = 1; + values[valuesById[2] = "FUTURE_MULTI_PATTERN"] = 2; + return values; + })(); + + return ResourceDescriptor; + })(); + + api.ResourceReference = (function() { + + /** + * Properties of a ResourceReference. + * @memberof google.api + * @interface IResourceReference + * @property {string|null} [type] ResourceReference type + * @property {string|null} [childType] ResourceReference childType + */ + + /** + * Constructs a new ResourceReference. + * @memberof google.api + * @classdesc Represents a ResourceReference. + * @implements IResourceReference + * @constructor + * @param {google.api.IResourceReference=} [properties] Properties to set + */ + function ResourceReference(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]]; + } + + /** + * ResourceReference type. + * @member {string} type + * @memberof google.api.ResourceReference + * @instance + */ + ResourceReference.prototype.type = ""; + + /** + * ResourceReference childType. + * @member {string} childType + * @memberof google.api.ResourceReference + * @instance + */ + ResourceReference.prototype.childType = ""; + + /** + * Creates a new ResourceReference instance using the specified properties. + * @function create + * @memberof google.api.ResourceReference + * @static + * @param {google.api.IResourceReference=} [properties] Properties to set + * @returns {google.api.ResourceReference} ResourceReference instance + */ + ResourceReference.create = function create(properties) { + return new ResourceReference(properties); + }; + + /** + * Encodes the specified ResourceReference message. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. + * @function encode + * @memberof google.api.ResourceReference + * @static + * @param {google.api.IResourceReference} message ResourceReference message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResourceReference.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.type != null && message.hasOwnProperty("type")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.type); + if (message.childType != null && message.hasOwnProperty("childType")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.childType); + return writer; + }; + + /** + * Encodes the specified ResourceReference message, length delimited. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. + * @function encodeDelimited + * @memberof google.api.ResourceReference + * @static + * @param {google.api.IResourceReference} message ResourceReference message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResourceReference.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ResourceReference message from the specified reader or buffer. + * @function decode + * @memberof google.api.ResourceReference + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.api.ResourceReference} ResourceReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ResourceReference.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.ResourceReference(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.string(); + break; + case 2: + message.childType = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ResourceReference message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.api.ResourceReference + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.api.ResourceReference} ResourceReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ResourceReference.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ResourceReference message. + * @function verify + * @memberof google.api.ResourceReference + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ResourceReference.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.type != null && message.hasOwnProperty("type")) + if (!$util.isString(message.type)) + return "type: string expected"; + if (message.childType != null && message.hasOwnProperty("childType")) + if (!$util.isString(message.childType)) + return "childType: string expected"; + return null; + }; + + /** + * Creates a ResourceReference message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.api.ResourceReference + * @static + * @param {Object.} object Plain object + * @returns {google.api.ResourceReference} ResourceReference + */ + ResourceReference.fromObject = function fromObject(object) { + if (object instanceof $root.google.api.ResourceReference) + return object; + var message = new $root.google.api.ResourceReference(); + if (object.type != null) + message.type = String(object.type); + if (object.childType != null) + message.childType = String(object.childType); + return message; + }; + + /** + * Creates a plain object from a ResourceReference message. Also converts values to other types if specified. + * @function toObject + * @memberof google.api.ResourceReference + * @static + * @param {google.api.ResourceReference} message ResourceReference + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ResourceReference.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.type = ""; + object.childType = ""; + } + if (message.type != null && message.hasOwnProperty("type")) + object.type = message.type; + if (message.childType != null && message.hasOwnProperty("childType")) + object.childType = message.childType; + return object; + }; + + /** + * Converts this ResourceReference to JSON. + * @function toJSON + * @memberof google.api.ResourceReference + * @instance + * @returns {Object.} JSON object + */ + ResourceReference.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ResourceReference; + })(); + + api.Http = (function() { + + /** + * Properties of a Http. + * @memberof google.api + * @interface IHttp + * @property {Array.|null} [rules] Http rules + * @property {boolean|null} [fullyDecodeReservedExpansion] Http fullyDecodeReservedExpansion + */ + + /** + * Constructs a new Http. + * @memberof google.api + * @classdesc Represents a Http. + * @implements IHttp + * @constructor + * @param {google.api.IHttp=} [properties] Properties to set + */ + function Http(properties) { + this.rules = []; + 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]]; + } + + /** + * Http rules. + * @member {Array.} rules + * @memberof google.api.Http + * @instance + */ + Http.prototype.rules = $util.emptyArray; + + /** + * Http fullyDecodeReservedExpansion. + * @member {boolean} fullyDecodeReservedExpansion + * @memberof google.api.Http + * @instance + */ + Http.prototype.fullyDecodeReservedExpansion = false; + + /** + * Creates a new Http instance using the specified properties. + * @function create + * @memberof google.api.Http + * @static + * @param {google.api.IHttp=} [properties] Properties to set + * @returns {google.api.Http} Http instance + */ + Http.create = function create(properties) { + return new Http(properties); + }; + + /** + * Encodes the specified Http message. Does not implicitly {@link google.api.Http.verify|verify} messages. + * @function encode + * @memberof google.api.Http + * @static + * @param {google.api.IHttp} message Http message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Http.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.rules != null && message.rules.length) + for (var i = 0; i < message.rules.length; ++i) + $root.google.api.HttpRule.encode(message.rules[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.fullyDecodeReservedExpansion != null && message.hasOwnProperty("fullyDecodeReservedExpansion")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.fullyDecodeReservedExpansion); + return writer; + }; + + /** + * Encodes the specified Http message, length delimited. Does not implicitly {@link google.api.Http.verify|verify} messages. + * @function encodeDelimited + * @memberof google.api.Http + * @static + * @param {google.api.IHttp} message Http message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Http.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Http message from the specified reader or buffer. + * @function decode + * @memberof google.api.Http + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.api.Http} Http + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Http.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.Http(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.rules && message.rules.length)) + message.rules = []; + message.rules.push($root.google.api.HttpRule.decode(reader, reader.uint32())); + break; + case 2: + message.fullyDecodeReservedExpansion = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Http message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.api.Http + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.api.Http} Http + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Http.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Http message. + * @function verify + * @memberof google.api.Http + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Http.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.rules != null && message.hasOwnProperty("rules")) { + if (!Array.isArray(message.rules)) + return "rules: array expected"; + for (var i = 0; i < message.rules.length; ++i) { + var error = $root.google.api.HttpRule.verify(message.rules[i]); + if (error) + return "rules." + error; + } + } + if (message.fullyDecodeReservedExpansion != null && message.hasOwnProperty("fullyDecodeReservedExpansion")) + if (typeof message.fullyDecodeReservedExpansion !== "boolean") + return "fullyDecodeReservedExpansion: boolean expected"; + return null; + }; + + /** + * Creates a Http message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.api.Http + * @static + * @param {Object.} object Plain object + * @returns {google.api.Http} Http + */ + Http.fromObject = function fromObject(object) { + if (object instanceof $root.google.api.Http) + return object; + var message = new $root.google.api.Http(); + if (object.rules) { + if (!Array.isArray(object.rules)) + throw TypeError(".google.api.Http.rules: array expected"); + message.rules = []; + for (var i = 0; i < object.rules.length; ++i) { + if (typeof object.rules[i] !== "object") + throw TypeError(".google.api.Http.rules: object expected"); + message.rules[i] = $root.google.api.HttpRule.fromObject(object.rules[i]); + } + } + if (object.fullyDecodeReservedExpansion != null) + message.fullyDecodeReservedExpansion = Boolean(object.fullyDecodeReservedExpansion); + return message; + }; + + /** + * Creates a plain object from a Http message. Also converts values to other types if specified. + * @function toObject + * @memberof google.api.Http + * @static + * @param {google.api.Http} message Http + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Http.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.rules = []; + if (options.defaults) + object.fullyDecodeReservedExpansion = false; + if (message.rules && message.rules.length) { + object.rules = []; + for (var j = 0; j < message.rules.length; ++j) + object.rules[j] = $root.google.api.HttpRule.toObject(message.rules[j], options); + } + if (message.fullyDecodeReservedExpansion != null && message.hasOwnProperty("fullyDecodeReservedExpansion")) + object.fullyDecodeReservedExpansion = message.fullyDecodeReservedExpansion; + return object; + }; + + /** + * Converts this Http to JSON. + * @function toJSON + * @memberof google.api.Http + * @instance + * @returns {Object.} JSON object + */ + Http.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Http; + })(); + + api.HttpRule = (function() { + + /** + * Properties of a HttpRule. + * @memberof google.api + * @interface IHttpRule + * @property {string|null} [selector] HttpRule selector + * @property {string|null} [get] HttpRule get + * @property {string|null} [put] HttpRule put + * @property {string|null} [post] HttpRule post + * @property {string|null} ["delete"] HttpRule delete + * @property {string|null} [patch] HttpRule patch + * @property {google.api.ICustomHttpPattern|null} [custom] HttpRule custom + * @property {string|null} [body] HttpRule body + * @property {string|null} [responseBody] HttpRule responseBody + * @property {Array.|null} [additionalBindings] HttpRule additionalBindings + */ + + /** + * Constructs a new HttpRule. + * @memberof google.api + * @classdesc Represents a HttpRule. + * @implements IHttpRule + * @constructor + * @param {google.api.IHttpRule=} [properties] Properties to set + */ + function HttpRule(properties) { + this.additionalBindings = []; + 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]]; + } + + /** + * HttpRule selector. + * @member {string} selector + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.selector = ""; + + /** + * HttpRule get. + * @member {string} get + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.get = ""; + + /** + * HttpRule put. + * @member {string} put + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.put = ""; + + /** + * HttpRule post. + * @member {string} post + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.post = ""; + + /** + * HttpRule delete. + * @member {string} delete + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype["delete"] = ""; + + /** + * HttpRule patch. + * @member {string} patch + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.patch = ""; + + /** + * HttpRule custom. + * @member {google.api.ICustomHttpPattern|null|undefined} custom + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.custom = null; + + /** + * HttpRule body. + * @member {string} body + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.body = ""; + + /** + * HttpRule responseBody. + * @member {string} responseBody + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.responseBody = ""; + + /** + * HttpRule additionalBindings. + * @member {Array.} additionalBindings + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.additionalBindings = $util.emptyArray; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * HttpRule pattern. + * @member {"get"|"put"|"post"|"delete"|"patch"|"custom"|undefined} pattern + * @memberof google.api.HttpRule + * @instance + */ + Object.defineProperty(HttpRule.prototype, "pattern", { + get: $util.oneOfGetter($oneOfFields = ["get", "put", "post", "delete", "patch", "custom"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new HttpRule instance using the specified properties. + * @function create + * @memberof google.api.HttpRule + * @static + * @param {google.api.IHttpRule=} [properties] Properties to set + * @returns {google.api.HttpRule} HttpRule instance + */ + HttpRule.create = function create(properties) { + return new HttpRule(properties); + }; + + /** + * Encodes the specified HttpRule message. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. + * @function encode + * @memberof google.api.HttpRule + * @static + * @param {google.api.IHttpRule} message HttpRule message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + HttpRule.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.selector != null && message.hasOwnProperty("selector")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.selector); + if (message.get != null && message.hasOwnProperty("get")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.get); + if (message.put != null && message.hasOwnProperty("put")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.put); + if (message.post != null && message.hasOwnProperty("post")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.post); + if (message["delete"] != null && message.hasOwnProperty("delete")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message["delete"]); + if (message.patch != null && message.hasOwnProperty("patch")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.patch); + if (message.body != null && message.hasOwnProperty("body")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.body); + if (message.custom != null && message.hasOwnProperty("custom")) + $root.google.api.CustomHttpPattern.encode(message.custom, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.additionalBindings != null && message.additionalBindings.length) + for (var i = 0; i < message.additionalBindings.length; ++i) + $root.google.api.HttpRule.encode(message.additionalBindings[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); + if (message.responseBody != null && message.hasOwnProperty("responseBody")) + writer.uint32(/* id 12, wireType 2 =*/98).string(message.responseBody); + return writer; + }; + + /** + * Encodes the specified HttpRule message, length delimited. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. + * @function encodeDelimited + * @memberof google.api.HttpRule + * @static + * @param {google.api.IHttpRule} message HttpRule message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + HttpRule.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a HttpRule message from the specified reader or buffer. + * @function decode + * @memberof google.api.HttpRule + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.api.HttpRule} HttpRule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + HttpRule.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.HttpRule(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.selector = reader.string(); + break; + case 2: + message.get = reader.string(); + break; + case 3: + message.put = reader.string(); + break; + case 4: + message.post = reader.string(); + break; + case 5: + message["delete"] = reader.string(); + break; + case 6: + message.patch = reader.string(); + break; + case 8: + message.custom = $root.google.api.CustomHttpPattern.decode(reader, reader.uint32()); + break; + case 7: + message.body = reader.string(); + break; + case 12: + message.responseBody = reader.string(); + break; + case 11: + if (!(message.additionalBindings && message.additionalBindings.length)) + message.additionalBindings = []; + message.additionalBindings.push($root.google.api.HttpRule.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a HttpRule message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.api.HttpRule + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.api.HttpRule} HttpRule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + HttpRule.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a HttpRule message. + * @function verify + * @memberof google.api.HttpRule + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + HttpRule.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.selector != null && message.hasOwnProperty("selector")) + if (!$util.isString(message.selector)) + return "selector: string expected"; + if (message.get != null && message.hasOwnProperty("get")) { + properties.pattern = 1; + if (!$util.isString(message.get)) + return "get: string expected"; + } + if (message.put != null && message.hasOwnProperty("put")) { + if (properties.pattern === 1) + return "pattern: multiple values"; + properties.pattern = 1; + if (!$util.isString(message.put)) + return "put: string expected"; + } + if (message.post != null && message.hasOwnProperty("post")) { + if (properties.pattern === 1) + return "pattern: multiple values"; + properties.pattern = 1; + if (!$util.isString(message.post)) + return "post: string expected"; + } + if (message["delete"] != null && message.hasOwnProperty("delete")) { + if (properties.pattern === 1) + return "pattern: multiple values"; + properties.pattern = 1; + if (!$util.isString(message["delete"])) + return "delete: string expected"; + } + if (message.patch != null && message.hasOwnProperty("patch")) { + if (properties.pattern === 1) + return "pattern: multiple values"; + properties.pattern = 1; + if (!$util.isString(message.patch)) + return "patch: string expected"; + } + if (message.custom != null && message.hasOwnProperty("custom")) { + if (properties.pattern === 1) + return "pattern: multiple values"; + properties.pattern = 1; + { + var error = $root.google.api.CustomHttpPattern.verify(message.custom); + if (error) + return "custom." + error; + } + } + if (message.body != null && message.hasOwnProperty("body")) + if (!$util.isString(message.body)) + return "body: string expected"; + if (message.responseBody != null && message.hasOwnProperty("responseBody")) + if (!$util.isString(message.responseBody)) + return "responseBody: string expected"; + if (message.additionalBindings != null && message.hasOwnProperty("additionalBindings")) { + if (!Array.isArray(message.additionalBindings)) + return "additionalBindings: array expected"; + for (var i = 0; i < message.additionalBindings.length; ++i) { + var error = $root.google.api.HttpRule.verify(message.additionalBindings[i]); + if (error) + return "additionalBindings." + error; + } + } + return null; + }; + + /** + * Creates a HttpRule message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.api.HttpRule + * @static + * @param {Object.} object Plain object + * @returns {google.api.HttpRule} HttpRule + */ + HttpRule.fromObject = function fromObject(object) { + if (object instanceof $root.google.api.HttpRule) + return object; + var message = new $root.google.api.HttpRule(); + if (object.selector != null) + message.selector = String(object.selector); + if (object.get != null) + message.get = String(object.get); + if (object.put != null) + message.put = String(object.put); + if (object.post != null) + message.post = String(object.post); + if (object["delete"] != null) + message["delete"] = String(object["delete"]); + if (object.patch != null) + message.patch = String(object.patch); + if (object.custom != null) { + if (typeof object.custom !== "object") + throw TypeError(".google.api.HttpRule.custom: object expected"); + message.custom = $root.google.api.CustomHttpPattern.fromObject(object.custom); + } + if (object.body != null) + message.body = String(object.body); + if (object.responseBody != null) + message.responseBody = String(object.responseBody); + if (object.additionalBindings) { + if (!Array.isArray(object.additionalBindings)) + throw TypeError(".google.api.HttpRule.additionalBindings: array expected"); + message.additionalBindings = []; + for (var i = 0; i < object.additionalBindings.length; ++i) { + if (typeof object.additionalBindings[i] !== "object") + throw TypeError(".google.api.HttpRule.additionalBindings: object expected"); + message.additionalBindings[i] = $root.google.api.HttpRule.fromObject(object.additionalBindings[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a HttpRule message. Also converts values to other types if specified. + * @function toObject + * @memberof google.api.HttpRule + * @static + * @param {google.api.HttpRule} message HttpRule + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + HttpRule.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.additionalBindings = []; + if (options.defaults) { + object.selector = ""; + object.body = ""; + object.responseBody = ""; + } + if (message.selector != null && message.hasOwnProperty("selector")) + object.selector = message.selector; + if (message.get != null && message.hasOwnProperty("get")) { + object.get = message.get; + if (options.oneofs) + object.pattern = "get"; + } + if (message.put != null && message.hasOwnProperty("put")) { + object.put = message.put; + if (options.oneofs) + object.pattern = "put"; + } + if (message.post != null && message.hasOwnProperty("post")) { + object.post = message.post; + if (options.oneofs) + object.pattern = "post"; + } + if (message["delete"] != null && message.hasOwnProperty("delete")) { + object["delete"] = message["delete"]; + if (options.oneofs) + object.pattern = "delete"; + } + if (message.patch != null && message.hasOwnProperty("patch")) { + object.patch = message.patch; + if (options.oneofs) + object.pattern = "patch"; + } + if (message.body != null && message.hasOwnProperty("body")) + object.body = message.body; + if (message.custom != null && message.hasOwnProperty("custom")) { + object.custom = $root.google.api.CustomHttpPattern.toObject(message.custom, options); + if (options.oneofs) + object.pattern = "custom"; + } + if (message.additionalBindings && message.additionalBindings.length) { + object.additionalBindings = []; + for (var j = 0; j < message.additionalBindings.length; ++j) + object.additionalBindings[j] = $root.google.api.HttpRule.toObject(message.additionalBindings[j], options); + } + if (message.responseBody != null && message.hasOwnProperty("responseBody")) + object.responseBody = message.responseBody; + return object; + }; + + /** + * Converts this HttpRule to JSON. + * @function toJSON + * @memberof google.api.HttpRule + * @instance + * @returns {Object.} JSON object + */ + HttpRule.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return HttpRule; + })(); + + api.CustomHttpPattern = (function() { + + /** + * Properties of a CustomHttpPattern. + * @memberof google.api + * @interface ICustomHttpPattern + * @property {string|null} [kind] CustomHttpPattern kind + * @property {string|null} [path] CustomHttpPattern path + */ + + /** + * Constructs a new CustomHttpPattern. + * @memberof google.api + * @classdesc Represents a CustomHttpPattern. + * @implements ICustomHttpPattern + * @constructor + * @param {google.api.ICustomHttpPattern=} [properties] Properties to set + */ + function CustomHttpPattern(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]]; + } + + /** + * CustomHttpPattern kind. + * @member {string} kind + * @memberof google.api.CustomHttpPattern + * @instance + */ + CustomHttpPattern.prototype.kind = ""; + + /** + * CustomHttpPattern path. + * @member {string} path + * @memberof google.api.CustomHttpPattern + * @instance + */ + CustomHttpPattern.prototype.path = ""; + + /** + * Creates a new CustomHttpPattern instance using the specified properties. + * @function create + * @memberof google.api.CustomHttpPattern + * @static + * @param {google.api.ICustomHttpPattern=} [properties] Properties to set + * @returns {google.api.CustomHttpPattern} CustomHttpPattern instance + */ + CustomHttpPattern.create = function create(properties) { + return new CustomHttpPattern(properties); + }; + + /** + * Encodes the specified CustomHttpPattern message. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. + * @function encode + * @memberof google.api.CustomHttpPattern + * @static + * @param {google.api.ICustomHttpPattern} message CustomHttpPattern message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CustomHttpPattern.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.kind != null && message.hasOwnProperty("kind")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); + if (message.path != null && message.hasOwnProperty("path")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.path); + return writer; + }; + + /** + * Encodes the specified CustomHttpPattern message, length delimited. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. + * @function encodeDelimited + * @memberof google.api.CustomHttpPattern + * @static + * @param {google.api.ICustomHttpPattern} message CustomHttpPattern message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CustomHttpPattern.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CustomHttpPattern message from the specified reader or buffer. + * @function decode + * @memberof google.api.CustomHttpPattern + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.api.CustomHttpPattern} CustomHttpPattern + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CustomHttpPattern.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.CustomHttpPattern(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.kind = reader.string(); + break; + case 2: + message.path = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CustomHttpPattern message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.api.CustomHttpPattern + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.api.CustomHttpPattern} CustomHttpPattern + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CustomHttpPattern.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CustomHttpPattern message. + * @function verify + * @memberof google.api.CustomHttpPattern + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CustomHttpPattern.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.kind != null && message.hasOwnProperty("kind")) + if (!$util.isString(message.kind)) + return "kind: string expected"; + if (message.path != null && message.hasOwnProperty("path")) + if (!$util.isString(message.path)) + return "path: string expected"; + return null; + }; + + /** + * Creates a CustomHttpPattern message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.api.CustomHttpPattern + * @static + * @param {Object.} object Plain object + * @returns {google.api.CustomHttpPattern} CustomHttpPattern + */ + CustomHttpPattern.fromObject = function fromObject(object) { + if (object instanceof $root.google.api.CustomHttpPattern) + return object; + var message = new $root.google.api.CustomHttpPattern(); + if (object.kind != null) + message.kind = String(object.kind); + if (object.path != null) + message.path = String(object.path); + return message; + }; + + /** + * Creates a plain object from a CustomHttpPattern message. Also converts values to other types if specified. + * @function toObject + * @memberof google.api.CustomHttpPattern + * @static + * @param {google.api.CustomHttpPattern} message CustomHttpPattern + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CustomHttpPattern.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.kind = ""; + object.path = ""; + } + if (message.kind != null && message.hasOwnProperty("kind")) + object.kind = message.kind; + if (message.path != null && message.hasOwnProperty("path")) + object.path = message.path; + return object; + }; + + /** + * Converts this CustomHttpPattern to JSON. + * @function toJSON + * @memberof google.api.CustomHttpPattern + * @instance + * @returns {Object.} JSON object + */ + CustomHttpPattern.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return CustomHttpPattern; + })(); + + /** + * FieldBehavior enum. + * @name google.api.FieldBehavior + * @enum {string} + * @property {number} FIELD_BEHAVIOR_UNSPECIFIED=0 FIELD_BEHAVIOR_UNSPECIFIED value + * @property {number} OPTIONAL=1 OPTIONAL value + * @property {number} REQUIRED=2 REQUIRED value + * @property {number} OUTPUT_ONLY=3 OUTPUT_ONLY value + * @property {number} INPUT_ONLY=4 INPUT_ONLY value + * @property {number} IMMUTABLE=5 IMMUTABLE value + */ + api.FieldBehavior = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "FIELD_BEHAVIOR_UNSPECIFIED"] = 0; + values[valuesById[1] = "OPTIONAL"] = 1; + values[valuesById[2] = "REQUIRED"] = 2; + values[valuesById[3] = "OUTPUT_ONLY"] = 3; + values[valuesById[4] = "INPUT_ONLY"] = 4; + values[valuesById[5] = "IMMUTABLE"] = 5; + return values; + })(); + + return api; + })(); + + google.protobuf = (function() { + + /** + * Namespace protobuf. + * @memberof google + * @namespace + */ + var protobuf = {}; + + protobuf.FileDescriptorSet = (function() { + + /** + * Properties of a FileDescriptorSet. + * @memberof google.protobuf + * @interface IFileDescriptorSet + * @property {Array.|null} [file] FileDescriptorSet file + */ + + /** + * Constructs a new FileDescriptorSet. + * @memberof google.protobuf + * @classdesc Represents a FileDescriptorSet. + * @implements IFileDescriptorSet + * @constructor + * @param {google.protobuf.IFileDescriptorSet=} [properties] Properties to set + */ + function FileDescriptorSet(properties) { + this.file = []; + 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]]; + } + + /** + * FileDescriptorSet file. + * @member {Array.} file + * @memberof google.protobuf.FileDescriptorSet + * @instance + */ + FileDescriptorSet.prototype.file = $util.emptyArray; + + /** + * Creates a new FileDescriptorSet instance using the specified properties. + * @function create + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {google.protobuf.IFileDescriptorSet=} [properties] Properties to set + * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet instance + */ + FileDescriptorSet.create = function create(properties) { + return new FileDescriptorSet(properties); + }; + + /** + * Encodes the specified FileDescriptorSet message. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages. + * @function encode + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {google.protobuf.IFileDescriptorSet} message FileDescriptorSet message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FileDescriptorSet.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.file != null && message.file.length) + for (var i = 0; i < message.file.length; ++i) + $root.google.protobuf.FileDescriptorProto.encode(message.file[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FileDescriptorSet message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {google.protobuf.IFileDescriptorSet} message FileDescriptorSet message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FileDescriptorSet.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FileDescriptorSet message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FileDescriptorSet.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileDescriptorSet(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.file && message.file.length)) + message.file = []; + message.file.push($root.google.protobuf.FileDescriptorProto.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FileDescriptorSet.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FileDescriptorSet message. + * @function verify + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FileDescriptorSet.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.file != null && message.hasOwnProperty("file")) { + if (!Array.isArray(message.file)) + return "file: array expected"; + for (var i = 0; i < message.file.length; ++i) { + var error = $root.google.protobuf.FileDescriptorProto.verify(message.file[i]); + if (error) + return "file." + error; + } + } + return null; + }; + + /** + * Creates a FileDescriptorSet message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet + */ + FileDescriptorSet.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.FileDescriptorSet) + return object; + var message = new $root.google.protobuf.FileDescriptorSet(); + if (object.file) { + if (!Array.isArray(object.file)) + throw TypeError(".google.protobuf.FileDescriptorSet.file: array expected"); + message.file = []; + for (var i = 0; i < object.file.length; ++i) { + if (typeof object.file[i] !== "object") + throw TypeError(".google.protobuf.FileDescriptorSet.file: object expected"); + message.file[i] = $root.google.protobuf.FileDescriptorProto.fromObject(object.file[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {google.protobuf.FileDescriptorSet} message FileDescriptorSet + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FileDescriptorSet.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.file = []; + if (message.file && message.file.length) { + object.file = []; + for (var j = 0; j < message.file.length; ++j) + object.file[j] = $root.google.protobuf.FileDescriptorProto.toObject(message.file[j], options); + } + return object; + }; + + /** + * Converts this FileDescriptorSet to JSON. + * @function toJSON + * @memberof google.protobuf.FileDescriptorSet + * @instance + * @returns {Object.} JSON object + */ + FileDescriptorSet.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return FileDescriptorSet; + })(); + + protobuf.FileDescriptorProto = (function() { + + /** + * Properties of a FileDescriptorProto. + * @memberof google.protobuf + * @interface IFileDescriptorProto + * @property {string|null} [name] FileDescriptorProto name + * @property {string|null} ["package"] FileDescriptorProto package + * @property {Array.|null} [dependency] FileDescriptorProto dependency + * @property {Array.|null} [publicDependency] FileDescriptorProto publicDependency + * @property {Array.|null} [weakDependency] FileDescriptorProto weakDependency + * @property {Array.|null} [messageType] FileDescriptorProto messageType + * @property {Array.|null} [enumType] FileDescriptorProto enumType + * @property {Array.|null} [service] FileDescriptorProto service + * @property {Array.|null} [extension] FileDescriptorProto extension + * @property {google.protobuf.IFileOptions|null} [options] FileDescriptorProto options + * @property {google.protobuf.ISourceCodeInfo|null} [sourceCodeInfo] FileDescriptorProto sourceCodeInfo + * @property {string|null} [syntax] FileDescriptorProto syntax + */ + + /** + * Constructs a new FileDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents a FileDescriptorProto. + * @implements IFileDescriptorProto + * @constructor + * @param {google.protobuf.IFileDescriptorProto=} [properties] Properties to set + */ + function FileDescriptorProto(properties) { + this.dependency = []; + this.publicDependency = []; + this.weakDependency = []; + this.messageType = []; + this.enumType = []; + this.service = []; + this.extension = []; + 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]]; + } + + /** + * FileDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.name = ""; + + /** + * FileDescriptorProto package. + * @member {string} package + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype["package"] = ""; + + /** + * FileDescriptorProto dependency. + * @member {Array.} dependency + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.dependency = $util.emptyArray; + + /** + * FileDescriptorProto publicDependency. + * @member {Array.} publicDependency + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.publicDependency = $util.emptyArray; + + /** + * FileDescriptorProto weakDependency. + * @member {Array.} weakDependency + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.weakDependency = $util.emptyArray; + + /** + * FileDescriptorProto messageType. + * @member {Array.} messageType + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.messageType = $util.emptyArray; + + /** + * FileDescriptorProto enumType. + * @member {Array.} enumType + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.enumType = $util.emptyArray; + + /** + * FileDescriptorProto service. + * @member {Array.} service + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.service = $util.emptyArray; + + /** + * FileDescriptorProto extension. + * @member {Array.} extension + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.extension = $util.emptyArray; + + /** + * FileDescriptorProto options. + * @member {google.protobuf.IFileOptions|null|undefined} options + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.options = null; + + /** + * FileDescriptorProto sourceCodeInfo. + * @member {google.protobuf.ISourceCodeInfo|null|undefined} sourceCodeInfo + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.sourceCodeInfo = null; + + /** + * FileDescriptorProto syntax. + * @member {string} syntax + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.syntax = ""; + + /** + * Creates a new FileDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {google.protobuf.IFileDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto instance + */ + FileDescriptorProto.create = function create(properties) { + return new FileDescriptorProto(properties); + }; + + /** + * Encodes the specified FileDescriptorProto message. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {google.protobuf.IFileDescriptorProto} message FileDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FileDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message["package"] != null && message.hasOwnProperty("package")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message["package"]); + if (message.dependency != null && message.dependency.length) + for (var i = 0; i < message.dependency.length; ++i) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.dependency[i]); + if (message.messageType != null && message.messageType.length) + for (var i = 0; i < message.messageType.length; ++i) + $root.google.protobuf.DescriptorProto.encode(message.messageType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.enumType != null && message.enumType.length) + for (var i = 0; i < message.enumType.length; ++i) + $root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.service != null && message.service.length) + for (var i = 0; i < message.service.length; ++i) + $root.google.protobuf.ServiceDescriptorProto.encode(message.service[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.extension != null && message.extension.length) + for (var i = 0; i < message.extension.length; ++i) + $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.options != null && message.hasOwnProperty("options")) + $root.google.protobuf.FileOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.sourceCodeInfo != null && message.hasOwnProperty("sourceCodeInfo")) + $root.google.protobuf.SourceCodeInfo.encode(message.sourceCodeInfo, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.publicDependency != null && message.publicDependency.length) + for (var i = 0; i < message.publicDependency.length; ++i) + writer.uint32(/* id 10, wireType 0 =*/80).int32(message.publicDependency[i]); + if (message.weakDependency != null && message.weakDependency.length) + for (var i = 0; i < message.weakDependency.length; ++i) + writer.uint32(/* id 11, wireType 0 =*/88).int32(message.weakDependency[i]); + if (message.syntax != null && message.hasOwnProperty("syntax")) + writer.uint32(/* id 12, wireType 2 =*/98).string(message.syntax); + return writer; + }; + + /** + * Encodes the specified FileDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {google.protobuf.IFileDescriptorProto} message FileDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FileDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FileDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FileDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message["package"] = reader.string(); + break; + case 3: + if (!(message.dependency && message.dependency.length)) + message.dependency = []; + message.dependency.push(reader.string()); + break; + case 10: + if (!(message.publicDependency && message.publicDependency.length)) + message.publicDependency = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.publicDependency.push(reader.int32()); + } else + message.publicDependency.push(reader.int32()); + break; + case 11: + if (!(message.weakDependency && message.weakDependency.length)) + message.weakDependency = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.weakDependency.push(reader.int32()); + } else + message.weakDependency.push(reader.int32()); + break; + case 4: + if (!(message.messageType && message.messageType.length)) + message.messageType = []; + message.messageType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32())); + break; + case 5: + if (!(message.enumType && message.enumType.length)) + message.enumType = []; + message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32())); + break; + case 6: + if (!(message.service && message.service.length)) + message.service = []; + message.service.push($root.google.protobuf.ServiceDescriptorProto.decode(reader, reader.uint32())); + break; + case 7: + if (!(message.extension && message.extension.length)) + message.extension = []; + message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); + break; + case 8: + message.options = $root.google.protobuf.FileOptions.decode(reader, reader.uint32()); + break; + case 9: + message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.decode(reader, reader.uint32()); + break; + case 12: + message.syntax = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FileDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FileDescriptorProto message. + * @function verify + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FileDescriptorProto.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["package"] != null && message.hasOwnProperty("package")) + if (!$util.isString(message["package"])) + return "package: string expected"; + if (message.dependency != null && message.hasOwnProperty("dependency")) { + if (!Array.isArray(message.dependency)) + return "dependency: array expected"; + for (var i = 0; i < message.dependency.length; ++i) + if (!$util.isString(message.dependency[i])) + return "dependency: string[] expected"; + } + if (message.publicDependency != null && message.hasOwnProperty("publicDependency")) { + if (!Array.isArray(message.publicDependency)) + return "publicDependency: array expected"; + for (var i = 0; i < message.publicDependency.length; ++i) + if (!$util.isInteger(message.publicDependency[i])) + return "publicDependency: integer[] expected"; + } + if (message.weakDependency != null && message.hasOwnProperty("weakDependency")) { + if (!Array.isArray(message.weakDependency)) + return "weakDependency: array expected"; + for (var i = 0; i < message.weakDependency.length; ++i) + if (!$util.isInteger(message.weakDependency[i])) + return "weakDependency: integer[] expected"; + } + if (message.messageType != null && message.hasOwnProperty("messageType")) { + if (!Array.isArray(message.messageType)) + return "messageType: array expected"; + for (var i = 0; i < message.messageType.length; ++i) { + var error = $root.google.protobuf.DescriptorProto.verify(message.messageType[i]); + if (error) + return "messageType." + error; + } + } + if (message.enumType != null && message.hasOwnProperty("enumType")) { + if (!Array.isArray(message.enumType)) + return "enumType: array expected"; + for (var i = 0; i < message.enumType.length; ++i) { + var error = $root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i]); + if (error) + return "enumType." + error; + } + } + if (message.service != null && message.hasOwnProperty("service")) { + if (!Array.isArray(message.service)) + return "service: array expected"; + for (var i = 0; i < message.service.length; ++i) { + var error = $root.google.protobuf.ServiceDescriptorProto.verify(message.service[i]); + if (error) + return "service." + error; + } + } + if (message.extension != null && message.hasOwnProperty("extension")) { + if (!Array.isArray(message.extension)) + return "extension: array expected"; + for (var i = 0; i < message.extension.length; ++i) { + var error = $root.google.protobuf.FieldDescriptorProto.verify(message.extension[i]); + if (error) + return "extension." + error; + } + } + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.FileOptions.verify(message.options); + if (error) + return "options." + error; + } + if (message.sourceCodeInfo != null && message.hasOwnProperty("sourceCodeInfo")) { + var error = $root.google.protobuf.SourceCodeInfo.verify(message.sourceCodeInfo); + if (error) + return "sourceCodeInfo." + error; + } + if (message.syntax != null && message.hasOwnProperty("syntax")) + if (!$util.isString(message.syntax)) + return "syntax: string expected"; + return null; + }; + + /** + * Creates a FileDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto + */ + FileDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.FileDescriptorProto) + return object; + var message = new $root.google.protobuf.FileDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object["package"] != null) + message["package"] = String(object["package"]); + if (object.dependency) { + if (!Array.isArray(object.dependency)) + throw TypeError(".google.protobuf.FileDescriptorProto.dependency: array expected"); + message.dependency = []; + for (var i = 0; i < object.dependency.length; ++i) + message.dependency[i] = String(object.dependency[i]); + } + if (object.publicDependency) { + if (!Array.isArray(object.publicDependency)) + throw TypeError(".google.protobuf.FileDescriptorProto.publicDependency: array expected"); + message.publicDependency = []; + for (var i = 0; i < object.publicDependency.length; ++i) + message.publicDependency[i] = object.publicDependency[i] | 0; + } + if (object.weakDependency) { + if (!Array.isArray(object.weakDependency)) + throw TypeError(".google.protobuf.FileDescriptorProto.weakDependency: array expected"); + message.weakDependency = []; + for (var i = 0; i < object.weakDependency.length; ++i) + message.weakDependency[i] = object.weakDependency[i] | 0; + } + if (object.messageType) { + if (!Array.isArray(object.messageType)) + throw TypeError(".google.protobuf.FileDescriptorProto.messageType: array expected"); + message.messageType = []; + for (var i = 0; i < object.messageType.length; ++i) { + if (typeof object.messageType[i] !== "object") + throw TypeError(".google.protobuf.FileDescriptorProto.messageType: object expected"); + message.messageType[i] = $root.google.protobuf.DescriptorProto.fromObject(object.messageType[i]); + } + } + if (object.enumType) { + if (!Array.isArray(object.enumType)) + throw TypeError(".google.protobuf.FileDescriptorProto.enumType: array expected"); + message.enumType = []; + for (var i = 0; i < object.enumType.length; ++i) { + if (typeof object.enumType[i] !== "object") + throw TypeError(".google.protobuf.FileDescriptorProto.enumType: object expected"); + message.enumType[i] = $root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i]); + } + } + if (object.service) { + if (!Array.isArray(object.service)) + throw TypeError(".google.protobuf.FileDescriptorProto.service: array expected"); + message.service = []; + for (var i = 0; i < object.service.length; ++i) { + if (typeof object.service[i] !== "object") + throw TypeError(".google.protobuf.FileDescriptorProto.service: object expected"); + message.service[i] = $root.google.protobuf.ServiceDescriptorProto.fromObject(object.service[i]); + } + } + if (object.extension) { + if (!Array.isArray(object.extension)) + throw TypeError(".google.protobuf.FileDescriptorProto.extension: array expected"); + message.extension = []; + for (var i = 0; i < object.extension.length; ++i) { + if (typeof object.extension[i] !== "object") + throw TypeError(".google.protobuf.FileDescriptorProto.extension: object expected"); + message.extension[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i]); + } + } + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.FileDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.FileOptions.fromObject(object.options); + } + if (object.sourceCodeInfo != null) { + if (typeof object.sourceCodeInfo !== "object") + throw TypeError(".google.protobuf.FileDescriptorProto.sourceCodeInfo: object expected"); + message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.fromObject(object.sourceCodeInfo); + } + if (object.syntax != null) + message.syntax = String(object.syntax); + return message; + }; + + /** + * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {google.protobuf.FileDescriptorProto} message FileDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FileDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.dependency = []; + object.messageType = []; + object.enumType = []; + object.service = []; + object.extension = []; + object.publicDependency = []; + object.weakDependency = []; + } + if (options.defaults) { + object.name = ""; + object["package"] = ""; + object.options = null; + object.sourceCodeInfo = null; + object.syntax = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message["package"] != null && message.hasOwnProperty("package")) + object["package"] = message["package"]; + if (message.dependency && message.dependency.length) { + object.dependency = []; + for (var j = 0; j < message.dependency.length; ++j) + object.dependency[j] = message.dependency[j]; + } + if (message.messageType && message.messageType.length) { + object.messageType = []; + for (var j = 0; j < message.messageType.length; ++j) + object.messageType[j] = $root.google.protobuf.DescriptorProto.toObject(message.messageType[j], options); + } + if (message.enumType && message.enumType.length) { + object.enumType = []; + for (var j = 0; j < message.enumType.length; ++j) + object.enumType[j] = $root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j], options); + } + if (message.service && message.service.length) { + object.service = []; + for (var j = 0; j < message.service.length; ++j) + object.service[j] = $root.google.protobuf.ServiceDescriptorProto.toObject(message.service[j], options); + } + if (message.extension && message.extension.length) { + object.extension = []; + for (var j = 0; j < message.extension.length; ++j) + object.extension[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j], options); + } + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.FileOptions.toObject(message.options, options); + if (message.sourceCodeInfo != null && message.hasOwnProperty("sourceCodeInfo")) + object.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.toObject(message.sourceCodeInfo, options); + if (message.publicDependency && message.publicDependency.length) { + object.publicDependency = []; + for (var j = 0; j < message.publicDependency.length; ++j) + object.publicDependency[j] = message.publicDependency[j]; + } + if (message.weakDependency && message.weakDependency.length) { + object.weakDependency = []; + for (var j = 0; j < message.weakDependency.length; ++j) + object.weakDependency[j] = message.weakDependency[j]; + } + if (message.syntax != null && message.hasOwnProperty("syntax")) + object.syntax = message.syntax; + return object; + }; + + /** + * Converts this FileDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.FileDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + FileDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return FileDescriptorProto; + })(); + + protobuf.DescriptorProto = (function() { + + /** + * Properties of a DescriptorProto. + * @memberof google.protobuf + * @interface IDescriptorProto + * @property {string|null} [name] DescriptorProto name + * @property {Array.|null} [field] DescriptorProto field + * @property {Array.|null} [extension] DescriptorProto extension + * @property {Array.|null} [nestedType] DescriptorProto nestedType + * @property {Array.|null} [enumType] DescriptorProto enumType + * @property {Array.|null} [extensionRange] DescriptorProto extensionRange + * @property {Array.|null} [oneofDecl] DescriptorProto oneofDecl + * @property {google.protobuf.IMessageOptions|null} [options] DescriptorProto options + * @property {Array.|null} [reservedRange] DescriptorProto reservedRange + * @property {Array.|null} [reservedName] DescriptorProto reservedName + */ + + /** + * Constructs a new DescriptorProto. + * @memberof google.protobuf + * @classdesc Represents a DescriptorProto. + * @implements IDescriptorProto + * @constructor + * @param {google.protobuf.IDescriptorProto=} [properties] Properties to set + */ + function DescriptorProto(properties) { + this.field = []; + this.extension = []; + this.nestedType = []; + this.enumType = []; + this.extensionRange = []; + this.oneofDecl = []; + this.reservedRange = []; + this.reservedName = []; + 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]]; + } + + /** + * DescriptorProto name. + * @member {string} name + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.name = ""; + + /** + * DescriptorProto field. + * @member {Array.} field + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.field = $util.emptyArray; + + /** + * DescriptorProto extension. + * @member {Array.} extension + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.extension = $util.emptyArray; + + /** + * DescriptorProto nestedType. + * @member {Array.} nestedType + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.nestedType = $util.emptyArray; + + /** + * DescriptorProto enumType. + * @member {Array.} enumType + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.enumType = $util.emptyArray; + + /** + * DescriptorProto extensionRange. + * @member {Array.} extensionRange + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.extensionRange = $util.emptyArray; + + /** + * DescriptorProto oneofDecl. + * @member {Array.} oneofDecl + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.oneofDecl = $util.emptyArray; + + /** + * DescriptorProto options. + * @member {google.protobuf.IMessageOptions|null|undefined} options + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.options = null; + + /** + * DescriptorProto reservedRange. + * @member {Array.} reservedRange + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.reservedRange = $util.emptyArray; + + /** + * DescriptorProto reservedName. + * @member {Array.} reservedName + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.reservedName = $util.emptyArray; + + /** + * Creates a new DescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.DescriptorProto + * @static + * @param {google.protobuf.IDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.DescriptorProto} DescriptorProto instance + */ + DescriptorProto.create = function create(properties) { + return new DescriptorProto(properties); + }; + + /** + * Encodes the specified DescriptorProto message. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.DescriptorProto + * @static + * @param {google.protobuf.IDescriptorProto} message DescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.field != null && message.field.length) + for (var i = 0; i < message.field.length; ++i) + $root.google.protobuf.FieldDescriptorProto.encode(message.field[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.nestedType != null && message.nestedType.length) + for (var i = 0; i < message.nestedType.length; ++i) + $root.google.protobuf.DescriptorProto.encode(message.nestedType[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.enumType != null && message.enumType.length) + for (var i = 0; i < message.enumType.length; ++i) + $root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.extensionRange != null && message.extensionRange.length) + for (var i = 0; i < message.extensionRange.length; ++i) + $root.google.protobuf.DescriptorProto.ExtensionRange.encode(message.extensionRange[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.extension != null && message.extension.length) + for (var i = 0; i < message.extension.length; ++i) + $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.options != null && message.hasOwnProperty("options")) + $root.google.protobuf.MessageOptions.encode(message.options, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.oneofDecl != null && message.oneofDecl.length) + for (var i = 0; i < message.oneofDecl.length; ++i) + $root.google.protobuf.OneofDescriptorProto.encode(message.oneofDecl[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.reservedRange != null && message.reservedRange.length) + for (var i = 0; i < message.reservedRange.length; ++i) + $root.google.protobuf.DescriptorProto.ReservedRange.encode(message.reservedRange[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.reservedName != null && message.reservedName.length) + for (var i = 0; i < message.reservedName.length; ++i) + writer.uint32(/* id 10, wireType 2 =*/82).string(message.reservedName[i]); + return writer; + }; + + /** + * Encodes the specified DescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.DescriptorProto + * @static + * @param {google.protobuf.IDescriptorProto} message DescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.DescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.DescriptorProto} DescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + if (!(message.field && message.field.length)) + message.field = []; + message.field.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); + break; + case 6: + if (!(message.extension && message.extension.length)) + message.extension = []; + message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); + break; + case 3: + if (!(message.nestedType && message.nestedType.length)) + message.nestedType = []; + message.nestedType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32())); + break; + case 4: + if (!(message.enumType && message.enumType.length)) + message.enumType = []; + message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32())); + break; + case 5: + if (!(message.extensionRange && message.extensionRange.length)) + message.extensionRange = []; + message.extensionRange.push($root.google.protobuf.DescriptorProto.ExtensionRange.decode(reader, reader.uint32())); + break; + case 8: + if (!(message.oneofDecl && message.oneofDecl.length)) + message.oneofDecl = []; + message.oneofDecl.push($root.google.protobuf.OneofDescriptorProto.decode(reader, reader.uint32())); + break; + case 7: + message.options = $root.google.protobuf.MessageOptions.decode(reader, reader.uint32()); + break; + case 9: + if (!(message.reservedRange && message.reservedRange.length)) + message.reservedRange = []; + message.reservedRange.push($root.google.protobuf.DescriptorProto.ReservedRange.decode(reader, reader.uint32())); + break; + case 10: + if (!(message.reservedName && message.reservedName.length)) + message.reservedName = []; + message.reservedName.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.DescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.DescriptorProto} DescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DescriptorProto message. + * @function verify + * @memberof google.protobuf.DescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DescriptorProto.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.field != null && message.hasOwnProperty("field")) { + if (!Array.isArray(message.field)) + return "field: array expected"; + for (var i = 0; i < message.field.length; ++i) { + var error = $root.google.protobuf.FieldDescriptorProto.verify(message.field[i]); + if (error) + return "field." + error; + } + } + if (message.extension != null && message.hasOwnProperty("extension")) { + if (!Array.isArray(message.extension)) + return "extension: array expected"; + for (var i = 0; i < message.extension.length; ++i) { + var error = $root.google.protobuf.FieldDescriptorProto.verify(message.extension[i]); + if (error) + return "extension." + error; + } + } + if (message.nestedType != null && message.hasOwnProperty("nestedType")) { + if (!Array.isArray(message.nestedType)) + return "nestedType: array expected"; + for (var i = 0; i < message.nestedType.length; ++i) { + var error = $root.google.protobuf.DescriptorProto.verify(message.nestedType[i]); + if (error) + return "nestedType." + error; + } + } + if (message.enumType != null && message.hasOwnProperty("enumType")) { + if (!Array.isArray(message.enumType)) + return "enumType: array expected"; + for (var i = 0; i < message.enumType.length; ++i) { + var error = $root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i]); + if (error) + return "enumType." + error; + } + } + if (message.extensionRange != null && message.hasOwnProperty("extensionRange")) { + if (!Array.isArray(message.extensionRange)) + return "extensionRange: array expected"; + for (var i = 0; i < message.extensionRange.length; ++i) { + var error = $root.google.protobuf.DescriptorProto.ExtensionRange.verify(message.extensionRange[i]); + if (error) + return "extensionRange." + error; + } + } + if (message.oneofDecl != null && message.hasOwnProperty("oneofDecl")) { + if (!Array.isArray(message.oneofDecl)) + return "oneofDecl: array expected"; + for (var i = 0; i < message.oneofDecl.length; ++i) { + var error = $root.google.protobuf.OneofDescriptorProto.verify(message.oneofDecl[i]); + if (error) + return "oneofDecl." + error; + } + } + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.MessageOptions.verify(message.options); + if (error) + return "options." + error; + } + if (message.reservedRange != null && message.hasOwnProperty("reservedRange")) { + if (!Array.isArray(message.reservedRange)) + return "reservedRange: array expected"; + for (var i = 0; i < message.reservedRange.length; ++i) { + var error = $root.google.protobuf.DescriptorProto.ReservedRange.verify(message.reservedRange[i]); + if (error) + return "reservedRange." + error; + } + } + if (message.reservedName != null && message.hasOwnProperty("reservedName")) { + if (!Array.isArray(message.reservedName)) + return "reservedName: array expected"; + for (var i = 0; i < message.reservedName.length; ++i) + if (!$util.isString(message.reservedName[i])) + return "reservedName: string[] expected"; + } + return null; + }; + + /** + * Creates a DescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.DescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.DescriptorProto} DescriptorProto + */ + DescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.DescriptorProto) + return object; + var message = new $root.google.protobuf.DescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.field) { + if (!Array.isArray(object.field)) + throw TypeError(".google.protobuf.DescriptorProto.field: array expected"); + message.field = []; + for (var i = 0; i < object.field.length; ++i) { + if (typeof object.field[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.field: object expected"); + message.field[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.field[i]); + } + } + if (object.extension) { + if (!Array.isArray(object.extension)) + throw TypeError(".google.protobuf.DescriptorProto.extension: array expected"); + message.extension = []; + for (var i = 0; i < object.extension.length; ++i) { + if (typeof object.extension[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.extension: object expected"); + message.extension[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i]); + } + } + if (object.nestedType) { + if (!Array.isArray(object.nestedType)) + throw TypeError(".google.protobuf.DescriptorProto.nestedType: array expected"); + message.nestedType = []; + for (var i = 0; i < object.nestedType.length; ++i) { + if (typeof object.nestedType[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.nestedType: object expected"); + message.nestedType[i] = $root.google.protobuf.DescriptorProto.fromObject(object.nestedType[i]); + } + } + if (object.enumType) { + if (!Array.isArray(object.enumType)) + throw TypeError(".google.protobuf.DescriptorProto.enumType: array expected"); + message.enumType = []; + for (var i = 0; i < object.enumType.length; ++i) { + if (typeof object.enumType[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.enumType: object expected"); + message.enumType[i] = $root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i]); + } + } + if (object.extensionRange) { + if (!Array.isArray(object.extensionRange)) + throw TypeError(".google.protobuf.DescriptorProto.extensionRange: array expected"); + message.extensionRange = []; + for (var i = 0; i < object.extensionRange.length; ++i) { + if (typeof object.extensionRange[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.extensionRange: object expected"); + message.extensionRange[i] = $root.google.protobuf.DescriptorProto.ExtensionRange.fromObject(object.extensionRange[i]); + } + } + if (object.oneofDecl) { + if (!Array.isArray(object.oneofDecl)) + throw TypeError(".google.protobuf.DescriptorProto.oneofDecl: array expected"); + message.oneofDecl = []; + for (var i = 0; i < object.oneofDecl.length; ++i) { + if (typeof object.oneofDecl[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.oneofDecl: object expected"); + message.oneofDecl[i] = $root.google.protobuf.OneofDescriptorProto.fromObject(object.oneofDecl[i]); + } + } + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.DescriptorProto.options: object expected"); + message.options = $root.google.protobuf.MessageOptions.fromObject(object.options); + } + if (object.reservedRange) { + if (!Array.isArray(object.reservedRange)) + throw TypeError(".google.protobuf.DescriptorProto.reservedRange: array expected"); + message.reservedRange = []; + for (var i = 0; i < object.reservedRange.length; ++i) { + if (typeof object.reservedRange[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.reservedRange: object expected"); + message.reservedRange[i] = $root.google.protobuf.DescriptorProto.ReservedRange.fromObject(object.reservedRange[i]); + } + } + if (object.reservedName) { + if (!Array.isArray(object.reservedName)) + throw TypeError(".google.protobuf.DescriptorProto.reservedName: array expected"); + message.reservedName = []; + for (var i = 0; i < object.reservedName.length; ++i) + message.reservedName[i] = String(object.reservedName[i]); + } + return message; + }; + + /** + * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.DescriptorProto + * @static + * @param {google.protobuf.DescriptorProto} message DescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.field = []; + object.nestedType = []; + object.enumType = []; + object.extensionRange = []; + object.extension = []; + object.oneofDecl = []; + object.reservedRange = []; + object.reservedName = []; + } + if (options.defaults) { + object.name = ""; + object.options = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.field && message.field.length) { + object.field = []; + for (var j = 0; j < message.field.length; ++j) + object.field[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.field[j], options); + } + if (message.nestedType && message.nestedType.length) { + object.nestedType = []; + for (var j = 0; j < message.nestedType.length; ++j) + object.nestedType[j] = $root.google.protobuf.DescriptorProto.toObject(message.nestedType[j], options); + } + if (message.enumType && message.enumType.length) { + object.enumType = []; + for (var j = 0; j < message.enumType.length; ++j) + object.enumType[j] = $root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j], options); + } + if (message.extensionRange && message.extensionRange.length) { + object.extensionRange = []; + for (var j = 0; j < message.extensionRange.length; ++j) + object.extensionRange[j] = $root.google.protobuf.DescriptorProto.ExtensionRange.toObject(message.extensionRange[j], options); + } + if (message.extension && message.extension.length) { + object.extension = []; + for (var j = 0; j < message.extension.length; ++j) + object.extension[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j], options); + } + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.MessageOptions.toObject(message.options, options); + if (message.oneofDecl && message.oneofDecl.length) { + object.oneofDecl = []; + for (var j = 0; j < message.oneofDecl.length; ++j) + object.oneofDecl[j] = $root.google.protobuf.OneofDescriptorProto.toObject(message.oneofDecl[j], options); + } + if (message.reservedRange && message.reservedRange.length) { + object.reservedRange = []; + for (var j = 0; j < message.reservedRange.length; ++j) + object.reservedRange[j] = $root.google.protobuf.DescriptorProto.ReservedRange.toObject(message.reservedRange[j], options); + } + if (message.reservedName && message.reservedName.length) { + object.reservedName = []; + for (var j = 0; j < message.reservedName.length; ++j) + object.reservedName[j] = message.reservedName[j]; + } + return object; + }; + + /** + * Converts this DescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.DescriptorProto + * @instance + * @returns {Object.} JSON object + */ + DescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + DescriptorProto.ExtensionRange = (function() { + + /** + * Properties of an ExtensionRange. + * @memberof google.protobuf.DescriptorProto + * @interface IExtensionRange + * @property {number|null} [start] ExtensionRange start + * @property {number|null} [end] ExtensionRange end + * @property {google.protobuf.IExtensionRangeOptions|null} [options] ExtensionRange options + */ + + /** + * Constructs a new ExtensionRange. + * @memberof google.protobuf.DescriptorProto + * @classdesc Represents an ExtensionRange. + * @implements IExtensionRange + * @constructor + * @param {google.protobuf.DescriptorProto.IExtensionRange=} [properties] Properties to set + */ + function ExtensionRange(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]]; + } + + /** + * ExtensionRange start. + * @member {number} start + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @instance + */ + ExtensionRange.prototype.start = 0; + + /** + * ExtensionRange end. + * @member {number} end + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @instance + */ + ExtensionRange.prototype.end = 0; + + /** + * ExtensionRange options. + * @member {google.protobuf.IExtensionRangeOptions|null|undefined} options + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @instance + */ + ExtensionRange.prototype.options = null; + + /** + * Creates a new ExtensionRange instance using the specified properties. + * @function create + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {google.protobuf.DescriptorProto.IExtensionRange=} [properties] Properties to set + * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange instance + */ + ExtensionRange.create = function create(properties) { + return new ExtensionRange(properties); + }; + + /** + * Encodes the specified ExtensionRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages. + * @function encode + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {google.protobuf.DescriptorProto.IExtensionRange} message ExtensionRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExtensionRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.start != null && message.hasOwnProperty("start")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); + if (message.end != null && message.hasOwnProperty("end")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); + if (message.options != null && message.hasOwnProperty("options")) + $root.google.protobuf.ExtensionRangeOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ExtensionRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {google.protobuf.DescriptorProto.IExtensionRange} message ExtensionRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExtensionRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ExtensionRange message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExtensionRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto.ExtensionRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.start = reader.int32(); + break; + case 2: + message.end = reader.int32(); + break; + case 3: + message.options = $root.google.protobuf.ExtensionRangeOptions.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ExtensionRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExtensionRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ExtensionRange message. + * @function verify + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExtensionRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.start != null && message.hasOwnProperty("start")) + if (!$util.isInteger(message.start)) + return "start: integer expected"; + if (message.end != null && message.hasOwnProperty("end")) + if (!$util.isInteger(message.end)) + return "end: integer expected"; + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.ExtensionRangeOptions.verify(message.options); + if (error) + return "options." + error; + } + return null; + }; + + /** + * Creates an ExtensionRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange + */ + ExtensionRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.DescriptorProto.ExtensionRange) + return object; + var message = new $root.google.protobuf.DescriptorProto.ExtensionRange(); + if (object.start != null) + message.start = object.start | 0; + if (object.end != null) + message.end = object.end | 0; + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.DescriptorProto.ExtensionRange.options: object expected"); + message.options = $root.google.protobuf.ExtensionRangeOptions.fromObject(object.options); + } + return message; + }; + + /** + * Creates a plain object from an ExtensionRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {google.protobuf.DescriptorProto.ExtensionRange} message ExtensionRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ExtensionRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.start = 0; + object.end = 0; + object.options = null; + } + if (message.start != null && message.hasOwnProperty("start")) + object.start = message.start; + if (message.end != null && message.hasOwnProperty("end")) + object.end = message.end; + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.ExtensionRangeOptions.toObject(message.options, options); + return object; + }; + + /** + * Converts this ExtensionRange to JSON. + * @function toJSON + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @instance + * @returns {Object.} JSON object + */ + ExtensionRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ExtensionRange; + })(); + + DescriptorProto.ReservedRange = (function() { + + /** + * Properties of a ReservedRange. + * @memberof google.protobuf.DescriptorProto + * @interface IReservedRange + * @property {number|null} [start] ReservedRange start + * @property {number|null} [end] ReservedRange end + */ + + /** + * Constructs a new ReservedRange. + * @memberof google.protobuf.DescriptorProto + * @classdesc Represents a ReservedRange. + * @implements IReservedRange + * @constructor + * @param {google.protobuf.DescriptorProto.IReservedRange=} [properties] Properties to set + */ + function ReservedRange(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]]; + } + + /** + * ReservedRange start. + * @member {number} start + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @instance + */ + ReservedRange.prototype.start = 0; + + /** + * ReservedRange end. + * @member {number} end + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @instance + */ + ReservedRange.prototype.end = 0; + + /** + * Creates a new ReservedRange instance using the specified properties. + * @function create + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {google.protobuf.DescriptorProto.IReservedRange=} [properties] Properties to set + * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange instance + */ + ReservedRange.create = function create(properties) { + return new ReservedRange(properties); + }; + + /** + * Encodes the specified ReservedRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages. + * @function encode + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {google.protobuf.DescriptorProto.IReservedRange} message ReservedRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ReservedRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.start != null && message.hasOwnProperty("start")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); + if (message.end != null && message.hasOwnProperty("end")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); + return writer; + }; + + /** + * Encodes the specified ReservedRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {google.protobuf.DescriptorProto.IReservedRange} message ReservedRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ReservedRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ReservedRange message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ReservedRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto.ReservedRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.start = reader.int32(); + break; + case 2: + message.end = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ReservedRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ReservedRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ReservedRange message. + * @function verify + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ReservedRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.start != null && message.hasOwnProperty("start")) + if (!$util.isInteger(message.start)) + return "start: integer expected"; + if (message.end != null && message.hasOwnProperty("end")) + if (!$util.isInteger(message.end)) + return "end: integer expected"; + return null; + }; + + /** + * Creates a ReservedRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange + */ + ReservedRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.DescriptorProto.ReservedRange) + return object; + var message = new $root.google.protobuf.DescriptorProto.ReservedRange(); + if (object.start != null) + message.start = object.start | 0; + if (object.end != null) + message.end = object.end | 0; + return message; + }; + + /** + * Creates a plain object from a ReservedRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {google.protobuf.DescriptorProto.ReservedRange} message ReservedRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ReservedRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.start = 0; + object.end = 0; + } + if (message.start != null && message.hasOwnProperty("start")) + object.start = message.start; + if (message.end != null && message.hasOwnProperty("end")) + object.end = message.end; + return object; + }; + + /** + * Converts this ReservedRange to JSON. + * @function toJSON + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @instance + * @returns {Object.} JSON object + */ + ReservedRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ReservedRange; + })(); + + return DescriptorProto; + })(); + + protobuf.ExtensionRangeOptions = (function() { + + /** + * Properties of an ExtensionRangeOptions. + * @memberof google.protobuf + * @interface IExtensionRangeOptions + * @property {Array.|null} [uninterpretedOption] ExtensionRangeOptions uninterpretedOption + */ + + /** + * Constructs a new ExtensionRangeOptions. + * @memberof google.protobuf + * @classdesc Represents an ExtensionRangeOptions. + * @implements IExtensionRangeOptions + * @constructor + * @param {google.protobuf.IExtensionRangeOptions=} [properties] Properties to set + */ + function ExtensionRangeOptions(properties) { + this.uninterpretedOption = []; + 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]]; + } + + /** + * ExtensionRangeOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.ExtensionRangeOptions + * @instance + */ + ExtensionRangeOptions.prototype.uninterpretedOption = $util.emptyArray; + + /** + * Creates a new ExtensionRangeOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {google.protobuf.IExtensionRangeOptions=} [properties] Properties to set + * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions instance + */ + ExtensionRangeOptions.create = function create(properties) { + return new ExtensionRangeOptions(properties); + }; + + /** + * Encodes the specified ExtensionRangeOptions message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {google.protobuf.IExtensionRangeOptions} message ExtensionRangeOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExtensionRangeOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ExtensionRangeOptions message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {google.protobuf.IExtensionRangeOptions} message ExtensionRangeOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExtensionRangeOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ExtensionRangeOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExtensionRangeOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ExtensionRangeOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ExtensionRangeOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExtensionRangeOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ExtensionRangeOptions message. + * @function verify + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExtensionRangeOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + return null; + }; + + /** + * Creates an ExtensionRangeOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions + */ + ExtensionRangeOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.ExtensionRangeOptions) + return object; + var message = new $root.google.protobuf.ExtensionRangeOptions(); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + return message; + }; + + /** + * Creates a plain object from an ExtensionRangeOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {google.protobuf.ExtensionRangeOptions} message ExtensionRangeOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ExtensionRangeOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uninterpretedOption = []; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + return object; + }; + + /** + * Converts this ExtensionRangeOptions to JSON. + * @function toJSON + * @memberof google.protobuf.ExtensionRangeOptions + * @instance + * @returns {Object.} JSON object + */ + ExtensionRangeOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ExtensionRangeOptions; + })(); + + protobuf.FieldDescriptorProto = (function() { + + /** + * Properties of a FieldDescriptorProto. + * @memberof google.protobuf + * @interface IFieldDescriptorProto + * @property {string|null} [name] FieldDescriptorProto name + * @property {number|null} [number] FieldDescriptorProto number + * @property {google.protobuf.FieldDescriptorProto.Label|null} [label] FieldDescriptorProto label + * @property {google.protobuf.FieldDescriptorProto.Type|null} [type] FieldDescriptorProto type + * @property {string|null} [typeName] FieldDescriptorProto typeName + * @property {string|null} [extendee] FieldDescriptorProto extendee + * @property {string|null} [defaultValue] FieldDescriptorProto defaultValue + * @property {number|null} [oneofIndex] FieldDescriptorProto oneofIndex + * @property {string|null} [jsonName] FieldDescriptorProto jsonName + * @property {google.protobuf.IFieldOptions|null} [options] FieldDescriptorProto options + */ + + /** + * Constructs a new FieldDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents a FieldDescriptorProto. + * @implements IFieldDescriptorProto + * @constructor + * @param {google.protobuf.IFieldDescriptorProto=} [properties] Properties to set + */ + function FieldDescriptorProto(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]]; + } + + /** + * FieldDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.name = ""; + + /** + * FieldDescriptorProto number. + * @member {number} number + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.number = 0; + + /** + * FieldDescriptorProto label. + * @member {google.protobuf.FieldDescriptorProto.Label} label + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.label = 1; + + /** + * FieldDescriptorProto type. + * @member {google.protobuf.FieldDescriptorProto.Type} type + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.type = 1; + + /** + * FieldDescriptorProto typeName. + * @member {string} typeName + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.typeName = ""; + + /** + * FieldDescriptorProto extendee. + * @member {string} extendee + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.extendee = ""; + + /** + * FieldDescriptorProto defaultValue. + * @member {string} defaultValue + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.defaultValue = ""; + + /** + * FieldDescriptorProto oneofIndex. + * @member {number} oneofIndex + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.oneofIndex = 0; + + /** + * FieldDescriptorProto jsonName. + * @member {string} jsonName + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.jsonName = ""; + + /** + * FieldDescriptorProto options. + * @member {google.protobuf.IFieldOptions|null|undefined} options + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.options = null; + + /** + * Creates a new FieldDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {google.protobuf.IFieldDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto instance + */ + FieldDescriptorProto.create = function create(properties) { + return new FieldDescriptorProto(properties); + }; + + /** + * Encodes the specified FieldDescriptorProto message. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {google.protobuf.IFieldDescriptorProto} message FieldDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FieldDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.extendee != null && message.hasOwnProperty("extendee")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.extendee); + if (message.number != null && message.hasOwnProperty("number")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.number); + if (message.label != null && message.hasOwnProperty("label")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.label); + if (message.type != null && message.hasOwnProperty("type")) + writer.uint32(/* id 5, wireType 0 =*/40).int32(message.type); + if (message.typeName != null && message.hasOwnProperty("typeName")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.typeName); + if (message.defaultValue != null && message.hasOwnProperty("defaultValue")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.defaultValue); + if (message.options != null && message.hasOwnProperty("options")) + $root.google.protobuf.FieldOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.oneofIndex != null && message.hasOwnProperty("oneofIndex")) + writer.uint32(/* id 9, wireType 0 =*/72).int32(message.oneofIndex); + if (message.jsonName != null && message.hasOwnProperty("jsonName")) + writer.uint32(/* id 10, wireType 2 =*/82).string(message.jsonName); + return writer; + }; + + /** + * Encodes the specified FieldDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {google.protobuf.IFieldDescriptorProto} message FieldDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FieldDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FieldDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FieldDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 3: + message.number = reader.int32(); + break; + case 4: + message.label = reader.int32(); + break; + case 5: + message.type = reader.int32(); + break; + case 6: + message.typeName = reader.string(); + break; + case 2: + message.extendee = reader.string(); + break; + case 7: + message.defaultValue = reader.string(); + break; + case 9: + message.oneofIndex = reader.int32(); + break; + case 10: + message.jsonName = reader.string(); + break; + case 8: + message.options = $root.google.protobuf.FieldOptions.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FieldDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FieldDescriptorProto message. + * @function verify + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FieldDescriptorProto.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.number != null && message.hasOwnProperty("number")) + if (!$util.isInteger(message.number)) + return "number: integer expected"; + if (message.label != null && message.hasOwnProperty("label")) + switch (message.label) { + default: + return "label: enum value expected"; + case 1: + case 2: + case 3: + break; + } + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + break; + } + if (message.typeName != null && message.hasOwnProperty("typeName")) + if (!$util.isString(message.typeName)) + return "typeName: string expected"; + if (message.extendee != null && message.hasOwnProperty("extendee")) + if (!$util.isString(message.extendee)) + return "extendee: string expected"; + if (message.defaultValue != null && message.hasOwnProperty("defaultValue")) + if (!$util.isString(message.defaultValue)) + return "defaultValue: string expected"; + if (message.oneofIndex != null && message.hasOwnProperty("oneofIndex")) + if (!$util.isInteger(message.oneofIndex)) + return "oneofIndex: integer expected"; + if (message.jsonName != null && message.hasOwnProperty("jsonName")) + if (!$util.isString(message.jsonName)) + return "jsonName: string expected"; + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.FieldOptions.verify(message.options); + if (error) + return "options." + error; + } + return null; + }; + + /** + * Creates a FieldDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto + */ + FieldDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.FieldDescriptorProto) + return object; + var message = new $root.google.protobuf.FieldDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.number != null) + message.number = object.number | 0; + switch (object.label) { + case "LABEL_OPTIONAL": + case 1: + message.label = 1; + break; + case "LABEL_REQUIRED": + case 2: + message.label = 2; + break; + case "LABEL_REPEATED": + case 3: + message.label = 3; + break; + } + switch (object.type) { + case "TYPE_DOUBLE": + case 1: + message.type = 1; + break; + case "TYPE_FLOAT": + case 2: + message.type = 2; + break; + case "TYPE_INT64": + case 3: + message.type = 3; + break; + case "TYPE_UINT64": + case 4: + message.type = 4; + break; + case "TYPE_INT32": + case 5: + message.type = 5; + break; + case "TYPE_FIXED64": + case 6: + message.type = 6; + break; + case "TYPE_FIXED32": + case 7: + message.type = 7; + break; + case "TYPE_BOOL": + case 8: + message.type = 8; + break; + case "TYPE_STRING": + case 9: + message.type = 9; + break; + case "TYPE_GROUP": + case 10: + message.type = 10; + break; + case "TYPE_MESSAGE": + case 11: + message.type = 11; + break; + case "TYPE_BYTES": + case 12: + message.type = 12; + break; + case "TYPE_UINT32": + case 13: + message.type = 13; + break; + case "TYPE_ENUM": + case 14: + message.type = 14; + break; + case "TYPE_SFIXED32": + case 15: + message.type = 15; + break; + case "TYPE_SFIXED64": + case 16: + message.type = 16; + break; + case "TYPE_SINT32": + case 17: + message.type = 17; + break; + case "TYPE_SINT64": + case 18: + message.type = 18; + break; + } + if (object.typeName != null) + message.typeName = String(object.typeName); + if (object.extendee != null) + message.extendee = String(object.extendee); + if (object.defaultValue != null) + message.defaultValue = String(object.defaultValue); + if (object.oneofIndex != null) + message.oneofIndex = object.oneofIndex | 0; + if (object.jsonName != null) + message.jsonName = String(object.jsonName); + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.FieldDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.FieldOptions.fromObject(object.options); + } + return message; + }; + + /** + * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {google.protobuf.FieldDescriptorProto} message FieldDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FieldDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.extendee = ""; + object.number = 0; + object.label = options.enums === String ? "LABEL_OPTIONAL" : 1; + object.type = options.enums === String ? "TYPE_DOUBLE" : 1; + object.typeName = ""; + object.defaultValue = ""; + object.options = null; + object.oneofIndex = 0; + object.jsonName = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.extendee != null && message.hasOwnProperty("extendee")) + object.extendee = message.extendee; + if (message.number != null && message.hasOwnProperty("number")) + object.number = message.number; + if (message.label != null && message.hasOwnProperty("label")) + object.label = options.enums === String ? $root.google.protobuf.FieldDescriptorProto.Label[message.label] : message.label; + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.google.protobuf.FieldDescriptorProto.Type[message.type] : message.type; + if (message.typeName != null && message.hasOwnProperty("typeName")) + object.typeName = message.typeName; + if (message.defaultValue != null && message.hasOwnProperty("defaultValue")) + object.defaultValue = message.defaultValue; + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.FieldOptions.toObject(message.options, options); + if (message.oneofIndex != null && message.hasOwnProperty("oneofIndex")) + object.oneofIndex = message.oneofIndex; + if (message.jsonName != null && message.hasOwnProperty("jsonName")) + object.jsonName = message.jsonName; + return object; + }; + + /** + * Converts this FieldDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.FieldDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + FieldDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Type enum. + * @name google.protobuf.FieldDescriptorProto.Type + * @enum {string} + * @property {number} TYPE_DOUBLE=1 TYPE_DOUBLE value + * @property {number} TYPE_FLOAT=2 TYPE_FLOAT value + * @property {number} TYPE_INT64=3 TYPE_INT64 value + * @property {number} TYPE_UINT64=4 TYPE_UINT64 value + * @property {number} TYPE_INT32=5 TYPE_INT32 value + * @property {number} TYPE_FIXED64=6 TYPE_FIXED64 value + * @property {number} TYPE_FIXED32=7 TYPE_FIXED32 value + * @property {number} TYPE_BOOL=8 TYPE_BOOL value + * @property {number} TYPE_STRING=9 TYPE_STRING value + * @property {number} TYPE_GROUP=10 TYPE_GROUP value + * @property {number} TYPE_MESSAGE=11 TYPE_MESSAGE value + * @property {number} TYPE_BYTES=12 TYPE_BYTES value + * @property {number} TYPE_UINT32=13 TYPE_UINT32 value + * @property {number} TYPE_ENUM=14 TYPE_ENUM value + * @property {number} TYPE_SFIXED32=15 TYPE_SFIXED32 value + * @property {number} TYPE_SFIXED64=16 TYPE_SFIXED64 value + * @property {number} TYPE_SINT32=17 TYPE_SINT32 value + * @property {number} TYPE_SINT64=18 TYPE_SINT64 value + */ + FieldDescriptorProto.Type = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[1] = "TYPE_DOUBLE"] = 1; + values[valuesById[2] = "TYPE_FLOAT"] = 2; + values[valuesById[3] = "TYPE_INT64"] = 3; + values[valuesById[4] = "TYPE_UINT64"] = 4; + values[valuesById[5] = "TYPE_INT32"] = 5; + values[valuesById[6] = "TYPE_FIXED64"] = 6; + values[valuesById[7] = "TYPE_FIXED32"] = 7; + values[valuesById[8] = "TYPE_BOOL"] = 8; + values[valuesById[9] = "TYPE_STRING"] = 9; + values[valuesById[10] = "TYPE_GROUP"] = 10; + values[valuesById[11] = "TYPE_MESSAGE"] = 11; + values[valuesById[12] = "TYPE_BYTES"] = 12; + values[valuesById[13] = "TYPE_UINT32"] = 13; + values[valuesById[14] = "TYPE_ENUM"] = 14; + values[valuesById[15] = "TYPE_SFIXED32"] = 15; + values[valuesById[16] = "TYPE_SFIXED64"] = 16; + values[valuesById[17] = "TYPE_SINT32"] = 17; + values[valuesById[18] = "TYPE_SINT64"] = 18; + return values; + })(); + + /** + * Label enum. + * @name google.protobuf.FieldDescriptorProto.Label + * @enum {string} + * @property {number} LABEL_OPTIONAL=1 LABEL_OPTIONAL value + * @property {number} LABEL_REQUIRED=2 LABEL_REQUIRED value + * @property {number} LABEL_REPEATED=3 LABEL_REPEATED value + */ + FieldDescriptorProto.Label = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[1] = "LABEL_OPTIONAL"] = 1; + values[valuesById[2] = "LABEL_REQUIRED"] = 2; + values[valuesById[3] = "LABEL_REPEATED"] = 3; + return values; + })(); + + return FieldDescriptorProto; + })(); + + protobuf.OneofDescriptorProto = (function() { + + /** + * Properties of an OneofDescriptorProto. + * @memberof google.protobuf + * @interface IOneofDescriptorProto + * @property {string|null} [name] OneofDescriptorProto name + * @property {google.protobuf.IOneofOptions|null} [options] OneofDescriptorProto options + */ + + /** + * Constructs a new OneofDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents an OneofDescriptorProto. + * @implements IOneofDescriptorProto + * @constructor + * @param {google.protobuf.IOneofDescriptorProto=} [properties] Properties to set + */ + function OneofDescriptorProto(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]]; + } + + /** + * OneofDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.OneofDescriptorProto + * @instance + */ + OneofDescriptorProto.prototype.name = ""; + + /** + * OneofDescriptorProto options. + * @member {google.protobuf.IOneofOptions|null|undefined} options + * @memberof google.protobuf.OneofDescriptorProto + * @instance + */ + OneofDescriptorProto.prototype.options = null; + + /** + * Creates a new OneofDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {google.protobuf.IOneofDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto instance + */ + OneofDescriptorProto.create = function create(properties) { + return new OneofDescriptorProto(properties); + }; + + /** + * Encodes the specified OneofDescriptorProto message. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {google.protobuf.IOneofDescriptorProto} message OneofDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OneofDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.options != null && message.hasOwnProperty("options")) + $root.google.protobuf.OneofOptions.encode(message.options, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified OneofDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {google.protobuf.IOneofDescriptorProto} message OneofDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OneofDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an OneofDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OneofDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.OneofDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.options = $root.google.protobuf.OneofOptions.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OneofDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an OneofDescriptorProto message. + * @function verify + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + OneofDescriptorProto.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.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.OneofOptions.verify(message.options); + if (error) + return "options." + error; + } + return null; + }; + + /** + * Creates an OneofDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto + */ + OneofDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.OneofDescriptorProto) + return object; + var message = new $root.google.protobuf.OneofDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.OneofDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.OneofOptions.fromObject(object.options); + } + return message; + }; + + /** + * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {google.protobuf.OneofDescriptorProto} message OneofDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + OneofDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.options = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.OneofOptions.toObject(message.options, options); + return object; + }; + + /** + * Converts this OneofDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.OneofDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + OneofDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return OneofDescriptorProto; + })(); + + protobuf.EnumDescriptorProto = (function() { + + /** + * Properties of an EnumDescriptorProto. + * @memberof google.protobuf + * @interface IEnumDescriptorProto + * @property {string|null} [name] EnumDescriptorProto name + * @property {Array.|null} [value] EnumDescriptorProto value + * @property {google.protobuf.IEnumOptions|null} [options] EnumDescriptorProto options + * @property {Array.|null} [reservedRange] EnumDescriptorProto reservedRange + * @property {Array.|null} [reservedName] EnumDescriptorProto reservedName + */ + + /** + * Constructs a new EnumDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents an EnumDescriptorProto. + * @implements IEnumDescriptorProto + * @constructor + * @param {google.protobuf.IEnumDescriptorProto=} [properties] Properties to set + */ + function EnumDescriptorProto(properties) { + this.value = []; + this.reservedRange = []; + this.reservedName = []; + 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]]; + } + + /** + * EnumDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.EnumDescriptorProto + * @instance + */ + EnumDescriptorProto.prototype.name = ""; + + /** + * EnumDescriptorProto value. + * @member {Array.} value + * @memberof google.protobuf.EnumDescriptorProto + * @instance + */ + EnumDescriptorProto.prototype.value = $util.emptyArray; + + /** + * EnumDescriptorProto options. + * @member {google.protobuf.IEnumOptions|null|undefined} options + * @memberof google.protobuf.EnumDescriptorProto + * @instance + */ + EnumDescriptorProto.prototype.options = null; + + /** + * EnumDescriptorProto reservedRange. + * @member {Array.} reservedRange + * @memberof google.protobuf.EnumDescriptorProto + * @instance + */ + EnumDescriptorProto.prototype.reservedRange = $util.emptyArray; + + /** + * EnumDescriptorProto reservedName. + * @member {Array.} reservedName + * @memberof google.protobuf.EnumDescriptorProto + * @instance + */ + EnumDescriptorProto.prototype.reservedName = $util.emptyArray; + + /** + * Creates a new EnumDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {google.protobuf.IEnumDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto instance + */ + EnumDescriptorProto.create = function create(properties) { + return new EnumDescriptorProto(properties); + }; + + /** + * Encodes the specified EnumDescriptorProto message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {google.protobuf.IEnumDescriptorProto} message EnumDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.value != null && message.value.length) + for (var i = 0; i < message.value.length; ++i) + $root.google.protobuf.EnumValueDescriptorProto.encode(message.value[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.options != null && message.hasOwnProperty("options")) + $root.google.protobuf.EnumOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.reservedRange != null && message.reservedRange.length) + for (var i = 0; i < message.reservedRange.length; ++i) + $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.encode(message.reservedRange[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.reservedName != null && message.reservedName.length) + for (var i = 0; i < message.reservedName.length; ++i) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.reservedName[i]); + return writer; + }; + + /** + * Encodes the specified EnumDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {google.protobuf.IEnumDescriptorProto} message EnumDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EnumDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + if (!(message.value && message.value.length)) + message.value = []; + message.value.push($root.google.protobuf.EnumValueDescriptorProto.decode(reader, reader.uint32())); + break; + case 3: + message.options = $root.google.protobuf.EnumOptions.decode(reader, reader.uint32()); + break; + case 4: + if (!(message.reservedRange && message.reservedRange.length)) + message.reservedRange = []; + message.reservedRange.push($root.google.protobuf.EnumDescriptorProto.EnumReservedRange.decode(reader, reader.uint32())); + break; + case 5: + if (!(message.reservedName && message.reservedName.length)) + message.reservedName = []; + message.reservedName.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EnumDescriptorProto message. + * @function verify + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EnumDescriptorProto.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.value != null && message.hasOwnProperty("value")) { + if (!Array.isArray(message.value)) + return "value: array expected"; + for (var i = 0; i < message.value.length; ++i) { + var error = $root.google.protobuf.EnumValueDescriptorProto.verify(message.value[i]); + if (error) + return "value." + error; + } + } + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.EnumOptions.verify(message.options); + if (error) + return "options." + error; + } + if (message.reservedRange != null && message.hasOwnProperty("reservedRange")) { + if (!Array.isArray(message.reservedRange)) + return "reservedRange: array expected"; + for (var i = 0; i < message.reservedRange.length; ++i) { + var error = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.verify(message.reservedRange[i]); + if (error) + return "reservedRange." + error; + } + } + if (message.reservedName != null && message.hasOwnProperty("reservedName")) { + if (!Array.isArray(message.reservedName)) + return "reservedName: array expected"; + for (var i = 0; i < message.reservedName.length; ++i) + if (!$util.isString(message.reservedName[i])) + return "reservedName: string[] expected"; + } + return null; + }; + + /** + * Creates an EnumDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto + */ + EnumDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.EnumDescriptorProto) + return object; + var message = new $root.google.protobuf.EnumDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.value) { + if (!Array.isArray(object.value)) + throw TypeError(".google.protobuf.EnumDescriptorProto.value: array expected"); + message.value = []; + for (var i = 0; i < object.value.length; ++i) { + if (typeof object.value[i] !== "object") + throw TypeError(".google.protobuf.EnumDescriptorProto.value: object expected"); + message.value[i] = $root.google.protobuf.EnumValueDescriptorProto.fromObject(object.value[i]); + } + } + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.EnumDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.EnumOptions.fromObject(object.options); + } + if (object.reservedRange) { + if (!Array.isArray(object.reservedRange)) + throw TypeError(".google.protobuf.EnumDescriptorProto.reservedRange: array expected"); + message.reservedRange = []; + for (var i = 0; i < object.reservedRange.length; ++i) { + if (typeof object.reservedRange[i] !== "object") + throw TypeError(".google.protobuf.EnumDescriptorProto.reservedRange: object expected"); + message.reservedRange[i] = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.fromObject(object.reservedRange[i]); + } + } + if (object.reservedName) { + if (!Array.isArray(object.reservedName)) + throw TypeError(".google.protobuf.EnumDescriptorProto.reservedName: array expected"); + message.reservedName = []; + for (var i = 0; i < object.reservedName.length; ++i) + message.reservedName[i] = String(object.reservedName[i]); + } + return message; + }; + + /** + * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {google.protobuf.EnumDescriptorProto} message EnumDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EnumDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.value = []; + object.reservedRange = []; + object.reservedName = []; + } + if (options.defaults) { + object.name = ""; + object.options = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.value && message.value.length) { + object.value = []; + for (var j = 0; j < message.value.length; ++j) + object.value[j] = $root.google.protobuf.EnumValueDescriptorProto.toObject(message.value[j], options); + } + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.EnumOptions.toObject(message.options, options); + if (message.reservedRange && message.reservedRange.length) { + object.reservedRange = []; + for (var j = 0; j < message.reservedRange.length; ++j) + object.reservedRange[j] = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.toObject(message.reservedRange[j], options); + } + if (message.reservedName && message.reservedName.length) { + object.reservedName = []; + for (var j = 0; j < message.reservedName.length; ++j) + object.reservedName[j] = message.reservedName[j]; + } + return object; + }; + + /** + * Converts this EnumDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.EnumDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + EnumDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + EnumDescriptorProto.EnumReservedRange = (function() { + + /** + * Properties of an EnumReservedRange. + * @memberof google.protobuf.EnumDescriptorProto + * @interface IEnumReservedRange + * @property {number|null} [start] EnumReservedRange start + * @property {number|null} [end] EnumReservedRange end + */ + + /** + * Constructs a new EnumReservedRange. + * @memberof google.protobuf.EnumDescriptorProto + * @classdesc Represents an EnumReservedRange. + * @implements IEnumReservedRange + * @constructor + * @param {google.protobuf.EnumDescriptorProto.IEnumReservedRange=} [properties] Properties to set + */ + function EnumReservedRange(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]]; + } + + /** + * EnumReservedRange start. + * @member {number} start + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @instance + */ + EnumReservedRange.prototype.start = 0; + + /** + * EnumReservedRange end. + * @member {number} end + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @instance + */ + EnumReservedRange.prototype.end = 0; + + /** + * Creates a new EnumReservedRange instance using the specified properties. + * @function create + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {google.protobuf.EnumDescriptorProto.IEnumReservedRange=} [properties] Properties to set + * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange instance + */ + EnumReservedRange.create = function create(properties) { + return new EnumReservedRange(properties); + }; + + /** + * Encodes the specified EnumReservedRange message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages. + * @function encode + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {google.protobuf.EnumDescriptorProto.IEnumReservedRange} message EnumReservedRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumReservedRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.start != null && message.hasOwnProperty("start")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); + if (message.end != null && message.hasOwnProperty("end")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); + return writer; + }; + + /** + * Encodes the specified EnumReservedRange message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {google.protobuf.EnumDescriptorProto.IEnumReservedRange} message EnumReservedRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumReservedRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EnumReservedRange message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumReservedRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.start = reader.int32(); + break; + case 2: + message.end = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EnumReservedRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumReservedRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EnumReservedRange message. + * @function verify + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EnumReservedRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.start != null && message.hasOwnProperty("start")) + if (!$util.isInteger(message.start)) + return "start: integer expected"; + if (message.end != null && message.hasOwnProperty("end")) + if (!$util.isInteger(message.end)) + return "end: integer expected"; + return null; + }; + + /** + * Creates an EnumReservedRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange + */ + EnumReservedRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.EnumDescriptorProto.EnumReservedRange) + return object; + var message = new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange(); + if (object.start != null) + message.start = object.start | 0; + if (object.end != null) + message.end = object.end | 0; + return message; + }; + + /** + * Creates a plain object from an EnumReservedRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {google.protobuf.EnumDescriptorProto.EnumReservedRange} message EnumReservedRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EnumReservedRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.start = 0; + object.end = 0; + } + if (message.start != null && message.hasOwnProperty("start")) + object.start = message.start; + if (message.end != null && message.hasOwnProperty("end")) + object.end = message.end; + return object; + }; + + /** + * Converts this EnumReservedRange to JSON. + * @function toJSON + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @instance + * @returns {Object.} JSON object + */ + EnumReservedRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return EnumReservedRange; + })(); + + return EnumDescriptorProto; + })(); + + protobuf.EnumValueDescriptorProto = (function() { + + /** + * Properties of an EnumValueDescriptorProto. + * @memberof google.protobuf + * @interface IEnumValueDescriptorProto + * @property {string|null} [name] EnumValueDescriptorProto name + * @property {number|null} [number] EnumValueDescriptorProto number + * @property {google.protobuf.IEnumValueOptions|null} [options] EnumValueDescriptorProto options + */ + + /** + * Constructs a new EnumValueDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents an EnumValueDescriptorProto. + * @implements IEnumValueDescriptorProto + * @constructor + * @param {google.protobuf.IEnumValueDescriptorProto=} [properties] Properties to set + */ + function EnumValueDescriptorProto(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]]; + } + + /** + * EnumValueDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.EnumValueDescriptorProto + * @instance + */ + EnumValueDescriptorProto.prototype.name = ""; + + /** + * EnumValueDescriptorProto number. + * @member {number} number + * @memberof google.protobuf.EnumValueDescriptorProto + * @instance + */ + EnumValueDescriptorProto.prototype.number = 0; + + /** + * EnumValueDescriptorProto options. + * @member {google.protobuf.IEnumValueOptions|null|undefined} options + * @memberof google.protobuf.EnumValueDescriptorProto + * @instance + */ + EnumValueDescriptorProto.prototype.options = null; + + /** + * Creates a new EnumValueDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {google.protobuf.IEnumValueDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto instance + */ + EnumValueDescriptorProto.create = function create(properties) { + return new EnumValueDescriptorProto(properties); + }; + + /** + * Encodes the specified EnumValueDescriptorProto message. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {google.protobuf.IEnumValueDescriptorProto} message EnumValueDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumValueDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.number != null && message.hasOwnProperty("number")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.number); + if (message.options != null && message.hasOwnProperty("options")) + $root.google.protobuf.EnumValueOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified EnumValueDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {google.protobuf.IEnumValueDescriptorProto} message EnumValueDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumValueDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EnumValueDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumValueDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumValueDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.number = reader.int32(); + break; + case 3: + message.options = $root.google.protobuf.EnumValueOptions.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumValueDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EnumValueDescriptorProto message. + * @function verify + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EnumValueDescriptorProto.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.number != null && message.hasOwnProperty("number")) + if (!$util.isInteger(message.number)) + return "number: integer expected"; + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.EnumValueOptions.verify(message.options); + if (error) + return "options." + error; + } + return null; + }; + + /** + * Creates an EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto + */ + EnumValueDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.EnumValueDescriptorProto) + return object; + var message = new $root.google.protobuf.EnumValueDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.number != null) + message.number = object.number | 0; + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.EnumValueDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.EnumValueOptions.fromObject(object.options); + } + return message; + }; + + /** + * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {google.protobuf.EnumValueDescriptorProto} message EnumValueDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EnumValueDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.number = 0; + object.options = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.number != null && message.hasOwnProperty("number")) + object.number = message.number; + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.EnumValueOptions.toObject(message.options, options); + return object; + }; + + /** + * Converts this EnumValueDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.EnumValueDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + EnumValueDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return EnumValueDescriptorProto; + })(); + + protobuf.ServiceDescriptorProto = (function() { + + /** + * Properties of a ServiceDescriptorProto. + * @memberof google.protobuf + * @interface IServiceDescriptorProto + * @property {string|null} [name] ServiceDescriptorProto name + * @property {Array.|null} [method] ServiceDescriptorProto method + * @property {google.protobuf.IServiceOptions|null} [options] ServiceDescriptorProto options + */ + + /** + * Constructs a new ServiceDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents a ServiceDescriptorProto. + * @implements IServiceDescriptorProto + * @constructor + * @param {google.protobuf.IServiceDescriptorProto=} [properties] Properties to set + */ + function ServiceDescriptorProto(properties) { + this.method = []; + 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]]; + } + + /** + * ServiceDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.ServiceDescriptorProto + * @instance + */ + ServiceDescriptorProto.prototype.name = ""; + + /** + * ServiceDescriptorProto method. + * @member {Array.} method + * @memberof google.protobuf.ServiceDescriptorProto + * @instance + */ + ServiceDescriptorProto.prototype.method = $util.emptyArray; + + /** + * ServiceDescriptorProto options. + * @member {google.protobuf.IServiceOptions|null|undefined} options + * @memberof google.protobuf.ServiceDescriptorProto + * @instance + */ + ServiceDescriptorProto.prototype.options = null; + + /** + * Creates a new ServiceDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {google.protobuf.IServiceDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto instance + */ + ServiceDescriptorProto.create = function create(properties) { + return new ServiceDescriptorProto(properties); + }; + + /** + * Encodes the specified ServiceDescriptorProto message. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {google.protobuf.IServiceDescriptorProto} message ServiceDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ServiceDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.method != null && message.method.length) + for (var i = 0; i < message.method.length; ++i) + $root.google.protobuf.MethodDescriptorProto.encode(message.method[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.options != null && message.hasOwnProperty("options")) + $root.google.protobuf.ServiceOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ServiceDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {google.protobuf.IServiceDescriptorProto} message ServiceDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ServiceDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ServiceDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ServiceDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ServiceDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + if (!(message.method && message.method.length)) + message.method = []; + message.method.push($root.google.protobuf.MethodDescriptorProto.decode(reader, reader.uint32())); + break; + case 3: + message.options = $root.google.protobuf.ServiceOptions.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ServiceDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ServiceDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ServiceDescriptorProto message. + * @function verify + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ServiceDescriptorProto.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.method != null && message.hasOwnProperty("method")) { + if (!Array.isArray(message.method)) + return "method: array expected"; + for (var i = 0; i < message.method.length; ++i) { + var error = $root.google.protobuf.MethodDescriptorProto.verify(message.method[i]); + if (error) + return "method." + error; + } + } + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.ServiceOptions.verify(message.options); + if (error) + return "options." + error; + } + return null; + }; + + /** + * Creates a ServiceDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto + */ + ServiceDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.ServiceDescriptorProto) + return object; + var message = new $root.google.protobuf.ServiceDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.method) { + if (!Array.isArray(object.method)) + throw TypeError(".google.protobuf.ServiceDescriptorProto.method: array expected"); + message.method = []; + for (var i = 0; i < object.method.length; ++i) { + if (typeof object.method[i] !== "object") + throw TypeError(".google.protobuf.ServiceDescriptorProto.method: object expected"); + message.method[i] = $root.google.protobuf.MethodDescriptorProto.fromObject(object.method[i]); + } + } + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.ServiceDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.ServiceOptions.fromObject(object.options); + } + return message; + }; + + /** + * Creates a plain object from a ServiceDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {google.protobuf.ServiceDescriptorProto} message ServiceDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ServiceDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.method = []; + if (options.defaults) { + object.name = ""; + object.options = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.method && message.method.length) { + object.method = []; + for (var j = 0; j < message.method.length; ++j) + object.method[j] = $root.google.protobuf.MethodDescriptorProto.toObject(message.method[j], options); + } + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.ServiceOptions.toObject(message.options, options); + return object; + }; + + /** + * Converts this ServiceDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.ServiceDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + ServiceDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ServiceDescriptorProto; + })(); + + protobuf.MethodDescriptorProto = (function() { + + /** + * Properties of a MethodDescriptorProto. + * @memberof google.protobuf + * @interface IMethodDescriptorProto + * @property {string|null} [name] MethodDescriptorProto name + * @property {string|null} [inputType] MethodDescriptorProto inputType + * @property {string|null} [outputType] MethodDescriptorProto outputType + * @property {google.protobuf.IMethodOptions|null} [options] MethodDescriptorProto options + * @property {boolean|null} [clientStreaming] MethodDescriptorProto clientStreaming + * @property {boolean|null} [serverStreaming] MethodDescriptorProto serverStreaming + */ + + /** + * Constructs a new MethodDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents a MethodDescriptorProto. + * @implements IMethodDescriptorProto + * @constructor + * @param {google.protobuf.IMethodDescriptorProto=} [properties] Properties to set + */ + function MethodDescriptorProto(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]]; + } + + /** + * MethodDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.MethodDescriptorProto + * @instance + */ + MethodDescriptorProto.prototype.name = ""; + + /** + * MethodDescriptorProto inputType. + * @member {string} inputType + * @memberof google.protobuf.MethodDescriptorProto + * @instance + */ + MethodDescriptorProto.prototype.inputType = ""; + + /** + * MethodDescriptorProto outputType. + * @member {string} outputType + * @memberof google.protobuf.MethodDescriptorProto + * @instance + */ + MethodDescriptorProto.prototype.outputType = ""; + + /** + * MethodDescriptorProto options. + * @member {google.protobuf.IMethodOptions|null|undefined} options + * @memberof google.protobuf.MethodDescriptorProto + * @instance + */ + MethodDescriptorProto.prototype.options = null; + + /** + * MethodDescriptorProto clientStreaming. + * @member {boolean} clientStreaming + * @memberof google.protobuf.MethodDescriptorProto + * @instance + */ + MethodDescriptorProto.prototype.clientStreaming = false; + + /** + * MethodDescriptorProto serverStreaming. + * @member {boolean} serverStreaming + * @memberof google.protobuf.MethodDescriptorProto + * @instance + */ + MethodDescriptorProto.prototype.serverStreaming = false; + + /** + * Creates a new MethodDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {google.protobuf.IMethodDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto instance + */ + MethodDescriptorProto.create = function create(properties) { + return new MethodDescriptorProto(properties); + }; + + /** + * Encodes the specified MethodDescriptorProto message. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {google.protobuf.IMethodDescriptorProto} message MethodDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MethodDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.hasOwnProperty("name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.inputType != null && message.hasOwnProperty("inputType")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.inputType); + if (message.outputType != null && message.hasOwnProperty("outputType")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.outputType); + if (message.options != null && message.hasOwnProperty("options")) + $root.google.protobuf.MethodOptions.encode(message.options, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.clientStreaming != null && message.hasOwnProperty("clientStreaming")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.clientStreaming); + if (message.serverStreaming != null && message.hasOwnProperty("serverStreaming")) + writer.uint32(/* id 6, wireType 0 =*/48).bool(message.serverStreaming); + return writer; + }; + + /** + * Encodes the specified MethodDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {google.protobuf.IMethodDescriptorProto} message MethodDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MethodDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MethodDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MethodDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MethodDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.inputType = reader.string(); + break; + case 3: + message.outputType = reader.string(); + break; + case 4: + message.options = $root.google.protobuf.MethodOptions.decode(reader, reader.uint32()); + break; + case 5: + message.clientStreaming = reader.bool(); + break; + case 6: + message.serverStreaming = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MethodDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MethodDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MethodDescriptorProto message. + * @function verify + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MethodDescriptorProto.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.inputType != null && message.hasOwnProperty("inputType")) + if (!$util.isString(message.inputType)) + return "inputType: string expected"; + if (message.outputType != null && message.hasOwnProperty("outputType")) + if (!$util.isString(message.outputType)) + return "outputType: string expected"; + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.MethodOptions.verify(message.options); + if (error) + return "options." + error; + } + if (message.clientStreaming != null && message.hasOwnProperty("clientStreaming")) + if (typeof message.clientStreaming !== "boolean") + return "clientStreaming: boolean expected"; + if (message.serverStreaming != null && message.hasOwnProperty("serverStreaming")) + if (typeof message.serverStreaming !== "boolean") + return "serverStreaming: boolean expected"; + return null; + }; + + /** + * Creates a MethodDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto + */ + MethodDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.MethodDescriptorProto) + return object; + var message = new $root.google.protobuf.MethodDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.inputType != null) + message.inputType = String(object.inputType); + if (object.outputType != null) + message.outputType = String(object.outputType); + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.MethodDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.MethodOptions.fromObject(object.options); + } + if (object.clientStreaming != null) + message.clientStreaming = Boolean(object.clientStreaming); + if (object.serverStreaming != null) + message.serverStreaming = Boolean(object.serverStreaming); + return message; + }; + + /** + * Creates a plain object from a MethodDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {google.protobuf.MethodDescriptorProto} message MethodDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MethodDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.inputType = ""; + object.outputType = ""; + object.options = null; + object.clientStreaming = false; + object.serverStreaming = false; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.inputType != null && message.hasOwnProperty("inputType")) + object.inputType = message.inputType; + if (message.outputType != null && message.hasOwnProperty("outputType")) + object.outputType = message.outputType; + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.MethodOptions.toObject(message.options, options); + if (message.clientStreaming != null && message.hasOwnProperty("clientStreaming")) + object.clientStreaming = message.clientStreaming; + if (message.serverStreaming != null && message.hasOwnProperty("serverStreaming")) + object.serverStreaming = message.serverStreaming; + return object; + }; + + /** + * Converts this MethodDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.MethodDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + MethodDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return MethodDescriptorProto; + })(); + + protobuf.FileOptions = (function() { + + /** + * Properties of a FileOptions. + * @memberof google.protobuf + * @interface IFileOptions + * @property {string|null} [javaPackage] FileOptions javaPackage + * @property {string|null} [javaOuterClassname] FileOptions javaOuterClassname + * @property {boolean|null} [javaMultipleFiles] FileOptions javaMultipleFiles + * @property {boolean|null} [javaGenerateEqualsAndHash] FileOptions javaGenerateEqualsAndHash + * @property {boolean|null} [javaStringCheckUtf8] FileOptions javaStringCheckUtf8 + * @property {google.protobuf.FileOptions.OptimizeMode|null} [optimizeFor] FileOptions optimizeFor + * @property {string|null} [goPackage] FileOptions goPackage + * @property {boolean|null} [ccGenericServices] FileOptions ccGenericServices + * @property {boolean|null} [javaGenericServices] FileOptions javaGenericServices + * @property {boolean|null} [pyGenericServices] FileOptions pyGenericServices + * @property {boolean|null} [phpGenericServices] FileOptions phpGenericServices + * @property {boolean|null} [deprecated] FileOptions deprecated + * @property {boolean|null} [ccEnableArenas] FileOptions ccEnableArenas + * @property {string|null} [objcClassPrefix] FileOptions objcClassPrefix + * @property {string|null} [csharpNamespace] FileOptions csharpNamespace + * @property {string|null} [swiftPrefix] FileOptions swiftPrefix + * @property {string|null} [phpClassPrefix] FileOptions phpClassPrefix + * @property {string|null} [phpNamespace] FileOptions phpNamespace + * @property {string|null} [phpMetadataNamespace] FileOptions phpMetadataNamespace + * @property {string|null} [rubyPackage] FileOptions rubyPackage + * @property {Array.|null} [uninterpretedOption] FileOptions uninterpretedOption + * @property {Array.|null} [".google.api.resourceDefinition"] FileOptions .google.api.resourceDefinition + */ + + /** + * Constructs a new FileOptions. + * @memberof google.protobuf + * @classdesc Represents a FileOptions. + * @implements IFileOptions + * @constructor + * @param {google.protobuf.IFileOptions=} [properties] Properties to set + */ + function FileOptions(properties) { + this.uninterpretedOption = []; + this[".google.api.resourceDefinition"] = []; + 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]]; + } + + /** + * FileOptions javaPackage. + * @member {string} javaPackage + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.javaPackage = ""; + + /** + * FileOptions javaOuterClassname. + * @member {string} javaOuterClassname + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.javaOuterClassname = ""; + + /** + * FileOptions javaMultipleFiles. + * @member {boolean} javaMultipleFiles + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.javaMultipleFiles = false; + + /** + * FileOptions javaGenerateEqualsAndHash. + * @member {boolean} javaGenerateEqualsAndHash + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.javaGenerateEqualsAndHash = false; + + /** + * FileOptions javaStringCheckUtf8. + * @member {boolean} javaStringCheckUtf8 + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.javaStringCheckUtf8 = false; + + /** + * FileOptions optimizeFor. + * @member {google.protobuf.FileOptions.OptimizeMode} optimizeFor + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.optimizeFor = 1; + + /** + * FileOptions goPackage. + * @member {string} goPackage + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.goPackage = ""; + + /** + * FileOptions ccGenericServices. + * @member {boolean} ccGenericServices + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.ccGenericServices = false; + + /** + * FileOptions javaGenericServices. + * @member {boolean} javaGenericServices + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.javaGenericServices = false; + + /** + * FileOptions pyGenericServices. + * @member {boolean} pyGenericServices + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.pyGenericServices = false; + + /** + * FileOptions phpGenericServices. + * @member {boolean} phpGenericServices + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.phpGenericServices = false; + + /** + * FileOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.deprecated = false; + + /** + * FileOptions ccEnableArenas. + * @member {boolean} ccEnableArenas + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.ccEnableArenas = false; + + /** + * FileOptions objcClassPrefix. + * @member {string} objcClassPrefix + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.objcClassPrefix = ""; + + /** + * FileOptions csharpNamespace. + * @member {string} csharpNamespace + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.csharpNamespace = ""; + + /** + * FileOptions swiftPrefix. + * @member {string} swiftPrefix + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.swiftPrefix = ""; + + /** + * FileOptions phpClassPrefix. + * @member {string} phpClassPrefix + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.phpClassPrefix = ""; + + /** + * FileOptions phpNamespace. + * @member {string} phpNamespace + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.phpNamespace = ""; + + /** + * FileOptions phpMetadataNamespace. + * @member {string} phpMetadataNamespace + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.phpMetadataNamespace = ""; + + /** + * FileOptions rubyPackage. + * @member {string} rubyPackage + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.rubyPackage = ""; + + /** + * FileOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.uninterpretedOption = $util.emptyArray; + + /** + * FileOptions .google.api.resourceDefinition. + * @member {Array.} .google.api.resourceDefinition + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype[".google.api.resourceDefinition"] = $util.emptyArray; + + /** + * Creates a new FileOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.FileOptions + * @static + * @param {google.protobuf.IFileOptions=} [properties] Properties to set + * @returns {google.protobuf.FileOptions} FileOptions instance + */ + FileOptions.create = function create(properties) { + return new FileOptions(properties); + }; + + /** + * Encodes the specified FileOptions message. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.FileOptions + * @static + * @param {google.protobuf.IFileOptions} message FileOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FileOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.javaPackage != null && message.hasOwnProperty("javaPackage")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.javaPackage); + if (message.javaOuterClassname != null && message.hasOwnProperty("javaOuterClassname")) + writer.uint32(/* id 8, wireType 2 =*/66).string(message.javaOuterClassname); + if (message.optimizeFor != null && message.hasOwnProperty("optimizeFor")) + writer.uint32(/* id 9, wireType 0 =*/72).int32(message.optimizeFor); + if (message.javaMultipleFiles != null && message.hasOwnProperty("javaMultipleFiles")) + writer.uint32(/* id 10, wireType 0 =*/80).bool(message.javaMultipleFiles); + if (message.goPackage != null && message.hasOwnProperty("goPackage")) + writer.uint32(/* id 11, wireType 2 =*/90).string(message.goPackage); + if (message.ccGenericServices != null && message.hasOwnProperty("ccGenericServices")) + writer.uint32(/* id 16, wireType 0 =*/128).bool(message.ccGenericServices); + if (message.javaGenericServices != null && message.hasOwnProperty("javaGenericServices")) + writer.uint32(/* id 17, wireType 0 =*/136).bool(message.javaGenericServices); + if (message.pyGenericServices != null && message.hasOwnProperty("pyGenericServices")) + writer.uint32(/* id 18, wireType 0 =*/144).bool(message.pyGenericServices); + if (message.javaGenerateEqualsAndHash != null && message.hasOwnProperty("javaGenerateEqualsAndHash")) + writer.uint32(/* id 20, wireType 0 =*/160).bool(message.javaGenerateEqualsAndHash); + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + writer.uint32(/* id 23, wireType 0 =*/184).bool(message.deprecated); + if (message.javaStringCheckUtf8 != null && message.hasOwnProperty("javaStringCheckUtf8")) + writer.uint32(/* id 27, wireType 0 =*/216).bool(message.javaStringCheckUtf8); + if (message.ccEnableArenas != null && message.hasOwnProperty("ccEnableArenas")) + writer.uint32(/* id 31, wireType 0 =*/248).bool(message.ccEnableArenas); + if (message.objcClassPrefix != null && message.hasOwnProperty("objcClassPrefix")) + writer.uint32(/* id 36, wireType 2 =*/290).string(message.objcClassPrefix); + if (message.csharpNamespace != null && message.hasOwnProperty("csharpNamespace")) + writer.uint32(/* id 37, wireType 2 =*/298).string(message.csharpNamespace); + if (message.swiftPrefix != null && message.hasOwnProperty("swiftPrefix")) + writer.uint32(/* id 39, wireType 2 =*/314).string(message.swiftPrefix); + if (message.phpClassPrefix != null && message.hasOwnProperty("phpClassPrefix")) + writer.uint32(/* id 40, wireType 2 =*/322).string(message.phpClassPrefix); + if (message.phpNamespace != null && message.hasOwnProperty("phpNamespace")) + writer.uint32(/* id 41, wireType 2 =*/330).string(message.phpNamespace); + if (message.phpGenericServices != null && message.hasOwnProperty("phpGenericServices")) + writer.uint32(/* id 42, wireType 0 =*/336).bool(message.phpGenericServices); + if (message.phpMetadataNamespace != null && message.hasOwnProperty("phpMetadataNamespace")) + writer.uint32(/* id 44, wireType 2 =*/354).string(message.phpMetadataNamespace); + if (message.rubyPackage != null && message.hasOwnProperty("rubyPackage")) + writer.uint32(/* id 45, wireType 2 =*/362).string(message.rubyPackage); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + if (message[".google.api.resourceDefinition"] != null && message[".google.api.resourceDefinition"].length) + for (var i = 0; i < message[".google.api.resourceDefinition"].length; ++i) + $root.google.api.ResourceDescriptor.encode(message[".google.api.resourceDefinition"][i], writer.uint32(/* id 1053, wireType 2 =*/8426).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FileOptions message, length delimited. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.FileOptions + * @static + * @param {google.protobuf.IFileOptions} message FileOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FileOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FileOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.FileOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.FileOptions} FileOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FileOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.javaPackage = reader.string(); + break; + case 8: + message.javaOuterClassname = reader.string(); + break; + case 10: + message.javaMultipleFiles = reader.bool(); + break; + case 20: + message.javaGenerateEqualsAndHash = reader.bool(); + break; + case 27: + message.javaStringCheckUtf8 = reader.bool(); + break; + case 9: + message.optimizeFor = reader.int32(); + break; + case 11: + message.goPackage = reader.string(); + break; + case 16: + message.ccGenericServices = reader.bool(); + break; + case 17: + message.javaGenericServices = reader.bool(); + break; + case 18: + message.pyGenericServices = reader.bool(); + break; + case 42: + message.phpGenericServices = reader.bool(); + break; + case 23: + message.deprecated = reader.bool(); + break; + case 31: + message.ccEnableArenas = reader.bool(); + break; + case 36: + message.objcClassPrefix = reader.string(); + break; + case 37: + message.csharpNamespace = reader.string(); + break; + case 39: + message.swiftPrefix = reader.string(); + break; + case 40: + message.phpClassPrefix = reader.string(); + break; + case 41: + message.phpNamespace = reader.string(); + break; + case 44: + message.phpMetadataNamespace = reader.string(); + break; + case 45: + message.rubyPackage = reader.string(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + case 1053: + if (!(message[".google.api.resourceDefinition"] && message[".google.api.resourceDefinition"].length)) + message[".google.api.resourceDefinition"] = []; + message[".google.api.resourceDefinition"].push($root.google.api.ResourceDescriptor.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FileOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.FileOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.FileOptions} FileOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FileOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FileOptions message. + * @function verify + * @memberof google.protobuf.FileOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FileOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.javaPackage != null && message.hasOwnProperty("javaPackage")) + if (!$util.isString(message.javaPackage)) + return "javaPackage: string expected"; + if (message.javaOuterClassname != null && message.hasOwnProperty("javaOuterClassname")) + if (!$util.isString(message.javaOuterClassname)) + return "javaOuterClassname: string expected"; + if (message.javaMultipleFiles != null && message.hasOwnProperty("javaMultipleFiles")) + if (typeof message.javaMultipleFiles !== "boolean") + return "javaMultipleFiles: boolean expected"; + if (message.javaGenerateEqualsAndHash != null && message.hasOwnProperty("javaGenerateEqualsAndHash")) + if (typeof message.javaGenerateEqualsAndHash !== "boolean") + return "javaGenerateEqualsAndHash: boolean expected"; + if (message.javaStringCheckUtf8 != null && message.hasOwnProperty("javaStringCheckUtf8")) + if (typeof message.javaStringCheckUtf8 !== "boolean") + return "javaStringCheckUtf8: boolean expected"; + if (message.optimizeFor != null && message.hasOwnProperty("optimizeFor")) + switch (message.optimizeFor) { + default: + return "optimizeFor: enum value expected"; + case 1: + case 2: + case 3: + break; + } + if (message.goPackage != null && message.hasOwnProperty("goPackage")) + if (!$util.isString(message.goPackage)) + return "goPackage: string expected"; + if (message.ccGenericServices != null && message.hasOwnProperty("ccGenericServices")) + if (typeof message.ccGenericServices !== "boolean") + return "ccGenericServices: boolean expected"; + if (message.javaGenericServices != null && message.hasOwnProperty("javaGenericServices")) + if (typeof message.javaGenericServices !== "boolean") + return "javaGenericServices: boolean expected"; + if (message.pyGenericServices != null && message.hasOwnProperty("pyGenericServices")) + if (typeof message.pyGenericServices !== "boolean") + return "pyGenericServices: boolean expected"; + if (message.phpGenericServices != null && message.hasOwnProperty("phpGenericServices")) + if (typeof message.phpGenericServices !== "boolean") + return "phpGenericServices: boolean expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.ccEnableArenas != null && message.hasOwnProperty("ccEnableArenas")) + if (typeof message.ccEnableArenas !== "boolean") + return "ccEnableArenas: boolean expected"; + if (message.objcClassPrefix != null && message.hasOwnProperty("objcClassPrefix")) + if (!$util.isString(message.objcClassPrefix)) + return "objcClassPrefix: string expected"; + if (message.csharpNamespace != null && message.hasOwnProperty("csharpNamespace")) + if (!$util.isString(message.csharpNamespace)) + return "csharpNamespace: string expected"; + if (message.swiftPrefix != null && message.hasOwnProperty("swiftPrefix")) + if (!$util.isString(message.swiftPrefix)) + return "swiftPrefix: string expected"; + if (message.phpClassPrefix != null && message.hasOwnProperty("phpClassPrefix")) + if (!$util.isString(message.phpClassPrefix)) + return "phpClassPrefix: string expected"; + if (message.phpNamespace != null && message.hasOwnProperty("phpNamespace")) + if (!$util.isString(message.phpNamespace)) + return "phpNamespace: string expected"; + if (message.phpMetadataNamespace != null && message.hasOwnProperty("phpMetadataNamespace")) + if (!$util.isString(message.phpMetadataNamespace)) + return "phpMetadataNamespace: string expected"; + if (message.rubyPackage != null && message.hasOwnProperty("rubyPackage")) + if (!$util.isString(message.rubyPackage)) + return "rubyPackage: string expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + if (message[".google.api.resourceDefinition"] != null && message.hasOwnProperty(".google.api.resourceDefinition")) { + if (!Array.isArray(message[".google.api.resourceDefinition"])) + return ".google.api.resourceDefinition: array expected"; + for (var i = 0; i < message[".google.api.resourceDefinition"].length; ++i) { + var error = $root.google.api.ResourceDescriptor.verify(message[".google.api.resourceDefinition"][i]); + if (error) + return ".google.api.resourceDefinition." + error; + } + } + return null; + }; + + /** + * Creates a FileOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.FileOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.FileOptions} FileOptions + */ + FileOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.FileOptions) + return object; + var message = new $root.google.protobuf.FileOptions(); + if (object.javaPackage != null) + message.javaPackage = String(object.javaPackage); + if (object.javaOuterClassname != null) + message.javaOuterClassname = String(object.javaOuterClassname); + if (object.javaMultipleFiles != null) + message.javaMultipleFiles = Boolean(object.javaMultipleFiles); + if (object.javaGenerateEqualsAndHash != null) + message.javaGenerateEqualsAndHash = Boolean(object.javaGenerateEqualsAndHash); + if (object.javaStringCheckUtf8 != null) + message.javaStringCheckUtf8 = Boolean(object.javaStringCheckUtf8); + switch (object.optimizeFor) { + case "SPEED": + case 1: + message.optimizeFor = 1; + break; + case "CODE_SIZE": + case 2: + message.optimizeFor = 2; + break; + case "LITE_RUNTIME": + case 3: + message.optimizeFor = 3; + break; + } + if (object.goPackage != null) + message.goPackage = String(object.goPackage); + if (object.ccGenericServices != null) + message.ccGenericServices = Boolean(object.ccGenericServices); + if (object.javaGenericServices != null) + message.javaGenericServices = Boolean(object.javaGenericServices); + if (object.pyGenericServices != null) + message.pyGenericServices = Boolean(object.pyGenericServices); + if (object.phpGenericServices != null) + message.phpGenericServices = Boolean(object.phpGenericServices); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + if (object.ccEnableArenas != null) + message.ccEnableArenas = Boolean(object.ccEnableArenas); + if (object.objcClassPrefix != null) + message.objcClassPrefix = String(object.objcClassPrefix); + if (object.csharpNamespace != null) + message.csharpNamespace = String(object.csharpNamespace); + if (object.swiftPrefix != null) + message.swiftPrefix = String(object.swiftPrefix); + if (object.phpClassPrefix != null) + message.phpClassPrefix = String(object.phpClassPrefix); + if (object.phpNamespace != null) + message.phpNamespace = String(object.phpNamespace); + if (object.phpMetadataNamespace != null) + message.phpMetadataNamespace = String(object.phpMetadataNamespace); + if (object.rubyPackage != null) + message.rubyPackage = String(object.rubyPackage); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + if (object[".google.api.resourceDefinition"]) { + if (!Array.isArray(object[".google.api.resourceDefinition"])) + throw TypeError(".google.protobuf.FileOptions..google.api.resourceDefinition: array expected"); + message[".google.api.resourceDefinition"] = []; + for (var i = 0; i < object[".google.api.resourceDefinition"].length; ++i) { + if (typeof object[".google.api.resourceDefinition"][i] !== "object") + throw TypeError(".google.protobuf.FileOptions..google.api.resourceDefinition: object expected"); + message[".google.api.resourceDefinition"][i] = $root.google.api.ResourceDescriptor.fromObject(object[".google.api.resourceDefinition"][i]); + } + } + return message; + }; + + /** + * Creates a plain object from a FileOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FileOptions + * @static + * @param {google.protobuf.FileOptions} message FileOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FileOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.uninterpretedOption = []; + object[".google.api.resourceDefinition"] = []; + } + if (options.defaults) { + object.javaPackage = ""; + object.javaOuterClassname = ""; + object.optimizeFor = options.enums === String ? "SPEED" : 1; + object.javaMultipleFiles = false; + object.goPackage = ""; + object.ccGenericServices = false; + object.javaGenericServices = false; + object.pyGenericServices = false; + object.javaGenerateEqualsAndHash = false; + object.deprecated = false; + object.javaStringCheckUtf8 = false; + object.ccEnableArenas = false; + object.objcClassPrefix = ""; + object.csharpNamespace = ""; + object.swiftPrefix = ""; + object.phpClassPrefix = ""; + object.phpNamespace = ""; + object.phpGenericServices = false; + object.phpMetadataNamespace = ""; + object.rubyPackage = ""; + } + if (message.javaPackage != null && message.hasOwnProperty("javaPackage")) + object.javaPackage = message.javaPackage; + if (message.javaOuterClassname != null && message.hasOwnProperty("javaOuterClassname")) + object.javaOuterClassname = message.javaOuterClassname; + if (message.optimizeFor != null && message.hasOwnProperty("optimizeFor")) + object.optimizeFor = options.enums === String ? $root.google.protobuf.FileOptions.OptimizeMode[message.optimizeFor] : message.optimizeFor; + if (message.javaMultipleFiles != null && message.hasOwnProperty("javaMultipleFiles")) + object.javaMultipleFiles = message.javaMultipleFiles; + if (message.goPackage != null && message.hasOwnProperty("goPackage")) + object.goPackage = message.goPackage; + if (message.ccGenericServices != null && message.hasOwnProperty("ccGenericServices")) + object.ccGenericServices = message.ccGenericServices; + if (message.javaGenericServices != null && message.hasOwnProperty("javaGenericServices")) + object.javaGenericServices = message.javaGenericServices; + if (message.pyGenericServices != null && message.hasOwnProperty("pyGenericServices")) + object.pyGenericServices = message.pyGenericServices; + if (message.javaGenerateEqualsAndHash != null && message.hasOwnProperty("javaGenerateEqualsAndHash")) + object.javaGenerateEqualsAndHash = message.javaGenerateEqualsAndHash; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.javaStringCheckUtf8 != null && message.hasOwnProperty("javaStringCheckUtf8")) + object.javaStringCheckUtf8 = message.javaStringCheckUtf8; + if (message.ccEnableArenas != null && message.hasOwnProperty("ccEnableArenas")) + object.ccEnableArenas = message.ccEnableArenas; + if (message.objcClassPrefix != null && message.hasOwnProperty("objcClassPrefix")) + object.objcClassPrefix = message.objcClassPrefix; + if (message.csharpNamespace != null && message.hasOwnProperty("csharpNamespace")) + object.csharpNamespace = message.csharpNamespace; + if (message.swiftPrefix != null && message.hasOwnProperty("swiftPrefix")) + object.swiftPrefix = message.swiftPrefix; + if (message.phpClassPrefix != null && message.hasOwnProperty("phpClassPrefix")) + object.phpClassPrefix = message.phpClassPrefix; + if (message.phpNamespace != null && message.hasOwnProperty("phpNamespace")) + object.phpNamespace = message.phpNamespace; + if (message.phpGenericServices != null && message.hasOwnProperty("phpGenericServices")) + object.phpGenericServices = message.phpGenericServices; + if (message.phpMetadataNamespace != null && message.hasOwnProperty("phpMetadataNamespace")) + object.phpMetadataNamespace = message.phpMetadataNamespace; + if (message.rubyPackage != null && message.hasOwnProperty("rubyPackage")) + object.rubyPackage = message.rubyPackage; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + if (message[".google.api.resourceDefinition"] && message[".google.api.resourceDefinition"].length) { + object[".google.api.resourceDefinition"] = []; + for (var j = 0; j < message[".google.api.resourceDefinition"].length; ++j) + object[".google.api.resourceDefinition"][j] = $root.google.api.ResourceDescriptor.toObject(message[".google.api.resourceDefinition"][j], options); + } + return object; + }; + + /** + * Converts this FileOptions to JSON. + * @function toJSON + * @memberof google.protobuf.FileOptions + * @instance + * @returns {Object.} JSON object + */ + FileOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * OptimizeMode enum. + * @name google.protobuf.FileOptions.OptimizeMode + * @enum {string} + * @property {number} SPEED=1 SPEED value + * @property {number} CODE_SIZE=2 CODE_SIZE value + * @property {number} LITE_RUNTIME=3 LITE_RUNTIME value + */ + FileOptions.OptimizeMode = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[1] = "SPEED"] = 1; + values[valuesById[2] = "CODE_SIZE"] = 2; + values[valuesById[3] = "LITE_RUNTIME"] = 3; + return values; + })(); + + return FileOptions; + })(); + + protobuf.MessageOptions = (function() { + + /** + * Properties of a MessageOptions. + * @memberof google.protobuf + * @interface IMessageOptions + * @property {boolean|null} [messageSetWireFormat] MessageOptions messageSetWireFormat + * @property {boolean|null} [noStandardDescriptorAccessor] MessageOptions noStandardDescriptorAccessor + * @property {boolean|null} [deprecated] MessageOptions deprecated + * @property {boolean|null} [mapEntry] MessageOptions mapEntry + * @property {Array.|null} [uninterpretedOption] MessageOptions uninterpretedOption + * @property {google.api.IResourceDescriptor|null} [".google.api.resource"] MessageOptions .google.api.resource + */ + + /** + * Constructs a new MessageOptions. + * @memberof google.protobuf + * @classdesc Represents a MessageOptions. + * @implements IMessageOptions + * @constructor + * @param {google.protobuf.IMessageOptions=} [properties] Properties to set + */ + function MessageOptions(properties) { + this.uninterpretedOption = []; + 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]]; + } + + /** + * MessageOptions messageSetWireFormat. + * @member {boolean} messageSetWireFormat + * @memberof google.protobuf.MessageOptions + * @instance + */ + MessageOptions.prototype.messageSetWireFormat = false; + + /** + * MessageOptions noStandardDescriptorAccessor. + * @member {boolean} noStandardDescriptorAccessor + * @memberof google.protobuf.MessageOptions + * @instance + */ + MessageOptions.prototype.noStandardDescriptorAccessor = false; + + /** + * MessageOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.MessageOptions + * @instance + */ + MessageOptions.prototype.deprecated = false; + + /** + * MessageOptions mapEntry. + * @member {boolean} mapEntry + * @memberof google.protobuf.MessageOptions + * @instance + */ + MessageOptions.prototype.mapEntry = false; + + /** + * MessageOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.MessageOptions + * @instance + */ + MessageOptions.prototype.uninterpretedOption = $util.emptyArray; + + /** + * MessageOptions .google.api.resource. + * @member {google.api.IResourceDescriptor|null|undefined} .google.api.resource + * @memberof google.protobuf.MessageOptions + * @instance + */ + MessageOptions.prototype[".google.api.resource"] = null; + + /** + * Creates a new MessageOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.MessageOptions + * @static + * @param {google.protobuf.IMessageOptions=} [properties] Properties to set + * @returns {google.protobuf.MessageOptions} MessageOptions instance + */ + MessageOptions.create = function create(properties) { + return new MessageOptions(properties); + }; + + /** + * Encodes the specified MessageOptions message. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.MessageOptions + * @static + * @param {google.protobuf.IMessageOptions} message MessageOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.messageSetWireFormat != null && message.hasOwnProperty("messageSetWireFormat")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.messageSetWireFormat); + if (message.noStandardDescriptorAccessor != null && message.hasOwnProperty("noStandardDescriptorAccessor")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.noStandardDescriptorAccessor); + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated); + if (message.mapEntry != null && message.hasOwnProperty("mapEntry")) + writer.uint32(/* id 7, wireType 0 =*/56).bool(message.mapEntry); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + if (message[".google.api.resource"] != null && message.hasOwnProperty(".google.api.resource")) + $root.google.api.ResourceDescriptor.encode(message[".google.api.resource"], writer.uint32(/* id 1053, wireType 2 =*/8426).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified MessageOptions message, length delimited. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.MessageOptions + * @static + * @param {google.protobuf.IMessageOptions} message MessageOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MessageOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.MessageOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.MessageOptions} MessageOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MessageOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.messageSetWireFormat = reader.bool(); + break; + case 2: + message.noStandardDescriptorAccessor = reader.bool(); + break; + case 3: + message.deprecated = reader.bool(); + break; + case 7: + message.mapEntry = reader.bool(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + case 1053: + message[".google.api.resource"] = $root.google.api.ResourceDescriptor.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MessageOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.MessageOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.MessageOptions} MessageOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MessageOptions message. + * @function verify + * @memberof google.protobuf.MessageOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MessageOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.messageSetWireFormat != null && message.hasOwnProperty("messageSetWireFormat")) + if (typeof message.messageSetWireFormat !== "boolean") + return "messageSetWireFormat: boolean expected"; + if (message.noStandardDescriptorAccessor != null && message.hasOwnProperty("noStandardDescriptorAccessor")) + if (typeof message.noStandardDescriptorAccessor !== "boolean") + return "noStandardDescriptorAccessor: boolean expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.mapEntry != null && message.hasOwnProperty("mapEntry")) + if (typeof message.mapEntry !== "boolean") + return "mapEntry: boolean expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + if (message[".google.api.resource"] != null && message.hasOwnProperty(".google.api.resource")) { + var error = $root.google.api.ResourceDescriptor.verify(message[".google.api.resource"]); + if (error) + return ".google.api.resource." + error; + } + return null; + }; + + /** + * Creates a MessageOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.MessageOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.MessageOptions} MessageOptions + */ + MessageOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.MessageOptions) + return object; + var message = new $root.google.protobuf.MessageOptions(); + if (object.messageSetWireFormat != null) + message.messageSetWireFormat = Boolean(object.messageSetWireFormat); + if (object.noStandardDescriptorAccessor != null) + message.noStandardDescriptorAccessor = Boolean(object.noStandardDescriptorAccessor); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + if (object.mapEntry != null) + message.mapEntry = Boolean(object.mapEntry); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + if (object[".google.api.resource"] != null) { + if (typeof object[".google.api.resource"] !== "object") + throw TypeError(".google.protobuf.MessageOptions..google.api.resource: object expected"); + message[".google.api.resource"] = $root.google.api.ResourceDescriptor.fromObject(object[".google.api.resource"]); + } + return message; + }; + + /** + * Creates a plain object from a MessageOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.MessageOptions + * @static + * @param {google.protobuf.MessageOptions} message MessageOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MessageOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uninterpretedOption = []; + if (options.defaults) { + object.messageSetWireFormat = false; + object.noStandardDescriptorAccessor = false; + object.deprecated = false; + object.mapEntry = false; + object[".google.api.resource"] = null; + } + if (message.messageSetWireFormat != null && message.hasOwnProperty("messageSetWireFormat")) + object.messageSetWireFormat = message.messageSetWireFormat; + if (message.noStandardDescriptorAccessor != null && message.hasOwnProperty("noStandardDescriptorAccessor")) + object.noStandardDescriptorAccessor = message.noStandardDescriptorAccessor; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.mapEntry != null && message.hasOwnProperty("mapEntry")) + object.mapEntry = message.mapEntry; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + if (message[".google.api.resource"] != null && message.hasOwnProperty(".google.api.resource")) + object[".google.api.resource"] = $root.google.api.ResourceDescriptor.toObject(message[".google.api.resource"], options); + return object; + }; + + /** + * Converts this MessageOptions to JSON. + * @function toJSON + * @memberof google.protobuf.MessageOptions + * @instance + * @returns {Object.} JSON object + */ + MessageOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return MessageOptions; + })(); + + protobuf.FieldOptions = (function() { + + /** + * Properties of a FieldOptions. + * @memberof google.protobuf + * @interface IFieldOptions + * @property {google.protobuf.FieldOptions.CType|null} [ctype] FieldOptions ctype + * @property {boolean|null} [packed] FieldOptions packed + * @property {google.protobuf.FieldOptions.JSType|null} [jstype] FieldOptions jstype + * @property {boolean|null} [lazy] FieldOptions lazy + * @property {boolean|null} [deprecated] FieldOptions deprecated + * @property {boolean|null} [weak] FieldOptions weak + * @property {Array.|null} [uninterpretedOption] FieldOptions uninterpretedOption + * @property {google.api.IResourceReference|null} [".google.api.resourceReference"] FieldOptions .google.api.resourceReference + * @property {Array.|null} [".google.api.fieldBehavior"] FieldOptions .google.api.fieldBehavior + */ + + /** + * Constructs a new FieldOptions. + * @memberof google.protobuf + * @classdesc Represents a FieldOptions. + * @implements IFieldOptions + * @constructor + * @param {google.protobuf.IFieldOptions=} [properties] Properties to set + */ + function FieldOptions(properties) { + this.uninterpretedOption = []; + this[".google.api.fieldBehavior"] = []; + 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]]; + } + + /** + * FieldOptions ctype. + * @member {google.protobuf.FieldOptions.CType} ctype + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.ctype = 0; + + /** + * FieldOptions packed. + * @member {boolean} packed + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.packed = false; + + /** + * FieldOptions jstype. + * @member {google.protobuf.FieldOptions.JSType} jstype + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.jstype = 0; + + /** + * FieldOptions lazy. + * @member {boolean} lazy + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.lazy = false; + + /** + * FieldOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.deprecated = false; + + /** + * FieldOptions weak. + * @member {boolean} weak + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.weak = false; + + /** + * FieldOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.uninterpretedOption = $util.emptyArray; + + /** + * FieldOptions .google.api.resourceReference. + * @member {google.api.IResourceReference|null|undefined} .google.api.resourceReference + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype[".google.api.resourceReference"] = null; + + /** + * FieldOptions .google.api.fieldBehavior. + * @member {Array.} .google.api.fieldBehavior + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype[".google.api.fieldBehavior"] = $util.emptyArray; + + /** + * Creates a new FieldOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.FieldOptions + * @static + * @param {google.protobuf.IFieldOptions=} [properties] Properties to set + * @returns {google.protobuf.FieldOptions} FieldOptions instance + */ + FieldOptions.create = function create(properties) { + return new FieldOptions(properties); + }; + + /** + * Encodes the specified FieldOptions message. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.FieldOptions + * @static + * @param {google.protobuf.IFieldOptions} message FieldOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FieldOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.ctype != null && message.hasOwnProperty("ctype")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.ctype); + if (message.packed != null && message.hasOwnProperty("packed")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.packed); + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated); + if (message.lazy != null && message.hasOwnProperty("lazy")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.lazy); + if (message.jstype != null && message.hasOwnProperty("jstype")) + writer.uint32(/* id 6, wireType 0 =*/48).int32(message.jstype); + if (message.weak != null && message.hasOwnProperty("weak")) + writer.uint32(/* id 10, wireType 0 =*/80).bool(message.weak); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + if (message[".google.api.fieldBehavior"] != null && message[".google.api.fieldBehavior"].length) { + writer.uint32(/* id 1052, wireType 2 =*/8418).fork(); + for (var i = 0; i < message[".google.api.fieldBehavior"].length; ++i) + writer.int32(message[".google.api.fieldBehavior"][i]); + writer.ldelim(); + } + if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) + $root.google.api.ResourceReference.encode(message[".google.api.resourceReference"], writer.uint32(/* id 1055, wireType 2 =*/8442).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FieldOptions message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.FieldOptions + * @static + * @param {google.protobuf.IFieldOptions} message FieldOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FieldOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FieldOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.FieldOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.FieldOptions} FieldOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FieldOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.ctype = reader.int32(); + break; + case 2: + message.packed = reader.bool(); + break; + case 6: + message.jstype = reader.int32(); + break; + case 5: + message.lazy = reader.bool(); + break; + case 3: + message.deprecated = reader.bool(); + break; + case 10: + message.weak = reader.bool(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + case 1055: + message[".google.api.resourceReference"] = $root.google.api.ResourceReference.decode(reader, reader.uint32()); + break; + case 1052: + if (!(message[".google.api.fieldBehavior"] && message[".google.api.fieldBehavior"].length)) + message[".google.api.fieldBehavior"] = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message[".google.api.fieldBehavior"].push(reader.int32()); + } else + message[".google.api.fieldBehavior"].push(reader.int32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FieldOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.FieldOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.FieldOptions} FieldOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FieldOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FieldOptions message. + * @function verify + * @memberof google.protobuf.FieldOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FieldOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.ctype != null && message.hasOwnProperty("ctype")) + switch (message.ctype) { + default: + return "ctype: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.packed != null && message.hasOwnProperty("packed")) + if (typeof message.packed !== "boolean") + return "packed: boolean expected"; + if (message.jstype != null && message.hasOwnProperty("jstype")) + switch (message.jstype) { + default: + return "jstype: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.lazy != null && message.hasOwnProperty("lazy")) + if (typeof message.lazy !== "boolean") + return "lazy: boolean expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.weak != null && message.hasOwnProperty("weak")) + if (typeof message.weak !== "boolean") + return "weak: boolean expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) { + var error = $root.google.api.ResourceReference.verify(message[".google.api.resourceReference"]); + if (error) + return ".google.api.resourceReference." + error; + } + if (message[".google.api.fieldBehavior"] != null && message.hasOwnProperty(".google.api.fieldBehavior")) { + if (!Array.isArray(message[".google.api.fieldBehavior"])) + return ".google.api.fieldBehavior: array expected"; + for (var i = 0; i < message[".google.api.fieldBehavior"].length; ++i) + switch (message[".google.api.fieldBehavior"][i]) { + default: + return ".google.api.fieldBehavior: enum value[] expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + break; + } + } + return null; + }; + + /** + * Creates a FieldOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.FieldOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.FieldOptions} FieldOptions + */ + FieldOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.FieldOptions) + return object; + var message = new $root.google.protobuf.FieldOptions(); + switch (object.ctype) { + case "STRING": + case 0: + message.ctype = 0; + break; + case "CORD": + case 1: + message.ctype = 1; + break; + case "STRING_PIECE": + case 2: + message.ctype = 2; + break; + } + if (object.packed != null) + message.packed = Boolean(object.packed); + switch (object.jstype) { + case "JS_NORMAL": + case 0: + message.jstype = 0; + break; + case "JS_STRING": + case 1: + message.jstype = 1; + break; + case "JS_NUMBER": + case 2: + message.jstype = 2; + break; + } + if (object.lazy != null) + message.lazy = Boolean(object.lazy); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + if (object.weak != null) + message.weak = Boolean(object.weak); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.FieldOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.FieldOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + if (object[".google.api.resourceReference"] != null) { + if (typeof object[".google.api.resourceReference"] !== "object") + throw TypeError(".google.protobuf.FieldOptions..google.api.resourceReference: object expected"); + message[".google.api.resourceReference"] = $root.google.api.ResourceReference.fromObject(object[".google.api.resourceReference"]); + } + if (object[".google.api.fieldBehavior"]) { + if (!Array.isArray(object[".google.api.fieldBehavior"])) + throw TypeError(".google.protobuf.FieldOptions..google.api.fieldBehavior: array expected"); + message[".google.api.fieldBehavior"] = []; + for (var i = 0; i < object[".google.api.fieldBehavior"].length; ++i) + switch (object[".google.api.fieldBehavior"][i]) { + default: + case "FIELD_BEHAVIOR_UNSPECIFIED": + case 0: + message[".google.api.fieldBehavior"][i] = 0; + break; + case "OPTIONAL": + case 1: + message[".google.api.fieldBehavior"][i] = 1; + break; + case "REQUIRED": + case 2: + message[".google.api.fieldBehavior"][i] = 2; + break; + case "OUTPUT_ONLY": + case 3: + message[".google.api.fieldBehavior"][i] = 3; + break; + case "INPUT_ONLY": + case 4: + message[".google.api.fieldBehavior"][i] = 4; + break; + case "IMMUTABLE": + case 5: + message[".google.api.fieldBehavior"][i] = 5; + break; + } + } + return message; + }; + + /** + * Creates a plain object from a FieldOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FieldOptions + * @static + * @param {google.protobuf.FieldOptions} message FieldOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FieldOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.uninterpretedOption = []; + object[".google.api.fieldBehavior"] = []; + } + if (options.defaults) { + object.ctype = options.enums === String ? "STRING" : 0; + object.packed = false; + object.deprecated = false; + object.lazy = false; + object.jstype = options.enums === String ? "JS_NORMAL" : 0; + object.weak = false; + object[".google.api.resourceReference"] = null; + } + if (message.ctype != null && message.hasOwnProperty("ctype")) + object.ctype = options.enums === String ? $root.google.protobuf.FieldOptions.CType[message.ctype] : message.ctype; + if (message.packed != null && message.hasOwnProperty("packed")) + object.packed = message.packed; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.lazy != null && message.hasOwnProperty("lazy")) + object.lazy = message.lazy; + if (message.jstype != null && message.hasOwnProperty("jstype")) + object.jstype = options.enums === String ? $root.google.protobuf.FieldOptions.JSType[message.jstype] : message.jstype; + if (message.weak != null && message.hasOwnProperty("weak")) + object.weak = message.weak; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + if (message[".google.api.fieldBehavior"] && message[".google.api.fieldBehavior"].length) { + object[".google.api.fieldBehavior"] = []; + for (var j = 0; j < message[".google.api.fieldBehavior"].length; ++j) + object[".google.api.fieldBehavior"][j] = options.enums === String ? $root.google.api.FieldBehavior[message[".google.api.fieldBehavior"][j]] : message[".google.api.fieldBehavior"][j]; + } + if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) + object[".google.api.resourceReference"] = $root.google.api.ResourceReference.toObject(message[".google.api.resourceReference"], options); + return object; + }; + + /** + * Converts this FieldOptions to JSON. + * @function toJSON + * @memberof google.protobuf.FieldOptions + * @instance + * @returns {Object.} JSON object + */ + FieldOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * CType enum. + * @name google.protobuf.FieldOptions.CType + * @enum {string} + * @property {number} STRING=0 STRING value + * @property {number} CORD=1 CORD value + * @property {number} STRING_PIECE=2 STRING_PIECE value + */ + FieldOptions.CType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STRING"] = 0; + values[valuesById[1] = "CORD"] = 1; + values[valuesById[2] = "STRING_PIECE"] = 2; + return values; + })(); + + /** + * JSType enum. + * @name google.protobuf.FieldOptions.JSType + * @enum {string} + * @property {number} JS_NORMAL=0 JS_NORMAL value + * @property {number} JS_STRING=1 JS_STRING value + * @property {number} JS_NUMBER=2 JS_NUMBER value + */ + FieldOptions.JSType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "JS_NORMAL"] = 0; + values[valuesById[1] = "JS_STRING"] = 1; + values[valuesById[2] = "JS_NUMBER"] = 2; + return values; + })(); + + return FieldOptions; + })(); + + protobuf.OneofOptions = (function() { + + /** + * Properties of an OneofOptions. + * @memberof google.protobuf + * @interface IOneofOptions + * @property {Array.|null} [uninterpretedOption] OneofOptions uninterpretedOption + */ + + /** + * Constructs a new OneofOptions. + * @memberof google.protobuf + * @classdesc Represents an OneofOptions. + * @implements IOneofOptions + * @constructor + * @param {google.protobuf.IOneofOptions=} [properties] Properties to set + */ + function OneofOptions(properties) { + this.uninterpretedOption = []; + 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]]; + } + + /** + * OneofOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.OneofOptions + * @instance + */ + OneofOptions.prototype.uninterpretedOption = $util.emptyArray; + + /** + * Creates a new OneofOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.OneofOptions + * @static + * @param {google.protobuf.IOneofOptions=} [properties] Properties to set + * @returns {google.protobuf.OneofOptions} OneofOptions instance + */ + OneofOptions.create = function create(properties) { + return new OneofOptions(properties); + }; + + /** + * Encodes the specified OneofOptions message. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.OneofOptions + * @static + * @param {google.protobuf.IOneofOptions} message OneofOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OneofOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified OneofOptions message, length delimited. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.OneofOptions + * @static + * @param {google.protobuf.IOneofOptions} message OneofOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OneofOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an OneofOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.OneofOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.OneofOptions} OneofOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OneofOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.OneofOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an OneofOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.OneofOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.OneofOptions} OneofOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OneofOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an OneofOptions message. + * @function verify + * @memberof google.protobuf.OneofOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + OneofOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + return null; + }; + + /** + * Creates an OneofOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.OneofOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.OneofOptions} OneofOptions + */ + OneofOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.OneofOptions) + return object; + var message = new $root.google.protobuf.OneofOptions(); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + return message; + }; + + /** + * Creates a plain object from an OneofOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.OneofOptions + * @static + * @param {google.protobuf.OneofOptions} message OneofOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + OneofOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uninterpretedOption = []; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + return object; + }; + + /** + * Converts this OneofOptions to JSON. + * @function toJSON + * @memberof google.protobuf.OneofOptions + * @instance + * @returns {Object.} JSON object + */ + OneofOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return OneofOptions; + })(); + + protobuf.EnumOptions = (function() { + + /** + * Properties of an EnumOptions. + * @memberof google.protobuf + * @interface IEnumOptions + * @property {boolean|null} [allowAlias] EnumOptions allowAlias + * @property {boolean|null} [deprecated] EnumOptions deprecated + * @property {Array.|null} [uninterpretedOption] EnumOptions uninterpretedOption + */ + + /** + * Constructs a new EnumOptions. + * @memberof google.protobuf + * @classdesc Represents an EnumOptions. + * @implements IEnumOptions + * @constructor + * @param {google.protobuf.IEnumOptions=} [properties] Properties to set + */ + function EnumOptions(properties) { + this.uninterpretedOption = []; + 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]]; + } + + /** + * EnumOptions allowAlias. + * @member {boolean} allowAlias + * @memberof google.protobuf.EnumOptions + * @instance + */ + EnumOptions.prototype.allowAlias = false; + + /** + * EnumOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.EnumOptions + * @instance + */ + EnumOptions.prototype.deprecated = false; + + /** + * EnumOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.EnumOptions + * @instance + */ + EnumOptions.prototype.uninterpretedOption = $util.emptyArray; + + /** + * Creates a new EnumOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.EnumOptions + * @static + * @param {google.protobuf.IEnumOptions=} [properties] Properties to set + * @returns {google.protobuf.EnumOptions} EnumOptions instance + */ + EnumOptions.create = function create(properties) { + return new EnumOptions(properties); + }; + + /** + * Encodes the specified EnumOptions message. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.EnumOptions + * @static + * @param {google.protobuf.IEnumOptions} message EnumOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.allowAlias != null && message.hasOwnProperty("allowAlias")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.allowAlias); + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified EnumOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.EnumOptions + * @static + * @param {google.protobuf.IEnumOptions} message EnumOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EnumOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.EnumOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.EnumOptions} EnumOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + message.allowAlias = reader.bool(); + break; + case 3: + message.deprecated = reader.bool(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EnumOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.EnumOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.EnumOptions} EnumOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EnumOptions message. + * @function verify + * @memberof google.protobuf.EnumOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EnumOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.allowAlias != null && message.hasOwnProperty("allowAlias")) + if (typeof message.allowAlias !== "boolean") + return "allowAlias: boolean expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + return null; + }; + + /** + * Creates an EnumOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.EnumOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.EnumOptions} EnumOptions + */ + EnumOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.EnumOptions) + return object; + var message = new $root.google.protobuf.EnumOptions(); + if (object.allowAlias != null) + message.allowAlias = Boolean(object.allowAlias); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + return message; + }; + + /** + * Creates a plain object from an EnumOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.EnumOptions + * @static + * @param {google.protobuf.EnumOptions} message EnumOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EnumOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uninterpretedOption = []; + if (options.defaults) { + object.allowAlias = false; + object.deprecated = false; + } + if (message.allowAlias != null && message.hasOwnProperty("allowAlias")) + object.allowAlias = message.allowAlias; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + return object; + }; + + /** + * Converts this EnumOptions to JSON. + * @function toJSON + * @memberof google.protobuf.EnumOptions + * @instance + * @returns {Object.} JSON object + */ + EnumOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return EnumOptions; + })(); + + protobuf.EnumValueOptions = (function() { + + /** + * Properties of an EnumValueOptions. + * @memberof google.protobuf + * @interface IEnumValueOptions + * @property {boolean|null} [deprecated] EnumValueOptions deprecated + * @property {Array.|null} [uninterpretedOption] EnumValueOptions uninterpretedOption + */ + + /** + * Constructs a new EnumValueOptions. + * @memberof google.protobuf + * @classdesc Represents an EnumValueOptions. + * @implements IEnumValueOptions + * @constructor + * @param {google.protobuf.IEnumValueOptions=} [properties] Properties to set + */ + function EnumValueOptions(properties) { + this.uninterpretedOption = []; + 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]]; + } + + /** + * EnumValueOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.EnumValueOptions + * @instance + */ + EnumValueOptions.prototype.deprecated = false; + + /** + * EnumValueOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.EnumValueOptions + * @instance + */ + EnumValueOptions.prototype.uninterpretedOption = $util.emptyArray; + + /** + * Creates a new EnumValueOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {google.protobuf.IEnumValueOptions=} [properties] Properties to set + * @returns {google.protobuf.EnumValueOptions} EnumValueOptions instance + */ + EnumValueOptions.create = function create(properties) { + return new EnumValueOptions(properties); + }; + + /** + * Encodes the specified EnumValueOptions message. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {google.protobuf.IEnumValueOptions} message EnumValueOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumValueOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.deprecated); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified EnumValueOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {google.protobuf.IEnumValueOptions} message EnumValueOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumValueOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EnumValueOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.EnumValueOptions} EnumValueOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumValueOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumValueOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.deprecated = reader.bool(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EnumValueOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.EnumValueOptions} EnumValueOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumValueOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EnumValueOptions message. + * @function verify + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EnumValueOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + return null; + }; + + /** + * Creates an EnumValueOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.EnumValueOptions} EnumValueOptions + */ + EnumValueOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.EnumValueOptions) + return object; + var message = new $root.google.protobuf.EnumValueOptions(); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + return message; + }; + + /** + * Creates a plain object from an EnumValueOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {google.protobuf.EnumValueOptions} message EnumValueOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EnumValueOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uninterpretedOption = []; + if (options.defaults) + object.deprecated = false; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + return object; + }; + + /** + * Converts this EnumValueOptions to JSON. + * @function toJSON + * @memberof google.protobuf.EnumValueOptions + * @instance + * @returns {Object.} JSON object + */ + EnumValueOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return EnumValueOptions; + })(); + + protobuf.ServiceOptions = (function() { + + /** + * Properties of a ServiceOptions. + * @memberof google.protobuf + * @interface IServiceOptions + * @property {boolean|null} [deprecated] ServiceOptions deprecated + * @property {Array.|null} [uninterpretedOption] ServiceOptions uninterpretedOption + * @property {string|null} [".google.api.defaultHost"] ServiceOptions .google.api.defaultHost + * @property {string|null} [".google.api.oauthScopes"] ServiceOptions .google.api.oauthScopes + */ + + /** + * Constructs a new ServiceOptions. + * @memberof google.protobuf + * @classdesc Represents a ServiceOptions. + * @implements IServiceOptions + * @constructor + * @param {google.protobuf.IServiceOptions=} [properties] Properties to set + */ + function ServiceOptions(properties) { + this.uninterpretedOption = []; + 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]]; + } + + /** + * ServiceOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.ServiceOptions + * @instance + */ + ServiceOptions.prototype.deprecated = false; + + /** + * ServiceOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.ServiceOptions + * @instance + */ + ServiceOptions.prototype.uninterpretedOption = $util.emptyArray; + + /** + * ServiceOptions .google.api.defaultHost. + * @member {string} .google.api.defaultHost + * @memberof google.protobuf.ServiceOptions + * @instance + */ + ServiceOptions.prototype[".google.api.defaultHost"] = ""; + + /** + * ServiceOptions .google.api.oauthScopes. + * @member {string} .google.api.oauthScopes + * @memberof google.protobuf.ServiceOptions + * @instance + */ + ServiceOptions.prototype[".google.api.oauthScopes"] = ""; + + /** + * Creates a new ServiceOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.ServiceOptions + * @static + * @param {google.protobuf.IServiceOptions=} [properties] Properties to set + * @returns {google.protobuf.ServiceOptions} ServiceOptions instance + */ + ServiceOptions.create = function create(properties) { + return new ServiceOptions(properties); + }; + + /** + * Encodes the specified ServiceOptions message. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.ServiceOptions + * @static + * @param {google.protobuf.IServiceOptions} message ServiceOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ServiceOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + writer.uint32(/* id 33, wireType 0 =*/264).bool(message.deprecated); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + if (message[".google.api.defaultHost"] != null && message.hasOwnProperty(".google.api.defaultHost")) + writer.uint32(/* id 1049, wireType 2 =*/8394).string(message[".google.api.defaultHost"]); + if (message[".google.api.oauthScopes"] != null && message.hasOwnProperty(".google.api.oauthScopes")) + writer.uint32(/* id 1050, wireType 2 =*/8402).string(message[".google.api.oauthScopes"]); + return writer; + }; + + /** + * Encodes the specified ServiceOptions message, length delimited. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.ServiceOptions + * @static + * @param {google.protobuf.IServiceOptions} message ServiceOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ServiceOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ServiceOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.ServiceOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.ServiceOptions} ServiceOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ServiceOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ServiceOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 33: + message.deprecated = reader.bool(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + case 1049: + message[".google.api.defaultHost"] = reader.string(); + break; + case 1050: + message[".google.api.oauthScopes"] = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ServiceOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.ServiceOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.ServiceOptions} ServiceOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ServiceOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ServiceOptions message. + * @function verify + * @memberof google.protobuf.ServiceOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ServiceOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + if (message[".google.api.defaultHost"] != null && message.hasOwnProperty(".google.api.defaultHost")) + if (!$util.isString(message[".google.api.defaultHost"])) + return ".google.api.defaultHost: string expected"; + if (message[".google.api.oauthScopes"] != null && message.hasOwnProperty(".google.api.oauthScopes")) + if (!$util.isString(message[".google.api.oauthScopes"])) + return ".google.api.oauthScopes: string expected"; + return null; + }; + + /** + * Creates a ServiceOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.ServiceOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.ServiceOptions} ServiceOptions + */ + ServiceOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.ServiceOptions) + return object; + var message = new $root.google.protobuf.ServiceOptions(); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + if (object[".google.api.defaultHost"] != null) + message[".google.api.defaultHost"] = String(object[".google.api.defaultHost"]); + if (object[".google.api.oauthScopes"] != null) + message[".google.api.oauthScopes"] = String(object[".google.api.oauthScopes"]); + return message; + }; + + /** + * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.ServiceOptions + * @static + * @param {google.protobuf.ServiceOptions} message ServiceOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ServiceOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uninterpretedOption = []; + if (options.defaults) { + object.deprecated = false; + object[".google.api.defaultHost"] = ""; + object[".google.api.oauthScopes"] = ""; + } + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + if (message[".google.api.defaultHost"] != null && message.hasOwnProperty(".google.api.defaultHost")) + object[".google.api.defaultHost"] = message[".google.api.defaultHost"]; + if (message[".google.api.oauthScopes"] != null && message.hasOwnProperty(".google.api.oauthScopes")) + object[".google.api.oauthScopes"] = message[".google.api.oauthScopes"]; + return object; + }; + + /** + * Converts this ServiceOptions to JSON. + * @function toJSON + * @memberof google.protobuf.ServiceOptions + * @instance + * @returns {Object.} JSON object + */ + ServiceOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ServiceOptions; + })(); + + protobuf.MethodOptions = (function() { + + /** + * Properties of a MethodOptions. + * @memberof google.protobuf + * @interface IMethodOptions + * @property {boolean|null} [deprecated] MethodOptions deprecated + * @property {google.protobuf.MethodOptions.IdempotencyLevel|null} [idempotencyLevel] MethodOptions idempotencyLevel + * @property {Array.|null} [uninterpretedOption] MethodOptions uninterpretedOption + * @property {google.api.IHttpRule|null} [".google.api.http"] MethodOptions .google.api.http + * @property {Array.|null} [".google.api.methodSignature"] MethodOptions .google.api.methodSignature + */ + + /** + * Constructs a new MethodOptions. + * @memberof google.protobuf + * @classdesc Represents a MethodOptions. + * @implements IMethodOptions + * @constructor + * @param {google.protobuf.IMethodOptions=} [properties] Properties to set + */ + function MethodOptions(properties) { + this.uninterpretedOption = []; + this[".google.api.methodSignature"] = []; + 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]]; + } + + /** + * MethodOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.MethodOptions + * @instance + */ + MethodOptions.prototype.deprecated = false; + + /** + * MethodOptions idempotencyLevel. + * @member {google.protobuf.MethodOptions.IdempotencyLevel} idempotencyLevel + * @memberof google.protobuf.MethodOptions + * @instance + */ + MethodOptions.prototype.idempotencyLevel = 0; + + /** + * MethodOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.MethodOptions + * @instance + */ + MethodOptions.prototype.uninterpretedOption = $util.emptyArray; + + /** + * MethodOptions .google.api.http. + * @member {google.api.IHttpRule|null|undefined} .google.api.http + * @memberof google.protobuf.MethodOptions + * @instance + */ + MethodOptions.prototype[".google.api.http"] = null; + + /** + * MethodOptions .google.api.methodSignature. + * @member {Array.} .google.api.methodSignature + * @memberof google.protobuf.MethodOptions + * @instance + */ + MethodOptions.prototype[".google.api.methodSignature"] = $util.emptyArray; + + /** + * Creates a new MethodOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.MethodOptions + * @static + * @param {google.protobuf.IMethodOptions=} [properties] Properties to set + * @returns {google.protobuf.MethodOptions} MethodOptions instance + */ + MethodOptions.create = function create(properties) { + return new MethodOptions(properties); + }; + + /** + * Encodes the specified MethodOptions message. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.MethodOptions + * @static + * @param {google.protobuf.IMethodOptions} message MethodOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MethodOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + writer.uint32(/* id 33, wireType 0 =*/264).bool(message.deprecated); + if (message.idempotencyLevel != null && message.hasOwnProperty("idempotencyLevel")) + writer.uint32(/* id 34, wireType 0 =*/272).int32(message.idempotencyLevel); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + if (message[".google.api.methodSignature"] != null && message[".google.api.methodSignature"].length) + for (var i = 0; i < message[".google.api.methodSignature"].length; ++i) + writer.uint32(/* id 1051, wireType 2 =*/8410).string(message[".google.api.methodSignature"][i]); + if (message[".google.api.http"] != null && message.hasOwnProperty(".google.api.http")) + $root.google.api.HttpRule.encode(message[".google.api.http"], writer.uint32(/* id 72295728, wireType 2 =*/578365826).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified MethodOptions message, length delimited. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.MethodOptions + * @static + * @param {google.protobuf.IMethodOptions} message MethodOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MethodOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MethodOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.MethodOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.MethodOptions} MethodOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MethodOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MethodOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 33: + message.deprecated = reader.bool(); + break; + case 34: + message.idempotencyLevel = reader.int32(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + case 72295728: + message[".google.api.http"] = $root.google.api.HttpRule.decode(reader, reader.uint32()); + break; + case 1051: + if (!(message[".google.api.methodSignature"] && message[".google.api.methodSignature"].length)) + message[".google.api.methodSignature"] = []; + message[".google.api.methodSignature"].push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MethodOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.MethodOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.MethodOptions} MethodOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MethodOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MethodOptions message. + * @function verify + * @memberof google.protobuf.MethodOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MethodOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.idempotencyLevel != null && message.hasOwnProperty("idempotencyLevel")) + switch (message.idempotencyLevel) { + default: + return "idempotencyLevel: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + if (message[".google.api.http"] != null && message.hasOwnProperty(".google.api.http")) { + var error = $root.google.api.HttpRule.verify(message[".google.api.http"]); + if (error) + return ".google.api.http." + error; + } + if (message[".google.api.methodSignature"] != null && message.hasOwnProperty(".google.api.methodSignature")) { + if (!Array.isArray(message[".google.api.methodSignature"])) + return ".google.api.methodSignature: array expected"; + for (var i = 0; i < message[".google.api.methodSignature"].length; ++i) + if (!$util.isString(message[".google.api.methodSignature"][i])) + return ".google.api.methodSignature: string[] expected"; + } + return null; + }; + + /** + * Creates a MethodOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.MethodOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.MethodOptions} MethodOptions + */ + MethodOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.MethodOptions) + return object; + var message = new $root.google.protobuf.MethodOptions(); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + switch (object.idempotencyLevel) { + case "IDEMPOTENCY_UNKNOWN": + case 0: + message.idempotencyLevel = 0; + break; + case "NO_SIDE_EFFECTS": + case 1: + message.idempotencyLevel = 1; + break; + case "IDEMPOTENT": + case 2: + message.idempotencyLevel = 2; + break; + } + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + if (object[".google.api.http"] != null) { + if (typeof object[".google.api.http"] !== "object") + throw TypeError(".google.protobuf.MethodOptions..google.api.http: object expected"); + message[".google.api.http"] = $root.google.api.HttpRule.fromObject(object[".google.api.http"]); + } + if (object[".google.api.methodSignature"]) { + if (!Array.isArray(object[".google.api.methodSignature"])) + throw TypeError(".google.protobuf.MethodOptions..google.api.methodSignature: array expected"); + message[".google.api.methodSignature"] = []; + for (var i = 0; i < object[".google.api.methodSignature"].length; ++i) + message[".google.api.methodSignature"][i] = String(object[".google.api.methodSignature"][i]); + } + return message; + }; + + /** + * Creates a plain object from a MethodOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.MethodOptions + * @static + * @param {google.protobuf.MethodOptions} message MethodOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MethodOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.uninterpretedOption = []; + object[".google.api.methodSignature"] = []; + } + if (options.defaults) { + object.deprecated = false; + object.idempotencyLevel = options.enums === String ? "IDEMPOTENCY_UNKNOWN" : 0; + object[".google.api.http"] = null; + } + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.idempotencyLevel != null && message.hasOwnProperty("idempotencyLevel")) + object.idempotencyLevel = options.enums === String ? $root.google.protobuf.MethodOptions.IdempotencyLevel[message.idempotencyLevel] : message.idempotencyLevel; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + if (message[".google.api.methodSignature"] && message[".google.api.methodSignature"].length) { + object[".google.api.methodSignature"] = []; + for (var j = 0; j < message[".google.api.methodSignature"].length; ++j) + object[".google.api.methodSignature"][j] = message[".google.api.methodSignature"][j]; + } + if (message[".google.api.http"] != null && message.hasOwnProperty(".google.api.http")) + object[".google.api.http"] = $root.google.api.HttpRule.toObject(message[".google.api.http"], options); + return object; + }; + + /** + * Converts this MethodOptions to JSON. + * @function toJSON + * @memberof google.protobuf.MethodOptions + * @instance + * @returns {Object.} JSON object + */ + MethodOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * IdempotencyLevel enum. + * @name google.protobuf.MethodOptions.IdempotencyLevel + * @enum {string} + * @property {number} IDEMPOTENCY_UNKNOWN=0 IDEMPOTENCY_UNKNOWN value + * @property {number} NO_SIDE_EFFECTS=1 NO_SIDE_EFFECTS value + * @property {number} IDEMPOTENT=2 IDEMPOTENT value + */ + MethodOptions.IdempotencyLevel = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "IDEMPOTENCY_UNKNOWN"] = 0; + values[valuesById[1] = "NO_SIDE_EFFECTS"] = 1; + values[valuesById[2] = "IDEMPOTENT"] = 2; + return values; + })(); + + return MethodOptions; + })(); + + protobuf.UninterpretedOption = (function() { + + /** + * Properties of an UninterpretedOption. + * @memberof google.protobuf + * @interface IUninterpretedOption + * @property {Array.|null} [name] UninterpretedOption name + * @property {string|null} [identifierValue] UninterpretedOption identifierValue + * @property {number|Long|null} [positiveIntValue] UninterpretedOption positiveIntValue + * @property {number|Long|null} [negativeIntValue] UninterpretedOption negativeIntValue + * @property {number|null} [doubleValue] UninterpretedOption doubleValue + * @property {Uint8Array|null} [stringValue] UninterpretedOption stringValue + * @property {string|null} [aggregateValue] UninterpretedOption aggregateValue + */ + + /** + * Constructs a new UninterpretedOption. + * @memberof google.protobuf + * @classdesc Represents an UninterpretedOption. + * @implements IUninterpretedOption + * @constructor + * @param {google.protobuf.IUninterpretedOption=} [properties] Properties to set + */ + function UninterpretedOption(properties) { + this.name = []; + 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]]; + } + + /** + * UninterpretedOption name. + * @member {Array.} name + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.name = $util.emptyArray; + + /** + * UninterpretedOption identifierValue. + * @member {string} identifierValue + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.identifierValue = ""; + + /** + * UninterpretedOption positiveIntValue. + * @member {number|Long} positiveIntValue + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.positiveIntValue = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * UninterpretedOption negativeIntValue. + * @member {number|Long} negativeIntValue + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.negativeIntValue = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * UninterpretedOption doubleValue. + * @member {number} doubleValue + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.doubleValue = 0; + + /** + * UninterpretedOption stringValue. + * @member {Uint8Array} stringValue + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.stringValue = $util.newBuffer([]); + + /** + * UninterpretedOption aggregateValue. + * @member {string} aggregateValue + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.aggregateValue = ""; + + /** + * Creates a new UninterpretedOption instance using the specified properties. + * @function create + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {google.protobuf.IUninterpretedOption=} [properties] Properties to set + * @returns {google.protobuf.UninterpretedOption} UninterpretedOption instance + */ + UninterpretedOption.create = function create(properties) { + return new UninterpretedOption(properties); + }; + + /** + * Encodes the specified UninterpretedOption message. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages. + * @function encode + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {google.protobuf.IUninterpretedOption} message UninterpretedOption message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UninterpretedOption.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.name.length) + for (var i = 0; i < message.name.length; ++i) + $root.google.protobuf.UninterpretedOption.NamePart.encode(message.name[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.identifierValue != null && message.hasOwnProperty("identifierValue")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.identifierValue); + if (message.positiveIntValue != null && message.hasOwnProperty("positiveIntValue")) + writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.positiveIntValue); + if (message.negativeIntValue != null && message.hasOwnProperty("negativeIntValue")) + writer.uint32(/* id 5, wireType 0 =*/40).int64(message.negativeIntValue); + if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) + writer.uint32(/* id 6, wireType 1 =*/49).double(message.doubleValue); + if (message.stringValue != null && message.hasOwnProperty("stringValue")) + writer.uint32(/* id 7, wireType 2 =*/58).bytes(message.stringValue); + if (message.aggregateValue != null && message.hasOwnProperty("aggregateValue")) + writer.uint32(/* id 8, wireType 2 =*/66).string(message.aggregateValue); + return writer; + }; + + /** + * Encodes the specified UninterpretedOption message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {google.protobuf.IUninterpretedOption} message UninterpretedOption message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UninterpretedOption.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an UninterpretedOption message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.UninterpretedOption} UninterpretedOption + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UninterpretedOption.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UninterpretedOption(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + if (!(message.name && message.name.length)) + message.name = []; + message.name.push($root.google.protobuf.UninterpretedOption.NamePart.decode(reader, reader.uint32())); + break; + case 3: + message.identifierValue = reader.string(); + break; + case 4: + message.positiveIntValue = reader.uint64(); + break; + case 5: + message.negativeIntValue = reader.int64(); + break; + case 6: + message.doubleValue = reader.double(); + break; + case 7: + message.stringValue = reader.bytes(); + break; + case 8: + message.aggregateValue = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an UninterpretedOption message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.UninterpretedOption} UninterpretedOption + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UninterpretedOption.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an UninterpretedOption message. + * @function verify + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + UninterpretedOption.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) { + if (!Array.isArray(message.name)) + return "name: array expected"; + for (var i = 0; i < message.name.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.NamePart.verify(message.name[i]); + if (error) + return "name." + error; + } + } + if (message.identifierValue != null && message.hasOwnProperty("identifierValue")) + if (!$util.isString(message.identifierValue)) + return "identifierValue: string expected"; + if (message.positiveIntValue != null && message.hasOwnProperty("positiveIntValue")) + if (!$util.isInteger(message.positiveIntValue) && !(message.positiveIntValue && $util.isInteger(message.positiveIntValue.low) && $util.isInteger(message.positiveIntValue.high))) + return "positiveIntValue: integer|Long expected"; + if (message.negativeIntValue != null && message.hasOwnProperty("negativeIntValue")) + if (!$util.isInteger(message.negativeIntValue) && !(message.negativeIntValue && $util.isInteger(message.negativeIntValue.low) && $util.isInteger(message.negativeIntValue.high))) + return "negativeIntValue: integer|Long expected"; + if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) + if (typeof message.doubleValue !== "number") + return "doubleValue: number expected"; + if (message.stringValue != null && message.hasOwnProperty("stringValue")) + if (!(message.stringValue && typeof message.stringValue.length === "number" || $util.isString(message.stringValue))) + return "stringValue: buffer expected"; + if (message.aggregateValue != null && message.hasOwnProperty("aggregateValue")) + if (!$util.isString(message.aggregateValue)) + return "aggregateValue: string expected"; + return null; + }; + + /** + * Creates an UninterpretedOption message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.UninterpretedOption} UninterpretedOption + */ + UninterpretedOption.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.UninterpretedOption) + return object; + var message = new $root.google.protobuf.UninterpretedOption(); + if (object.name) { + if (!Array.isArray(object.name)) + throw TypeError(".google.protobuf.UninterpretedOption.name: array expected"); + message.name = []; + for (var i = 0; i < object.name.length; ++i) { + if (typeof object.name[i] !== "object") + throw TypeError(".google.protobuf.UninterpretedOption.name: object expected"); + message.name[i] = $root.google.protobuf.UninterpretedOption.NamePart.fromObject(object.name[i]); + } + } + if (object.identifierValue != null) + message.identifierValue = String(object.identifierValue); + if (object.positiveIntValue != null) + if ($util.Long) + (message.positiveIntValue = $util.Long.fromValue(object.positiveIntValue)).unsigned = true; + else if (typeof object.positiveIntValue === "string") + message.positiveIntValue = parseInt(object.positiveIntValue, 10); + else if (typeof object.positiveIntValue === "number") + message.positiveIntValue = object.positiveIntValue; + else if (typeof object.positiveIntValue === "object") + message.positiveIntValue = new $util.LongBits(object.positiveIntValue.low >>> 0, object.positiveIntValue.high >>> 0).toNumber(true); + if (object.negativeIntValue != null) + if ($util.Long) + (message.negativeIntValue = $util.Long.fromValue(object.negativeIntValue)).unsigned = false; + else if (typeof object.negativeIntValue === "string") + message.negativeIntValue = parseInt(object.negativeIntValue, 10); + else if (typeof object.negativeIntValue === "number") + message.negativeIntValue = object.negativeIntValue; + else if (typeof object.negativeIntValue === "object") + message.negativeIntValue = new $util.LongBits(object.negativeIntValue.low >>> 0, object.negativeIntValue.high >>> 0).toNumber(); + if (object.doubleValue != null) + message.doubleValue = Number(object.doubleValue); + if (object.stringValue != null) + if (typeof object.stringValue === "string") + $util.base64.decode(object.stringValue, message.stringValue = $util.newBuffer($util.base64.length(object.stringValue)), 0); + else if (object.stringValue.length) + message.stringValue = object.stringValue; + if (object.aggregateValue != null) + message.aggregateValue = String(object.aggregateValue); + return message; + }; + + /** + * Creates a plain object from an UninterpretedOption message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {google.protobuf.UninterpretedOption} message UninterpretedOption + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + UninterpretedOption.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.name = []; + if (options.defaults) { + object.identifierValue = ""; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.positiveIntValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.positiveIntValue = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.negativeIntValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.negativeIntValue = options.longs === String ? "0" : 0; + object.doubleValue = 0; + if (options.bytes === String) + object.stringValue = ""; + else { + object.stringValue = []; + if (options.bytes !== Array) + object.stringValue = $util.newBuffer(object.stringValue); + } + object.aggregateValue = ""; + } + if (message.name && message.name.length) { + object.name = []; + for (var j = 0; j < message.name.length; ++j) + object.name[j] = $root.google.protobuf.UninterpretedOption.NamePart.toObject(message.name[j], options); + } + if (message.identifierValue != null && message.hasOwnProperty("identifierValue")) + object.identifierValue = message.identifierValue; + if (message.positiveIntValue != null && message.hasOwnProperty("positiveIntValue")) + if (typeof message.positiveIntValue === "number") + object.positiveIntValue = options.longs === String ? String(message.positiveIntValue) : message.positiveIntValue; + else + object.positiveIntValue = options.longs === String ? $util.Long.prototype.toString.call(message.positiveIntValue) : options.longs === Number ? new $util.LongBits(message.positiveIntValue.low >>> 0, message.positiveIntValue.high >>> 0).toNumber(true) : message.positiveIntValue; + if (message.negativeIntValue != null && message.hasOwnProperty("negativeIntValue")) + if (typeof message.negativeIntValue === "number") + object.negativeIntValue = options.longs === String ? String(message.negativeIntValue) : message.negativeIntValue; + else + object.negativeIntValue = options.longs === String ? $util.Long.prototype.toString.call(message.negativeIntValue) : options.longs === Number ? new $util.LongBits(message.negativeIntValue.low >>> 0, message.negativeIntValue.high >>> 0).toNumber() : message.negativeIntValue; + if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) + object.doubleValue = options.json && !isFinite(message.doubleValue) ? String(message.doubleValue) : message.doubleValue; + if (message.stringValue != null && message.hasOwnProperty("stringValue")) + object.stringValue = options.bytes === String ? $util.base64.encode(message.stringValue, 0, message.stringValue.length) : options.bytes === Array ? Array.prototype.slice.call(message.stringValue) : message.stringValue; + if (message.aggregateValue != null && message.hasOwnProperty("aggregateValue")) + object.aggregateValue = message.aggregateValue; + return object; + }; + + /** + * Converts this UninterpretedOption to JSON. + * @function toJSON + * @memberof google.protobuf.UninterpretedOption + * @instance + * @returns {Object.} JSON object + */ + UninterpretedOption.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + UninterpretedOption.NamePart = (function() { + + /** + * Properties of a NamePart. + * @memberof google.protobuf.UninterpretedOption + * @interface INamePart + * @property {string} namePart NamePart namePart + * @property {boolean} isExtension NamePart isExtension + */ + + /** + * Constructs a new NamePart. + * @memberof google.protobuf.UninterpretedOption + * @classdesc Represents a NamePart. + * @implements INamePart + * @constructor + * @param {google.protobuf.UninterpretedOption.INamePart=} [properties] Properties to set + */ + function NamePart(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]]; + } + + /** + * NamePart namePart. + * @member {string} namePart + * @memberof google.protobuf.UninterpretedOption.NamePart + * @instance + */ + NamePart.prototype.namePart = ""; + + /** + * NamePart isExtension. + * @member {boolean} isExtension + * @memberof google.protobuf.UninterpretedOption.NamePart + * @instance + */ + NamePart.prototype.isExtension = false; + + /** + * Creates a new NamePart instance using the specified properties. + * @function create + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {google.protobuf.UninterpretedOption.INamePart=} [properties] Properties to set + * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart instance + */ + NamePart.create = function create(properties) { + return new NamePart(properties); + }; + + /** + * Encodes the specified NamePart message. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages. + * @function encode + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {google.protobuf.UninterpretedOption.INamePart} message NamePart message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NamePart.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + writer.uint32(/* id 1, wireType 2 =*/10).string(message.namePart); + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isExtension); + return writer; + }; + + /** + * Encodes the specified NamePart message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {google.protobuf.UninterpretedOption.INamePart} message NamePart message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NamePart.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a NamePart message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NamePart.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UninterpretedOption.NamePart(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.namePart = reader.string(); + break; + case 2: + message.isExtension = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("namePart")) + throw $util.ProtocolError("missing required 'namePart'", { instance: message }); + if (!message.hasOwnProperty("isExtension")) + throw $util.ProtocolError("missing required 'isExtension'", { instance: message }); + return message; + }; + + /** + * Decodes a NamePart message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NamePart.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a NamePart message. + * @function verify + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + NamePart.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (!$util.isString(message.namePart)) + return "namePart: string expected"; + if (typeof message.isExtension !== "boolean") + return "isExtension: boolean expected"; + return null; + }; + + /** + * Creates a NamePart message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart + */ + NamePart.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.UninterpretedOption.NamePart) + return object; + var message = new $root.google.protobuf.UninterpretedOption.NamePart(); + if (object.namePart != null) + message.namePart = String(object.namePart); + if (object.isExtension != null) + message.isExtension = Boolean(object.isExtension); + return message; + }; + + /** + * Creates a plain object from a NamePart message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {google.protobuf.UninterpretedOption.NamePart} message NamePart + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + NamePart.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.namePart = ""; + object.isExtension = false; + } + if (message.namePart != null && message.hasOwnProperty("namePart")) + object.namePart = message.namePart; + if (message.isExtension != null && message.hasOwnProperty("isExtension")) + object.isExtension = message.isExtension; + return object; + }; + + /** + * Converts this NamePart to JSON. + * @function toJSON + * @memberof google.protobuf.UninterpretedOption.NamePart + * @instance + * @returns {Object.} JSON object + */ + NamePart.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return NamePart; + })(); + + return UninterpretedOption; + })(); + + protobuf.SourceCodeInfo = (function() { + + /** + * Properties of a SourceCodeInfo. + * @memberof google.protobuf + * @interface ISourceCodeInfo + * @property {Array.|null} [location] SourceCodeInfo location + */ + + /** + * Constructs a new SourceCodeInfo. + * @memberof google.protobuf + * @classdesc Represents a SourceCodeInfo. + * @implements ISourceCodeInfo + * @constructor + * @param {google.protobuf.ISourceCodeInfo=} [properties] Properties to set + */ + function SourceCodeInfo(properties) { + this.location = []; + 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]]; + } + + /** + * SourceCodeInfo location. + * @member {Array.} location + * @memberof google.protobuf.SourceCodeInfo + * @instance + */ + SourceCodeInfo.prototype.location = $util.emptyArray; + + /** + * Creates a new SourceCodeInfo instance using the specified properties. + * @function create + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {google.protobuf.ISourceCodeInfo=} [properties] Properties to set + * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo instance + */ + SourceCodeInfo.create = function create(properties) { + return new SourceCodeInfo(properties); + }; + + /** + * Encodes the specified SourceCodeInfo message. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages. + * @function encode + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {google.protobuf.ISourceCodeInfo} message SourceCodeInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SourceCodeInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.location != null && message.location.length) + for (var i = 0; i < message.location.length; ++i) + $root.google.protobuf.SourceCodeInfo.Location.encode(message.location[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified SourceCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {google.protobuf.ISourceCodeInfo} message SourceCodeInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SourceCodeInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SourceCodeInfo message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SourceCodeInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.SourceCodeInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.location && message.location.length)) + message.location = []; + message.location.push($root.google.protobuf.SourceCodeInfo.Location.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SourceCodeInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SourceCodeInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SourceCodeInfo message. + * @function verify + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SourceCodeInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.location != null && message.hasOwnProperty("location")) { + if (!Array.isArray(message.location)) + return "location: array expected"; + for (var i = 0; i < message.location.length; ++i) { + var error = $root.google.protobuf.SourceCodeInfo.Location.verify(message.location[i]); + if (error) + return "location." + error; + } + } + return null; + }; + + /** + * Creates a SourceCodeInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo + */ + SourceCodeInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.SourceCodeInfo) + return object; + var message = new $root.google.protobuf.SourceCodeInfo(); + if (object.location) { + if (!Array.isArray(object.location)) + throw TypeError(".google.protobuf.SourceCodeInfo.location: array expected"); + message.location = []; + for (var i = 0; i < object.location.length; ++i) { + if (typeof object.location[i] !== "object") + throw TypeError(".google.protobuf.SourceCodeInfo.location: object expected"); + message.location[i] = $root.google.protobuf.SourceCodeInfo.Location.fromObject(object.location[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a SourceCodeInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {google.protobuf.SourceCodeInfo} message SourceCodeInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SourceCodeInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.location = []; + if (message.location && message.location.length) { + object.location = []; + for (var j = 0; j < message.location.length; ++j) + object.location[j] = $root.google.protobuf.SourceCodeInfo.Location.toObject(message.location[j], options); + } + return object; + }; + + /** + * Converts this SourceCodeInfo to JSON. + * @function toJSON + * @memberof google.protobuf.SourceCodeInfo + * @instance + * @returns {Object.} JSON object + */ + SourceCodeInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + SourceCodeInfo.Location = (function() { + + /** + * Properties of a Location. + * @memberof google.protobuf.SourceCodeInfo + * @interface ILocation + * @property {Array.|null} [path] Location path + * @property {Array.|null} [span] Location span + * @property {string|null} [leadingComments] Location leadingComments + * @property {string|null} [trailingComments] Location trailingComments + * @property {Array.|null} [leadingDetachedComments] Location leadingDetachedComments + */ + + /** + * Constructs a new Location. + * @memberof google.protobuf.SourceCodeInfo + * @classdesc Represents a Location. + * @implements ILocation + * @constructor + * @param {google.protobuf.SourceCodeInfo.ILocation=} [properties] Properties to set + */ + function Location(properties) { + this.path = []; + this.span = []; + this.leadingDetachedComments = []; + 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]]; + } + + /** + * Location path. + * @member {Array.} path + * @memberof google.protobuf.SourceCodeInfo.Location + * @instance + */ + Location.prototype.path = $util.emptyArray; + + /** + * Location span. + * @member {Array.} span + * @memberof google.protobuf.SourceCodeInfo.Location + * @instance + */ + Location.prototype.span = $util.emptyArray; + + /** + * Location leadingComments. + * @member {string} leadingComments + * @memberof google.protobuf.SourceCodeInfo.Location + * @instance + */ + Location.prototype.leadingComments = ""; + + /** + * Location trailingComments. + * @member {string} trailingComments + * @memberof google.protobuf.SourceCodeInfo.Location + * @instance + */ + Location.prototype.trailingComments = ""; + + /** + * Location leadingDetachedComments. + * @member {Array.} leadingDetachedComments + * @memberof google.protobuf.SourceCodeInfo.Location + * @instance + */ + Location.prototype.leadingDetachedComments = $util.emptyArray; + + /** + * Creates a new Location instance using the specified properties. + * @function create + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {google.protobuf.SourceCodeInfo.ILocation=} [properties] Properties to set + * @returns {google.protobuf.SourceCodeInfo.Location} Location instance + */ + Location.create = function create(properties) { + return new Location(properties); + }; + + /** + * Encodes the specified Location message. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages. + * @function encode + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {google.protobuf.SourceCodeInfo.ILocation} message Location message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Location.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.path != null && message.path.length) { + writer.uint32(/* id 1, wireType 2 =*/10).fork(); + for (var i = 0; i < message.path.length; ++i) + writer.int32(message.path[i]); + writer.ldelim(); + } + if (message.span != null && message.span.length) { + writer.uint32(/* id 2, wireType 2 =*/18).fork(); + for (var i = 0; i < message.span.length; ++i) + writer.int32(message.span[i]); + writer.ldelim(); + } + if (message.leadingComments != null && message.hasOwnProperty("leadingComments")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.leadingComments); + if (message.trailingComments != null && message.hasOwnProperty("trailingComments")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.trailingComments); + if (message.leadingDetachedComments != null && message.leadingDetachedComments.length) + for (var i = 0; i < message.leadingDetachedComments.length; ++i) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.leadingDetachedComments[i]); + return writer; + }; + + /** + * Encodes the specified Location message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {google.protobuf.SourceCodeInfo.ILocation} message Location message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Location.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Location message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.SourceCodeInfo.Location} Location + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Location.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.SourceCodeInfo.Location(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.path && message.path.length)) + message.path = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.path.push(reader.int32()); + } else + message.path.push(reader.int32()); + break; + case 2: + if (!(message.span && message.span.length)) + message.span = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.span.push(reader.int32()); + } else + message.span.push(reader.int32()); + break; + case 3: + message.leadingComments = reader.string(); + break; + case 4: + message.trailingComments = reader.string(); + break; + case 6: + if (!(message.leadingDetachedComments && message.leadingDetachedComments.length)) + message.leadingDetachedComments = []; + message.leadingDetachedComments.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Location message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.SourceCodeInfo.Location} Location + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Location.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Location message. + * @function verify + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Location.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.path != null && message.hasOwnProperty("path")) { + if (!Array.isArray(message.path)) + return "path: array expected"; + for (var i = 0; i < message.path.length; ++i) + if (!$util.isInteger(message.path[i])) + return "path: integer[] expected"; + } + if (message.span != null && message.hasOwnProperty("span")) { + if (!Array.isArray(message.span)) + return "span: array expected"; + for (var i = 0; i < message.span.length; ++i) + if (!$util.isInteger(message.span[i])) + return "span: integer[] expected"; + } + if (message.leadingComments != null && message.hasOwnProperty("leadingComments")) + if (!$util.isString(message.leadingComments)) + return "leadingComments: string expected"; + if (message.trailingComments != null && message.hasOwnProperty("trailingComments")) + if (!$util.isString(message.trailingComments)) + return "trailingComments: string expected"; + if (message.leadingDetachedComments != null && message.hasOwnProperty("leadingDetachedComments")) { + if (!Array.isArray(message.leadingDetachedComments)) + return "leadingDetachedComments: array expected"; + for (var i = 0; i < message.leadingDetachedComments.length; ++i) + if (!$util.isString(message.leadingDetachedComments[i])) + return "leadingDetachedComments: string[] expected"; + } + return null; + }; + + /** + * Creates a Location message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.SourceCodeInfo.Location} Location + */ + Location.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.SourceCodeInfo.Location) + return object; + var message = new $root.google.protobuf.SourceCodeInfo.Location(); + if (object.path) { + if (!Array.isArray(object.path)) + throw TypeError(".google.protobuf.SourceCodeInfo.Location.path: array expected"); + message.path = []; + for (var i = 0; i < object.path.length; ++i) + message.path[i] = object.path[i] | 0; + } + if (object.span) { + if (!Array.isArray(object.span)) + throw TypeError(".google.protobuf.SourceCodeInfo.Location.span: array expected"); + message.span = []; + for (var i = 0; i < object.span.length; ++i) + message.span[i] = object.span[i] | 0; + } + if (object.leadingComments != null) + message.leadingComments = String(object.leadingComments); + if (object.trailingComments != null) + message.trailingComments = String(object.trailingComments); + if (object.leadingDetachedComments) { + if (!Array.isArray(object.leadingDetachedComments)) + throw TypeError(".google.protobuf.SourceCodeInfo.Location.leadingDetachedComments: array expected"); + message.leadingDetachedComments = []; + for (var i = 0; i < object.leadingDetachedComments.length; ++i) + message.leadingDetachedComments[i] = String(object.leadingDetachedComments[i]); + } + return message; + }; + + /** + * Creates a plain object from a Location message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {google.protobuf.SourceCodeInfo.Location} message Location + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Location.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.path = []; + object.span = []; + object.leadingDetachedComments = []; + } + if (options.defaults) { + object.leadingComments = ""; + object.trailingComments = ""; + } + if (message.path && message.path.length) { + object.path = []; + for (var j = 0; j < message.path.length; ++j) + object.path[j] = message.path[j]; + } + if (message.span && message.span.length) { + object.span = []; + for (var j = 0; j < message.span.length; ++j) + object.span[j] = message.span[j]; + } + if (message.leadingComments != null && message.hasOwnProperty("leadingComments")) + object.leadingComments = message.leadingComments; + if (message.trailingComments != null && message.hasOwnProperty("trailingComments")) + object.trailingComments = message.trailingComments; + if (message.leadingDetachedComments && message.leadingDetachedComments.length) { + object.leadingDetachedComments = []; + for (var j = 0; j < message.leadingDetachedComments.length; ++j) + object.leadingDetachedComments[j] = message.leadingDetachedComments[j]; + } + return object; + }; + + /** + * Converts this Location to JSON. + * @function toJSON + * @memberof google.protobuf.SourceCodeInfo.Location + * @instance + * @returns {Object.} JSON object + */ + Location.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Location; + })(); + + return SourceCodeInfo; + })(); + + protobuf.GeneratedCodeInfo = (function() { + + /** + * Properties of a GeneratedCodeInfo. + * @memberof google.protobuf + * @interface IGeneratedCodeInfo + * @property {Array.|null} [annotation] GeneratedCodeInfo annotation + */ + + /** + * Constructs a new GeneratedCodeInfo. + * @memberof google.protobuf + * @classdesc Represents a GeneratedCodeInfo. + * @implements IGeneratedCodeInfo + * @constructor + * @param {google.protobuf.IGeneratedCodeInfo=} [properties] Properties to set + */ + function GeneratedCodeInfo(properties) { + this.annotation = []; + 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]]; + } + + /** + * GeneratedCodeInfo annotation. + * @member {Array.} annotation + * @memberof google.protobuf.GeneratedCodeInfo + * @instance + */ + GeneratedCodeInfo.prototype.annotation = $util.emptyArray; + + /** + * Creates a new GeneratedCodeInfo instance using the specified properties. + * @function create + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {google.protobuf.IGeneratedCodeInfo=} [properties] Properties to set + * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo instance + */ + GeneratedCodeInfo.create = function create(properties) { + return new GeneratedCodeInfo(properties); + }; + + /** + * Encodes the specified GeneratedCodeInfo message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages. + * @function encode + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {google.protobuf.IGeneratedCodeInfo} message GeneratedCodeInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GeneratedCodeInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.annotation != null && message.annotation.length) + for (var i = 0; i < message.annotation.length; ++i) + $root.google.protobuf.GeneratedCodeInfo.Annotation.encode(message.annotation[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GeneratedCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {google.protobuf.IGeneratedCodeInfo} message GeneratedCodeInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GeneratedCodeInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GeneratedCodeInfo message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GeneratedCodeInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.GeneratedCodeInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.annotation && message.annotation.length)) + message.annotation = []; + message.annotation.push($root.google.protobuf.GeneratedCodeInfo.Annotation.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GeneratedCodeInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GeneratedCodeInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GeneratedCodeInfo message. + * @function verify + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GeneratedCodeInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.annotation != null && message.hasOwnProperty("annotation")) { + if (!Array.isArray(message.annotation)) + return "annotation: array expected"; + for (var i = 0; i < message.annotation.length; ++i) { + var error = $root.google.protobuf.GeneratedCodeInfo.Annotation.verify(message.annotation[i]); + if (error) + return "annotation." + error; + } + } + return null; + }; + + /** + * Creates a GeneratedCodeInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo + */ + GeneratedCodeInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.GeneratedCodeInfo) + return object; + var message = new $root.google.protobuf.GeneratedCodeInfo(); + if (object.annotation) { + if (!Array.isArray(object.annotation)) + throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: array expected"); + message.annotation = []; + for (var i = 0; i < object.annotation.length; ++i) { + if (typeof object.annotation[i] !== "object") + throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: object expected"); + message.annotation[i] = $root.google.protobuf.GeneratedCodeInfo.Annotation.fromObject(object.annotation[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a GeneratedCodeInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {google.protobuf.GeneratedCodeInfo} message GeneratedCodeInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GeneratedCodeInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.annotation = []; + if (message.annotation && message.annotation.length) { + object.annotation = []; + for (var j = 0; j < message.annotation.length; ++j) + object.annotation[j] = $root.google.protobuf.GeneratedCodeInfo.Annotation.toObject(message.annotation[j], options); + } + return object; + }; + + /** + * Converts this GeneratedCodeInfo to JSON. + * @function toJSON + * @memberof google.protobuf.GeneratedCodeInfo + * @instance + * @returns {Object.} JSON object + */ + GeneratedCodeInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GeneratedCodeInfo.Annotation = (function() { + + /** + * Properties of an Annotation. + * @memberof google.protobuf.GeneratedCodeInfo + * @interface IAnnotation + * @property {Array.|null} [path] Annotation path + * @property {string|null} [sourceFile] Annotation sourceFile + * @property {number|null} [begin] Annotation begin + * @property {number|null} [end] Annotation end + */ + + /** + * Constructs a new Annotation. + * @memberof google.protobuf.GeneratedCodeInfo + * @classdesc Represents an Annotation. + * @implements IAnnotation + * @constructor + * @param {google.protobuf.GeneratedCodeInfo.IAnnotation=} [properties] Properties to set + */ + function Annotation(properties) { + this.path = []; + 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]]; + } + + /** + * Annotation path. + * @member {Array.} path + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @instance + */ + Annotation.prototype.path = $util.emptyArray; + + /** + * Annotation sourceFile. + * @member {string} sourceFile + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @instance + */ + Annotation.prototype.sourceFile = ""; + + /** + * Annotation begin. + * @member {number} begin + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @instance + */ + Annotation.prototype.begin = 0; + + /** + * Annotation end. + * @member {number} end + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @instance + */ + Annotation.prototype.end = 0; + + /** + * Creates a new Annotation instance using the specified properties. + * @function create + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {google.protobuf.GeneratedCodeInfo.IAnnotation=} [properties] Properties to set + * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation instance + */ + Annotation.create = function create(properties) { + return new Annotation(properties); + }; + + /** + * Encodes the specified Annotation message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages. + * @function encode + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {google.protobuf.GeneratedCodeInfo.IAnnotation} message Annotation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Annotation.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.path != null && message.path.length) { + writer.uint32(/* id 1, wireType 2 =*/10).fork(); + for (var i = 0; i < message.path.length; ++i) + writer.int32(message.path[i]); + writer.ldelim(); + } + if (message.sourceFile != null && message.hasOwnProperty("sourceFile")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.sourceFile); + if (message.begin != null && message.hasOwnProperty("begin")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.begin); + if (message.end != null && message.hasOwnProperty("end")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.end); + return writer; + }; + + /** + * Encodes the specified Annotation message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {google.protobuf.GeneratedCodeInfo.IAnnotation} message Annotation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Annotation.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an Annotation message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Annotation.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.GeneratedCodeInfo.Annotation(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.path && message.path.length)) + message.path = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.path.push(reader.int32()); + } else + message.path.push(reader.int32()); + break; + case 2: + message.sourceFile = reader.string(); + break; + case 3: + message.begin = reader.int32(); + break; + case 4: + message.end = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an Annotation message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Annotation.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an Annotation message. + * @function verify + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Annotation.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.path != null && message.hasOwnProperty("path")) { + if (!Array.isArray(message.path)) + return "path: array expected"; + for (var i = 0; i < message.path.length; ++i) + if (!$util.isInteger(message.path[i])) + return "path: integer[] expected"; + } + if (message.sourceFile != null && message.hasOwnProperty("sourceFile")) + if (!$util.isString(message.sourceFile)) + return "sourceFile: string expected"; + if (message.begin != null && message.hasOwnProperty("begin")) + if (!$util.isInteger(message.begin)) + return "begin: integer expected"; + if (message.end != null && message.hasOwnProperty("end")) + if (!$util.isInteger(message.end)) + return "end: integer expected"; + return null; + }; + + /** + * Creates an Annotation message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation + */ + Annotation.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.GeneratedCodeInfo.Annotation) + return object; + var message = new $root.google.protobuf.GeneratedCodeInfo.Annotation(); + if (object.path) { + if (!Array.isArray(object.path)) + throw TypeError(".google.protobuf.GeneratedCodeInfo.Annotation.path: array expected"); + message.path = []; + for (var i = 0; i < object.path.length; ++i) + message.path[i] = object.path[i] | 0; + } + if (object.sourceFile != null) + message.sourceFile = String(object.sourceFile); + if (object.begin != null) + message.begin = object.begin | 0; + if (object.end != null) + message.end = object.end | 0; + return message; + }; + + /** + * Creates a plain object from an Annotation message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {google.protobuf.GeneratedCodeInfo.Annotation} message Annotation + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Annotation.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.path = []; + if (options.defaults) { + object.sourceFile = ""; + object.begin = 0; + object.end = 0; + } + if (message.path && message.path.length) { + object.path = []; + for (var j = 0; j < message.path.length; ++j) + object.path[j] = message.path[j]; + } + if (message.sourceFile != null && message.hasOwnProperty("sourceFile")) + object.sourceFile = message.sourceFile; + if (message.begin != null && message.hasOwnProperty("begin")) + object.begin = message.begin; + if (message.end != null && message.hasOwnProperty("end")) + object.end = message.end; + return object; + }; + + /** + * Converts this Annotation to JSON. + * @function toJSON + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @instance + * @returns {Object.} JSON object + */ + Annotation.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Annotation; + })(); + + return GeneratedCodeInfo; + })(); + + protobuf.Duration = (function() { + + /** + * Properties of a Duration. + * @memberof google.protobuf + * @interface IDuration + * @property {number|Long|null} [seconds] Duration seconds + * @property {number|null} [nanos] Duration nanos + */ + + /** + * Constructs a new Duration. + * @memberof google.protobuf + * @classdesc Represents a Duration. + * @implements IDuration + * @constructor + * @param {google.protobuf.IDuration=} [properties] Properties to set + */ + function Duration(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]]; + } + + /** + * Duration seconds. + * @member {number|Long} seconds + * @memberof google.protobuf.Duration + * @instance + */ + Duration.prototype.seconds = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * Duration nanos. + * @member {number} nanos + * @memberof google.protobuf.Duration + * @instance + */ + Duration.prototype.nanos = 0; + + /** + * Creates a new Duration instance using the specified properties. + * @function create + * @memberof google.protobuf.Duration + * @static + * @param {google.protobuf.IDuration=} [properties] Properties to set + * @returns {google.protobuf.Duration} Duration instance + */ + Duration.create = function create(properties) { + return new Duration(properties); + }; + + /** + * Encodes the specified Duration message. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages. + * @function encode + * @memberof google.protobuf.Duration + * @static + * @param {google.protobuf.IDuration} message Duration message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Duration.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.seconds != null && message.hasOwnProperty("seconds")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds); + if (message.nanos != null && message.hasOwnProperty("nanos")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos); + return writer; + }; + + /** + * Encodes the specified Duration message, length delimited. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.Duration + * @static + * @param {google.protobuf.IDuration} message Duration message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Duration.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Duration message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.Duration + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.Duration} Duration + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Duration.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Duration(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.seconds = reader.int64(); + break; + case 2: + message.nanos = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Duration message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.Duration + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.Duration} Duration + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Duration.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Duration message. + * @function verify + * @memberof google.protobuf.Duration + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Duration.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.seconds != null && message.hasOwnProperty("seconds")) + if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high))) + return "seconds: integer|Long expected"; + if (message.nanos != null && message.hasOwnProperty("nanos")) + if (!$util.isInteger(message.nanos)) + return "nanos: integer expected"; + return null; + }; + + /** + * Creates a Duration message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.Duration + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.Duration} Duration + */ + Duration.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.Duration) + return object; + var message = new $root.google.protobuf.Duration(); + if (object.seconds != null) + if ($util.Long) + (message.seconds = $util.Long.fromValue(object.seconds)).unsigned = false; + else if (typeof object.seconds === "string") + message.seconds = parseInt(object.seconds, 10); + else if (typeof object.seconds === "number") + message.seconds = object.seconds; + else if (typeof object.seconds === "object") + message.seconds = new $util.LongBits(object.seconds.low >>> 0, object.seconds.high >>> 0).toNumber(); + if (object.nanos != null) + message.nanos = object.nanos | 0; + return message; + }; + + /** + * Creates a plain object from a Duration message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.Duration + * @static + * @param {google.protobuf.Duration} message Duration + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Duration.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.seconds = options.longs === String ? "0" : 0; + object.nanos = 0; + } + if (message.seconds != null && message.hasOwnProperty("seconds")) + if (typeof message.seconds === "number") + object.seconds = options.longs === String ? String(message.seconds) : message.seconds; + else + object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds; + if (message.nanos != null && message.hasOwnProperty("nanos")) + object.nanos = message.nanos; + return object; + }; + + /** + * Converts this Duration to JSON. + * @function toJSON + * @memberof google.protobuf.Duration + * @instance + * @returns {Object.} JSON object + */ + Duration.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Duration; + })(); + + protobuf.Struct = (function() { + + /** + * Properties of a Struct. + * @memberof google.protobuf + * @interface IStruct + * @property {Object.|null} [fields] Struct fields + */ + + /** + * Constructs a new Struct. + * @memberof google.protobuf + * @classdesc Represents a Struct. + * @implements IStruct + * @constructor + * @param {google.protobuf.IStruct=} [properties] Properties to set + */ + function Struct(properties) { + this.fields = {}; + 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]]; + } + + /** + * Struct fields. + * @member {Object.} fields + * @memberof google.protobuf.Struct + * @instance + */ + Struct.prototype.fields = $util.emptyObject; + + /** + * Creates a new Struct instance using the specified properties. + * @function create + * @memberof google.protobuf.Struct + * @static + * @param {google.protobuf.IStruct=} [properties] Properties to set + * @returns {google.protobuf.Struct} Struct instance + */ + Struct.create = function create(properties) { + return new Struct(properties); + }; + + /** + * Encodes the specified Struct message. Does not implicitly {@link google.protobuf.Struct.verify|verify} messages. + * @function encode + * @memberof google.protobuf.Struct + * @static + * @param {google.protobuf.IStruct} message Struct message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Struct.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.fields != null && message.hasOwnProperty("fields")) + for (var keys = Object.keys(message.fields), i = 0; i < keys.length; ++i) { + writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); + $root.google.protobuf.Value.encode(message.fields[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); + } + return writer; + }; + + /** + * Encodes the specified Struct message, length delimited. Does not implicitly {@link google.protobuf.Struct.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.Struct + * @static + * @param {google.protobuf.IStruct} message Struct message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Struct.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Struct message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.Struct + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.Struct} Struct + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Struct.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Struct(), key; + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + reader.skip().pos++; + if (message.fields === $util.emptyObject) + message.fields = {}; + key = reader.string(); + reader.pos++; + message.fields[key] = $root.google.protobuf.Value.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Struct message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.Struct + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.Struct} Struct + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Struct.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Struct message. + * @function verify + * @memberof google.protobuf.Struct + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Struct.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.fields != null && message.hasOwnProperty("fields")) { + if (!$util.isObject(message.fields)) + return "fields: object expected"; + var key = Object.keys(message.fields); + for (var i = 0; i < key.length; ++i) { + var error = $root.google.protobuf.Value.verify(message.fields[key[i]]); + if (error) + return "fields." + error; + } + } + return null; + }; + + /** + * Creates a Struct message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.Struct + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.Struct} Struct + */ + Struct.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.Struct) + return object; + var message = new $root.google.protobuf.Struct(); + if (object.fields) { + if (typeof object.fields !== "object") + throw TypeError(".google.protobuf.Struct.fields: object expected"); + message.fields = {}; + for (var keys = Object.keys(object.fields), i = 0; i < keys.length; ++i) { + if (typeof object.fields[keys[i]] !== "object") + throw TypeError(".google.protobuf.Struct.fields: object expected"); + message.fields[keys[i]] = $root.google.protobuf.Value.fromObject(object.fields[keys[i]]); + } + } + return message; + }; + + /** + * Creates a plain object from a Struct message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.Struct + * @static + * @param {google.protobuf.Struct} message Struct + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Struct.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.objects || options.defaults) + object.fields = {}; + var keys2; + if (message.fields && (keys2 = Object.keys(message.fields)).length) { + object.fields = {}; + for (var j = 0; j < keys2.length; ++j) + object.fields[keys2[j]] = $root.google.protobuf.Value.toObject(message.fields[keys2[j]], options); + } + return object; + }; + + /** + * Converts this Struct to JSON. + * @function toJSON + * @memberof google.protobuf.Struct + * @instance + * @returns {Object.} JSON object + */ + Struct.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Struct; + })(); + + protobuf.Value = (function() { + + /** + * Properties of a Value. + * @memberof google.protobuf + * @interface IValue + * @property {google.protobuf.NullValue|null} [nullValue] Value nullValue + * @property {number|null} [numberValue] Value numberValue + * @property {string|null} [stringValue] Value stringValue + * @property {boolean|null} [boolValue] Value boolValue + * @property {google.protobuf.IStruct|null} [structValue] Value structValue + * @property {google.protobuf.IListValue|null} [listValue] Value listValue + */ + + /** + * Constructs a new Value. + * @memberof google.protobuf + * @classdesc Represents a Value. + * @implements IValue + * @constructor + * @param {google.protobuf.IValue=} [properties] Properties to set + */ + function Value(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]]; + } + + /** + * Value nullValue. + * @member {google.protobuf.NullValue} nullValue + * @memberof google.protobuf.Value + * @instance + */ + Value.prototype.nullValue = 0; + + /** + * Value numberValue. + * @member {number} numberValue + * @memberof google.protobuf.Value + * @instance + */ + Value.prototype.numberValue = 0; + + /** + * Value stringValue. + * @member {string} stringValue + * @memberof google.protobuf.Value + * @instance + */ + Value.prototype.stringValue = ""; + + /** + * Value boolValue. + * @member {boolean} boolValue + * @memberof google.protobuf.Value + * @instance + */ + Value.prototype.boolValue = false; + + /** + * Value structValue. + * @member {google.protobuf.IStruct|null|undefined} structValue + * @memberof google.protobuf.Value + * @instance + */ + Value.prototype.structValue = null; + + /** + * Value listValue. + * @member {google.protobuf.IListValue|null|undefined} listValue + * @memberof google.protobuf.Value + * @instance + */ + Value.prototype.listValue = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * Value kind. + * @member {"nullValue"|"numberValue"|"stringValue"|"boolValue"|"structValue"|"listValue"|undefined} kind + * @memberof google.protobuf.Value + * @instance + */ + Object.defineProperty(Value.prototype, "kind", { + get: $util.oneOfGetter($oneOfFields = ["nullValue", "numberValue", "stringValue", "boolValue", "structValue", "listValue"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Value instance using the specified properties. + * @function create + * @memberof google.protobuf.Value + * @static + * @param {google.protobuf.IValue=} [properties] Properties to set + * @returns {google.protobuf.Value} Value instance + */ + Value.create = function create(properties) { + return new Value(properties); + }; + + /** + * Encodes the specified Value message. Does not implicitly {@link google.protobuf.Value.verify|verify} messages. + * @function encode + * @memberof google.protobuf.Value + * @static + * @param {google.protobuf.IValue} message Value message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Value.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.nullValue != null && message.hasOwnProperty("nullValue")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.nullValue); + if (message.numberValue != null && message.hasOwnProperty("numberValue")) + writer.uint32(/* id 2, wireType 1 =*/17).double(message.numberValue); + if (message.stringValue != null && message.hasOwnProperty("stringValue")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.stringValue); + if (message.boolValue != null && message.hasOwnProperty("boolValue")) + writer.uint32(/* id 4, wireType 0 =*/32).bool(message.boolValue); + if (message.structValue != null && message.hasOwnProperty("structValue")) + $root.google.protobuf.Struct.encode(message.structValue, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.listValue != null && message.hasOwnProperty("listValue")) + $root.google.protobuf.ListValue.encode(message.listValue, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Value message, length delimited. Does not implicitly {@link google.protobuf.Value.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.Value + * @static + * @param {google.protobuf.IValue} message Value message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Value.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Value message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.Value + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.Value} Value + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Value.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Value(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.nullValue = reader.int32(); + break; + case 2: + message.numberValue = reader.double(); + break; + case 3: + message.stringValue = reader.string(); + break; + case 4: + message.boolValue = reader.bool(); + break; + case 5: + message.structValue = $root.google.protobuf.Struct.decode(reader, reader.uint32()); + break; + case 6: + message.listValue = $root.google.protobuf.ListValue.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Value message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.Value + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.Value} Value + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Value.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Value message. + * @function verify + * @memberof google.protobuf.Value + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Value.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.nullValue != null && message.hasOwnProperty("nullValue")) { + properties.kind = 1; + switch (message.nullValue) { + default: + return "nullValue: enum value expected"; + case 0: + break; + } + } + if (message.numberValue != null && message.hasOwnProperty("numberValue")) { + if (properties.kind === 1) + return "kind: multiple values"; + properties.kind = 1; + if (typeof message.numberValue !== "number") + return "numberValue: number expected"; + } + if (message.stringValue != null && message.hasOwnProperty("stringValue")) { + if (properties.kind === 1) + return "kind: multiple values"; + properties.kind = 1; + if (!$util.isString(message.stringValue)) + return "stringValue: string expected"; + } + if (message.boolValue != null && message.hasOwnProperty("boolValue")) { + if (properties.kind === 1) + return "kind: multiple values"; + properties.kind = 1; + if (typeof message.boolValue !== "boolean") + return "boolValue: boolean expected"; + } + if (message.structValue != null && message.hasOwnProperty("structValue")) { + if (properties.kind === 1) + return "kind: multiple values"; + properties.kind = 1; + { + var error = $root.google.protobuf.Struct.verify(message.structValue); + if (error) + return "structValue." + error; + } + } + if (message.listValue != null && message.hasOwnProperty("listValue")) { + if (properties.kind === 1) + return "kind: multiple values"; + properties.kind = 1; + { + var error = $root.google.protobuf.ListValue.verify(message.listValue); + if (error) + return "listValue." + error; + } + } + return null; + }; + + /** + * Creates a Value message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.Value + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.Value} Value + */ + Value.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.Value) + return object; + var message = new $root.google.protobuf.Value(); + switch (object.nullValue) { + case "NULL_VALUE": + case 0: + message.nullValue = 0; + break; + } + if (object.numberValue != null) + message.numberValue = Number(object.numberValue); + if (object.stringValue != null) + message.stringValue = String(object.stringValue); + if (object.boolValue != null) + message.boolValue = Boolean(object.boolValue); + if (object.structValue != null) { + if (typeof object.structValue !== "object") + throw TypeError(".google.protobuf.Value.structValue: object expected"); + message.structValue = $root.google.protobuf.Struct.fromObject(object.structValue); + } + if (object.listValue != null) { + if (typeof object.listValue !== "object") + throw TypeError(".google.protobuf.Value.listValue: object expected"); + message.listValue = $root.google.protobuf.ListValue.fromObject(object.listValue); + } + return message; + }; + + /** + * Creates a plain object from a Value message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.Value + * @static + * @param {google.protobuf.Value} message Value + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Value.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.nullValue != null && message.hasOwnProperty("nullValue")) { + object.nullValue = options.enums === String ? $root.google.protobuf.NullValue[message.nullValue] : message.nullValue; + if (options.oneofs) + object.kind = "nullValue"; + } + if (message.numberValue != null && message.hasOwnProperty("numberValue")) { + object.numberValue = options.json && !isFinite(message.numberValue) ? String(message.numberValue) : message.numberValue; + if (options.oneofs) + object.kind = "numberValue"; + } + if (message.stringValue != null && message.hasOwnProperty("stringValue")) { + object.stringValue = message.stringValue; + if (options.oneofs) + object.kind = "stringValue"; + } + if (message.boolValue != null && message.hasOwnProperty("boolValue")) { + object.boolValue = message.boolValue; + if (options.oneofs) + object.kind = "boolValue"; + } + if (message.structValue != null && message.hasOwnProperty("structValue")) { + object.structValue = $root.google.protobuf.Struct.toObject(message.structValue, options); + if (options.oneofs) + object.kind = "structValue"; + } + if (message.listValue != null && message.hasOwnProperty("listValue")) { + object.listValue = $root.google.protobuf.ListValue.toObject(message.listValue, options); + if (options.oneofs) + object.kind = "listValue"; + } + return object; + }; + + /** + * Converts this Value to JSON. + * @function toJSON + * @memberof google.protobuf.Value + * @instance + * @returns {Object.} JSON object + */ + Value.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Value; + })(); + + /** + * NullValue enum. + * @name google.protobuf.NullValue + * @enum {string} + * @property {number} NULL_VALUE=0 NULL_VALUE value + */ + protobuf.NullValue = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "NULL_VALUE"] = 0; + return values; + })(); + + protobuf.ListValue = (function() { + + /** + * Properties of a ListValue. + * @memberof google.protobuf + * @interface IListValue + * @property {Array.|null} [values] ListValue values + */ + + /** + * Constructs a new ListValue. + * @memberof google.protobuf + * @classdesc Represents a ListValue. + * @implements IListValue + * @constructor + * @param {google.protobuf.IListValue=} [properties] Properties to set + */ + function ListValue(properties) { + this.values = []; + 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]]; + } + + /** + * ListValue values. + * @member {Array.} values + * @memberof google.protobuf.ListValue + * @instance + */ + ListValue.prototype.values = $util.emptyArray; + + /** + * Creates a new ListValue instance using the specified properties. + * @function create + * @memberof google.protobuf.ListValue + * @static + * @param {google.protobuf.IListValue=} [properties] Properties to set + * @returns {google.protobuf.ListValue} ListValue instance + */ + ListValue.create = function create(properties) { + return new ListValue(properties); + }; + + /** + * Encodes the specified ListValue message. Does not implicitly {@link google.protobuf.ListValue.verify|verify} messages. + * @function encode + * @memberof google.protobuf.ListValue + * @static + * @param {google.protobuf.IListValue} message ListValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListValue.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.values != null && message.values.length) + for (var i = 0; i < message.values.length; ++i) + $root.google.protobuf.Value.encode(message.values[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ListValue message, length delimited. Does not implicitly {@link google.protobuf.ListValue.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.ListValue + * @static + * @param {google.protobuf.IListValue} message ListValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListValue.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListValue message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.ListValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.ListValue} ListValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListValue.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ListValue(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.values && message.values.length)) + message.values = []; + message.values.push($root.google.protobuf.Value.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListValue message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.ListValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.ListValue} ListValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListValue.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListValue message. + * @function verify + * @memberof google.protobuf.ListValue + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListValue.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.values != null && message.hasOwnProperty("values")) { + if (!Array.isArray(message.values)) + return "values: array expected"; + for (var i = 0; i < message.values.length; ++i) { + var error = $root.google.protobuf.Value.verify(message.values[i]); + if (error) + return "values." + error; + } + } + return null; + }; + + /** + * Creates a ListValue message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.ListValue + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.ListValue} ListValue + */ + ListValue.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.ListValue) + return object; + var message = new $root.google.protobuf.ListValue(); + if (object.values) { + if (!Array.isArray(object.values)) + throw TypeError(".google.protobuf.ListValue.values: array expected"); + message.values = []; + for (var i = 0; i < object.values.length; ++i) { + if (typeof object.values[i] !== "object") + throw TypeError(".google.protobuf.ListValue.values: object expected"); + message.values[i] = $root.google.protobuf.Value.fromObject(object.values[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a ListValue message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.ListValue + * @static + * @param {google.protobuf.ListValue} message ListValue + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListValue.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.values = []; + if (message.values && message.values.length) { + object.values = []; + for (var j = 0; j < message.values.length; ++j) + object.values[j] = $root.google.protobuf.Value.toObject(message.values[j], options); + } + return object; + }; + + /** + * Converts this ListValue to JSON. + * @function toJSON + * @memberof google.protobuf.ListValue + * @instance + * @returns {Object.} JSON object + */ + ListValue.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ListValue; + })(); + + protobuf.Timestamp = (function() { + + /** + * Properties of a Timestamp. + * @memberof google.protobuf + * @interface ITimestamp + * @property {number|Long|null} [seconds] Timestamp seconds + * @property {number|null} [nanos] Timestamp nanos + */ + + /** + * Constructs a new Timestamp. + * @memberof google.protobuf + * @classdesc Represents a Timestamp. + * @implements ITimestamp + * @constructor + * @param {google.protobuf.ITimestamp=} [properties] Properties to set + */ + function Timestamp(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]]; + } + + /** + * Timestamp seconds. + * @member {number|Long} seconds + * @memberof google.protobuf.Timestamp + * @instance + */ + Timestamp.prototype.seconds = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * Timestamp nanos. + * @member {number} nanos + * @memberof google.protobuf.Timestamp + * @instance + */ + Timestamp.prototype.nanos = 0; + + /** + * Creates a new Timestamp instance using the specified properties. + * @function create + * @memberof google.protobuf.Timestamp + * @static + * @param {google.protobuf.ITimestamp=} [properties] Properties to set + * @returns {google.protobuf.Timestamp} Timestamp instance + */ + Timestamp.create = function create(properties) { + return new Timestamp(properties); + }; + + /** + * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages. + * @function encode + * @memberof google.protobuf.Timestamp + * @static + * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Timestamp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.seconds != null && message.hasOwnProperty("seconds")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds); + if (message.nanos != null && message.hasOwnProperty("nanos")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos); + return writer; + }; + + /** + * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.Timestamp + * @static + * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Timestamp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Timestamp message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.Timestamp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.Timestamp} Timestamp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Timestamp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Timestamp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.seconds = reader.int64(); + break; + case 2: + message.nanos = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Timestamp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.Timestamp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.Timestamp} Timestamp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Timestamp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Timestamp message. + * @function verify + * @memberof google.protobuf.Timestamp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Timestamp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.seconds != null && message.hasOwnProperty("seconds")) + if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high))) + return "seconds: integer|Long expected"; + if (message.nanos != null && message.hasOwnProperty("nanos")) + if (!$util.isInteger(message.nanos)) + return "nanos: integer expected"; + return null; + }; + + /** + * Creates a Timestamp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.Timestamp + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.Timestamp} Timestamp + */ + Timestamp.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.Timestamp) + return object; + var message = new $root.google.protobuf.Timestamp(); + if (object.seconds != null) + if ($util.Long) + (message.seconds = $util.Long.fromValue(object.seconds)).unsigned = false; + else if (typeof object.seconds === "string") + message.seconds = parseInt(object.seconds, 10); + else if (typeof object.seconds === "number") + message.seconds = object.seconds; + else if (typeof object.seconds === "object") + message.seconds = new $util.LongBits(object.seconds.low >>> 0, object.seconds.high >>> 0).toNumber(); + if (object.nanos != null) + message.nanos = object.nanos | 0; + return message; + }; + + /** + * Creates a plain object from a Timestamp message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.Timestamp + * @static + * @param {google.protobuf.Timestamp} message Timestamp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Timestamp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.seconds = options.longs === String ? "0" : 0; + object.nanos = 0; + } + if (message.seconds != null && message.hasOwnProperty("seconds")) + if (typeof message.seconds === "number") + object.seconds = options.longs === String ? String(message.seconds) : message.seconds; + else + object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds; + if (message.nanos != null && message.hasOwnProperty("nanos")) + object.nanos = message.nanos; + return object; + }; + + /** + * Converts this Timestamp to JSON. + * @function toJSON + * @memberof google.protobuf.Timestamp + * @instance + * @returns {Object.} JSON object + */ + Timestamp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Timestamp; + })(); + + return protobuf; + })(); + + google.type = (function() { + + /** + * Namespace type. + * @memberof google + * @namespace + */ + var type = {}; + + type.Money = (function() { + + /** + * Properties of a Money. + * @memberof google.type + * @interface IMoney + * @property {string|null} [currencyCode] Money currencyCode + * @property {number|Long|null} [units] Money units + * @property {number|null} [nanos] Money nanos + */ + + /** + * Constructs a new Money. + * @memberof google.type + * @classdesc Represents a Money. + * @implements IMoney + * @constructor + * @param {google.type.IMoney=} [properties] Properties to set + */ + function Money(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]]; + } + + /** + * Money currencyCode. + * @member {string} currencyCode + * @memberof google.type.Money + * @instance + */ + Money.prototype.currencyCode = ""; + + /** + * Money units. + * @member {number|Long} units + * @memberof google.type.Money + * @instance + */ + Money.prototype.units = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * Money nanos. + * @member {number} nanos + * @memberof google.type.Money + * @instance + */ + Money.prototype.nanos = 0; + + /** + * Creates a new Money instance using the specified properties. + * @function create + * @memberof google.type.Money + * @static + * @param {google.type.IMoney=} [properties] Properties to set + * @returns {google.type.Money} Money instance + */ + Money.create = function create(properties) { + return new Money(properties); + }; + + /** + * Encodes the specified Money message. Does not implicitly {@link google.type.Money.verify|verify} messages. + * @function encode + * @memberof google.type.Money + * @static + * @param {google.type.IMoney} message Money message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Money.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.currencyCode); + if (message.units != null && message.hasOwnProperty("units")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.units); + if (message.nanos != null && message.hasOwnProperty("nanos")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.nanos); + return writer; + }; + + /** + * Encodes the specified Money message, length delimited. Does not implicitly {@link google.type.Money.verify|verify} messages. + * @function encodeDelimited + * @memberof google.type.Money + * @static + * @param {google.type.IMoney} message Money message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Money.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Money message from the specified reader or buffer. + * @function decode + * @memberof google.type.Money + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.type.Money} Money + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Money.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.type.Money(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.currencyCode = reader.string(); + break; + case 2: + message.units = reader.int64(); + break; + case 3: + message.nanos = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Money message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.type.Money + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.type.Money} Money + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Money.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Money message. + * @function verify + * @memberof google.type.Money + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Money.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) + if (!$util.isString(message.currencyCode)) + return "currencyCode: string expected"; + if (message.units != null && message.hasOwnProperty("units")) + if (!$util.isInteger(message.units) && !(message.units && $util.isInteger(message.units.low) && $util.isInteger(message.units.high))) + return "units: integer|Long expected"; + if (message.nanos != null && message.hasOwnProperty("nanos")) + if (!$util.isInteger(message.nanos)) + return "nanos: integer expected"; + return null; + }; + + /** + * Creates a Money message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.type.Money + * @static + * @param {Object.} object Plain object + * @returns {google.type.Money} Money + */ + Money.fromObject = function fromObject(object) { + if (object instanceof $root.google.type.Money) + return object; + var message = new $root.google.type.Money(); + if (object.currencyCode != null) + message.currencyCode = String(object.currencyCode); + if (object.units != null) + if ($util.Long) + (message.units = $util.Long.fromValue(object.units)).unsigned = false; + else if (typeof object.units === "string") + message.units = parseInt(object.units, 10); + else if (typeof object.units === "number") + message.units = object.units; + else if (typeof object.units === "object") + message.units = new $util.LongBits(object.units.low >>> 0, object.units.high >>> 0).toNumber(); + if (object.nanos != null) + message.nanos = object.nanos | 0; + return message; + }; + + /** + * Creates a plain object from a Money message. Also converts values to other types if specified. + * @function toObject + * @memberof google.type.Money + * @static + * @param {google.type.Money} message Money + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Money.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.currencyCode = ""; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.units = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.units = options.longs === String ? "0" : 0; + object.nanos = 0; + } + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) + object.currencyCode = message.currencyCode; + if (message.units != null && message.hasOwnProperty("units")) + if (typeof message.units === "number") + object.units = options.longs === String ? String(message.units) : message.units; + else + object.units = options.longs === String ? $util.Long.prototype.toString.call(message.units) : options.longs === Number ? new $util.LongBits(message.units.low >>> 0, message.units.high >>> 0).toNumber() : message.units; + if (message.nanos != null && message.hasOwnProperty("nanos")) + object.nanos = message.nanos; + return object; + }; + + /** + * Converts this Money to JSON. + * @function toJSON + * @memberof google.type.Money + * @instance + * @returns {Object.} JSON object + */ + Money.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Money; + })(); + + return type; + })(); + + return google; + })(); + + return $root; +}); diff --git a/packages/google-cloud-recommender/protos/protos.json b/packages/google-cloud-recommender/protos/protos.json new file mode 100644 index 00000000000..3eb73bc80c5 --- /dev/null +++ b/packages/google-cloud-recommender/protos/protos.json @@ -0,0 +1,1612 @@ +{ + "nested": { + "google": { + "nested": { + "cloud": { + "nested": { + "recommender": { + "nested": { + "v1beta1": { + "options": { + "csharp_namespace": "Google.Cloud.Recommmender.V1Beta1", + "go_package": "google.golang.org/genproto/googleapis/cloud/recommender/v1beta1;recommender", + "java_multiple_files": true, + "java_package": "com.google.cloud.recommender.v1beta1", + "objc_class_prefix": "CREC", + "(google.api.resource_definition).type": "recommender.googleapis.com/Recommender", + "(google.api.resource_definition).pattern": "projects/{project}/locations/{location}/recommenders/{recommender}", + "java_outer_classname": "RecommenderProto" + }, + "nested": { + "Recommendation": { + "options": { + "(google.api.resource).type": "recommender.googleapis.com/Recommendation", + "(google.api.resource).pattern": "projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" + }, + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "description": { + "type": "string", + "id": 2 + }, + "recommenderSubtype": { + "type": "string", + "id": 12 + }, + "lastRefreshTime": { + "type": "google.protobuf.Timestamp", + "id": 4 + }, + "primaryImpact": { + "type": "Impact", + "id": 5 + }, + "additionalImpact": { + "rule": "repeated", + "type": "Impact", + "id": 6 + }, + "content": { + "type": "RecommendationContent", + "id": 7 + }, + "stateInfo": { + "type": "RecommendationStateInfo", + "id": 10 + }, + "etag": { + "type": "string", + "id": 11 + } + } + }, + "RecommendationContent": { + "fields": { + "operationGroups": { + "rule": "repeated", + "type": "OperationGroup", + "id": 2 + } + } + }, + "OperationGroup": { + "fields": { + "operations": { + "rule": "repeated", + "type": "Operation", + "id": 1 + } + } + }, + "Operation": { + "oneofs": { + "pathValue": { + "oneof": [ + "value", + "valueMatcher" + ] + } + }, + "fields": { + "action": { + "type": "string", + "id": 1 + }, + "resourceType": { + "type": "string", + "id": 2 + }, + "resource": { + "type": "string", + "id": 3 + }, + "path": { + "type": "string", + "id": 4 + }, + "sourceResource": { + "type": "string", + "id": 5 + }, + "sourcePath": { + "type": "string", + "id": 6 + }, + "value": { + "type": "google.protobuf.Value", + "id": 7 + }, + "valueMatcher": { + "type": "ValueMatcher", + "id": 10 + }, + "pathFilters": { + "keyType": "string", + "type": "google.protobuf.Value", + "id": 8 + }, + "pathValueMatchers": { + "keyType": "string", + "type": "ValueMatcher", + "id": 11 + } + } + }, + "ValueMatcher": { + "oneofs": { + "matchVariant": { + "oneof": [ + "matchesPattern" + ] + } + }, + "fields": { + "matchesPattern": { + "type": "string", + "id": 1 + } + } + }, + "CostProjection": { + "fields": { + "cost": { + "type": "google.type.Money", + "id": 1 + }, + "duration": { + "type": "google.protobuf.Duration", + "id": 2 + } + } + }, + "Impact": { + "oneofs": { + "projection": { + "oneof": [ + "costProjection" + ] + } + }, + "fields": { + "category": { + "type": "Category", + "id": 1 + }, + "costProjection": { + "type": "CostProjection", + "id": 100 + } + }, + "nested": { + "Category": { + "values": { + "CATEGORY_UNSPECIFIED": 0, + "COST": 1, + "SECURITY": 2, + "PERFORMANCE": 3, + "MANAGEABILITY": 4 + } + } + } + }, + "RecommendationStateInfo": { + "fields": { + "state": { + "type": "State", + "id": 1 + }, + "stateMetadata": { + "keyType": "string", + "type": "string", + "id": 2 + } + }, + "nested": { + "State": { + "values": { + "STATE_UNSPECIFIED": 0, + "ACTIVE": 1, + "CLAIMED": 6, + "SUCCEEDED": 3, + "FAILED": 4, + "DISMISSED": 5 + } + } + } + }, + "Recommender": { + "options": { + "(google.api.default_host)": "recommender.googleapis.com", + "(google.api.oauth_scopes)": "https://www.googleapis.com/auth/cloud-platform" + }, + "methods": { + "ListRecommendations": { + "requestType": "ListRecommendationsRequest", + "responseType": "ListRecommendationsResponse", + "options": { + "(google.api.http).get": "/v1beta1/{parent=projects/*/locations/*/recommenders/*}/recommendations", + "(google.api.method_signature)": "parent,filter" + } + }, + "GetRecommendation": { + "requestType": "GetRecommendationRequest", + "responseType": "Recommendation", + "options": { + "(google.api.http).get": "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}", + "(google.api.method_signature)": "name" + } + }, + "MarkRecommendationClaimed": { + "requestType": "MarkRecommendationClaimedRequest", + "responseType": "Recommendation", + "options": { + "(google.api.http).post": "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed", + "(google.api.http).body": "*", + "(google.api.method_signature)": "name,state_metadata,etag" + } + }, + "MarkRecommendationSucceeded": { + "requestType": "MarkRecommendationSucceededRequest", + "responseType": "Recommendation", + "options": { + "(google.api.http).post": "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", + "(google.api.http).body": "*", + "(google.api.method_signature)": "name,state_metadata,etag" + } + }, + "MarkRecommendationFailed": { + "requestType": "MarkRecommendationFailedRequest", + "responseType": "Recommendation", + "options": { + "(google.api.http).post": "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed", + "(google.api.http).body": "*", + "(google.api.method_signature)": "name,state_metadata,etag" + } + } + } + }, + "ListRecommendationsRequest": { + "fields": { + "parent": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "recommender.googleapis.com/Recommender" + } + }, + "pageSize": { + "type": "int32", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "pageToken": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "filter": { + "type": "string", + "id": 5 + } + } + }, + "ListRecommendationsResponse": { + "fields": { + "recommendations": { + "rule": "repeated", + "type": "Recommendation", + "id": 1 + }, + "nextPageToken": { + "type": "string", + "id": 2 + } + } + }, + "GetRecommendationRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "recommender.googleapis.com/Recommendation" + } + } + } + }, + "MarkRecommendationClaimedRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "recommender.googleapis.com/Recommendation" + } + }, + "stateMetadata": { + "keyType": "string", + "type": "string", + "id": 2 + }, + "etag": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + } + } + }, + "MarkRecommendationSucceededRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "recommender.googleapis.com/Recommendation" + } + }, + "stateMetadata": { + "keyType": "string", + "type": "string", + "id": 2 + }, + "etag": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + } + } + }, + "MarkRecommendationFailedRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "recommender.googleapis.com/Recommendation" + } + }, + "stateMetadata": { + "keyType": "string", + "type": "string", + "id": 2 + }, + "etag": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + } + } + } + } + } + } + } + } + }, + "api": { + "options": { + "cc_enable_arenas": true, + "go_package": "google.golang.org/genproto/googleapis/api/annotations;annotations", + "java_multiple_files": true, + "java_outer_classname": "FieldBehaviorProto", + "java_package": "com.google.api", + "objc_class_prefix": "GAPI" + }, + "nested": { + "resourceReference": { + "type": "google.api.ResourceReference", + "id": 1055, + "extend": "google.protobuf.FieldOptions" + }, + "resourceDefinition": { + "rule": "repeated", + "type": "google.api.ResourceDescriptor", + "id": 1053, + "extend": "google.protobuf.FileOptions" + }, + "resource": { + "type": "google.api.ResourceDescriptor", + "id": 1053, + "extend": "google.protobuf.MessageOptions" + }, + "ResourceDescriptor": { + "fields": { + "type": { + "type": "string", + "id": 1 + }, + "pattern": { + "rule": "repeated", + "type": "string", + "id": 2 + }, + "nameField": { + "type": "string", + "id": 3 + }, + "history": { + "type": "History", + "id": 4 + }, + "plural": { + "type": "string", + "id": 5 + }, + "singular": { + "type": "string", + "id": 6 + } + }, + "nested": { + "History": { + "values": { + "HISTORY_UNSPECIFIED": 0, + "ORIGINALLY_SINGLE_PATTERN": 1, + "FUTURE_MULTI_PATTERN": 2 + } + } + } + }, + "ResourceReference": { + "fields": { + "type": { + "type": "string", + "id": 1 + }, + "childType": { + "type": "string", + "id": 2 + } + } + }, + "http": { + "type": "HttpRule", + "id": 72295728, + "extend": "google.protobuf.MethodOptions" + }, + "Http": { + "fields": { + "rules": { + "rule": "repeated", + "type": "HttpRule", + "id": 1 + }, + "fullyDecodeReservedExpansion": { + "type": "bool", + "id": 2 + } + } + }, + "HttpRule": { + "oneofs": { + "pattern": { + "oneof": [ + "get", + "put", + "post", + "delete", + "patch", + "custom" + ] + } + }, + "fields": { + "selector": { + "type": "string", + "id": 1 + }, + "get": { + "type": "string", + "id": 2 + }, + "put": { + "type": "string", + "id": 3 + }, + "post": { + "type": "string", + "id": 4 + }, + "delete": { + "type": "string", + "id": 5 + }, + "patch": { + "type": "string", + "id": 6 + }, + "custom": { + "type": "CustomHttpPattern", + "id": 8 + }, + "body": { + "type": "string", + "id": 7 + }, + "responseBody": { + "type": "string", + "id": 12 + }, + "additionalBindings": { + "rule": "repeated", + "type": "HttpRule", + "id": 11 + } + } + }, + "CustomHttpPattern": { + "fields": { + "kind": { + "type": "string", + "id": 1 + }, + "path": { + "type": "string", + "id": 2 + } + } + }, + "methodSignature": { + "rule": "repeated", + "type": "string", + "id": 1051, + "extend": "google.protobuf.MethodOptions" + }, + "defaultHost": { + "type": "string", + "id": 1049, + "extend": "google.protobuf.ServiceOptions" + }, + "oauthScopes": { + "type": "string", + "id": 1050, + "extend": "google.protobuf.ServiceOptions" + }, + "fieldBehavior": { + "rule": "repeated", + "type": "google.api.FieldBehavior", + "id": 1052, + "extend": "google.protobuf.FieldOptions" + }, + "FieldBehavior": { + "values": { + "FIELD_BEHAVIOR_UNSPECIFIED": 0, + "OPTIONAL": 1, + "REQUIRED": 2, + "OUTPUT_ONLY": 3, + "INPUT_ONLY": 4, + "IMMUTABLE": 5 + } + } + } + }, + "protobuf": { + "options": { + "go_package": "github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor", + "java_package": "com.google.protobuf", + "java_outer_classname": "DescriptorProtos", + "csharp_namespace": "Google.Protobuf.Reflection", + "objc_class_prefix": "GPB", + "cc_enable_arenas": true, + "optimize_for": "SPEED" + }, + "nested": { + "FileDescriptorSet": { + "fields": { + "file": { + "rule": "repeated", + "type": "FileDescriptorProto", + "id": 1 + } + } + }, + "FileDescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "package": { + "type": "string", + "id": 2 + }, + "dependency": { + "rule": "repeated", + "type": "string", + "id": 3 + }, + "publicDependency": { + "rule": "repeated", + "type": "int32", + "id": 10, + "options": { + "packed": false + } + }, + "weakDependency": { + "rule": "repeated", + "type": "int32", + "id": 11, + "options": { + "packed": false + } + }, + "messageType": { + "rule": "repeated", + "type": "DescriptorProto", + "id": 4 + }, + "enumType": { + "rule": "repeated", + "type": "EnumDescriptorProto", + "id": 5 + }, + "service": { + "rule": "repeated", + "type": "ServiceDescriptorProto", + "id": 6 + }, + "extension": { + "rule": "repeated", + "type": "FieldDescriptorProto", + "id": 7 + }, + "options": { + "type": "FileOptions", + "id": 8 + }, + "sourceCodeInfo": { + "type": "SourceCodeInfo", + "id": 9 + }, + "syntax": { + "type": "string", + "id": 12 + } + } + }, + "DescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "field": { + "rule": "repeated", + "type": "FieldDescriptorProto", + "id": 2 + }, + "extension": { + "rule": "repeated", + "type": "FieldDescriptorProto", + "id": 6 + }, + "nestedType": { + "rule": "repeated", + "type": "DescriptorProto", + "id": 3 + }, + "enumType": { + "rule": "repeated", + "type": "EnumDescriptorProto", + "id": 4 + }, + "extensionRange": { + "rule": "repeated", + "type": "ExtensionRange", + "id": 5 + }, + "oneofDecl": { + "rule": "repeated", + "type": "OneofDescriptorProto", + "id": 8 + }, + "options": { + "type": "MessageOptions", + "id": 7 + }, + "reservedRange": { + "rule": "repeated", + "type": "ReservedRange", + "id": 9 + }, + "reservedName": { + "rule": "repeated", + "type": "string", + "id": 10 + } + }, + "nested": { + "ExtensionRange": { + "fields": { + "start": { + "type": "int32", + "id": 1 + }, + "end": { + "type": "int32", + "id": 2 + }, + "options": { + "type": "ExtensionRangeOptions", + "id": 3 + } + } + }, + "ReservedRange": { + "fields": { + "start": { + "type": "int32", + "id": 1 + }, + "end": { + "type": "int32", + "id": 2 + } + } + } + } + }, + "ExtensionRangeOptions": { + "fields": { + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ] + }, + "FieldDescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "number": { + "type": "int32", + "id": 3 + }, + "label": { + "type": "Label", + "id": 4 + }, + "type": { + "type": "Type", + "id": 5 + }, + "typeName": { + "type": "string", + "id": 6 + }, + "extendee": { + "type": "string", + "id": 2 + }, + "defaultValue": { + "type": "string", + "id": 7 + }, + "oneofIndex": { + "type": "int32", + "id": 9 + }, + "jsonName": { + "type": "string", + "id": 10 + }, + "options": { + "type": "FieldOptions", + "id": 8 + } + }, + "nested": { + "Type": { + "values": { + "TYPE_DOUBLE": 1, + "TYPE_FLOAT": 2, + "TYPE_INT64": 3, + "TYPE_UINT64": 4, + "TYPE_INT32": 5, + "TYPE_FIXED64": 6, + "TYPE_FIXED32": 7, + "TYPE_BOOL": 8, + "TYPE_STRING": 9, + "TYPE_GROUP": 10, + "TYPE_MESSAGE": 11, + "TYPE_BYTES": 12, + "TYPE_UINT32": 13, + "TYPE_ENUM": 14, + "TYPE_SFIXED32": 15, + "TYPE_SFIXED64": 16, + "TYPE_SINT32": 17, + "TYPE_SINT64": 18 + } + }, + "Label": { + "values": { + "LABEL_OPTIONAL": 1, + "LABEL_REQUIRED": 2, + "LABEL_REPEATED": 3 + } + } + } + }, + "OneofDescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "options": { + "type": "OneofOptions", + "id": 2 + } + } + }, + "EnumDescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "value": { + "rule": "repeated", + "type": "EnumValueDescriptorProto", + "id": 2 + }, + "options": { + "type": "EnumOptions", + "id": 3 + }, + "reservedRange": { + "rule": "repeated", + "type": "EnumReservedRange", + "id": 4 + }, + "reservedName": { + "rule": "repeated", + "type": "string", + "id": 5 + } + }, + "nested": { + "EnumReservedRange": { + "fields": { + "start": { + "type": "int32", + "id": 1 + }, + "end": { + "type": "int32", + "id": 2 + } + } + } + } + }, + "EnumValueDescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "number": { + "type": "int32", + "id": 2 + }, + "options": { + "type": "EnumValueOptions", + "id": 3 + } + } + }, + "ServiceDescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "method": { + "rule": "repeated", + "type": "MethodDescriptorProto", + "id": 2 + }, + "options": { + "type": "ServiceOptions", + "id": 3 + } + } + }, + "MethodDescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "inputType": { + "type": "string", + "id": 2 + }, + "outputType": { + "type": "string", + "id": 3 + }, + "options": { + "type": "MethodOptions", + "id": 4 + }, + "clientStreaming": { + "type": "bool", + "id": 5, + "options": { + "default": false + } + }, + "serverStreaming": { + "type": "bool", + "id": 6, + "options": { + "default": false + } + } + } + }, + "FileOptions": { + "fields": { + "javaPackage": { + "type": "string", + "id": 1 + }, + "javaOuterClassname": { + "type": "string", + "id": 8 + }, + "javaMultipleFiles": { + "type": "bool", + "id": 10, + "options": { + "default": false + } + }, + "javaGenerateEqualsAndHash": { + "type": "bool", + "id": 20, + "options": { + "deprecated": true + } + }, + "javaStringCheckUtf8": { + "type": "bool", + "id": 27, + "options": { + "default": false + } + }, + "optimizeFor": { + "type": "OptimizeMode", + "id": 9, + "options": { + "default": "SPEED" + } + }, + "goPackage": { + "type": "string", + "id": 11 + }, + "ccGenericServices": { + "type": "bool", + "id": 16, + "options": { + "default": false + } + }, + "javaGenericServices": { + "type": "bool", + "id": 17, + "options": { + "default": false + } + }, + "pyGenericServices": { + "type": "bool", + "id": 18, + "options": { + "default": false + } + }, + "phpGenericServices": { + "type": "bool", + "id": 42, + "options": { + "default": false + } + }, + "deprecated": { + "type": "bool", + "id": 23, + "options": { + "default": false + } + }, + "ccEnableArenas": { + "type": "bool", + "id": 31, + "options": { + "default": false + } + }, + "objcClassPrefix": { + "type": "string", + "id": 36 + }, + "csharpNamespace": { + "type": "string", + "id": 37 + }, + "swiftPrefix": { + "type": "string", + "id": 39 + }, + "phpClassPrefix": { + "type": "string", + "id": 40 + }, + "phpNamespace": { + "type": "string", + "id": 41 + }, + "phpMetadataNamespace": { + "type": "string", + "id": 44 + }, + "rubyPackage": { + "type": "string", + "id": 45 + }, + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ], + "reserved": [ + [ + 38, + 38 + ] + ], + "nested": { + "OptimizeMode": { + "values": { + "SPEED": 1, + "CODE_SIZE": 2, + "LITE_RUNTIME": 3 + } + } + } + }, + "MessageOptions": { + "fields": { + "messageSetWireFormat": { + "type": "bool", + "id": 1, + "options": { + "default": false + } + }, + "noStandardDescriptorAccessor": { + "type": "bool", + "id": 2, + "options": { + "default": false + } + }, + "deprecated": { + "type": "bool", + "id": 3, + "options": { + "default": false + } + }, + "mapEntry": { + "type": "bool", + "id": 7 + }, + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ], + "reserved": [ + [ + 8, + 8 + ], + [ + 9, + 9 + ] + ] + }, + "FieldOptions": { + "fields": { + "ctype": { + "type": "CType", + "id": 1, + "options": { + "default": "STRING" + } + }, + "packed": { + "type": "bool", + "id": 2 + }, + "jstype": { + "type": "JSType", + "id": 6, + "options": { + "default": "JS_NORMAL" + } + }, + "lazy": { + "type": "bool", + "id": 5, + "options": { + "default": false + } + }, + "deprecated": { + "type": "bool", + "id": 3, + "options": { + "default": false + } + }, + "weak": { + "type": "bool", + "id": 10, + "options": { + "default": false + } + }, + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ], + "reserved": [ + [ + 4, + 4 + ] + ], + "nested": { + "CType": { + "values": { + "STRING": 0, + "CORD": 1, + "STRING_PIECE": 2 + } + }, + "JSType": { + "values": { + "JS_NORMAL": 0, + "JS_STRING": 1, + "JS_NUMBER": 2 + } + } + } + }, + "OneofOptions": { + "fields": { + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ] + }, + "EnumOptions": { + "fields": { + "allowAlias": { + "type": "bool", + "id": 2 + }, + "deprecated": { + "type": "bool", + "id": 3, + "options": { + "default": false + } + }, + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ], + "reserved": [ + [ + 5, + 5 + ] + ] + }, + "EnumValueOptions": { + "fields": { + "deprecated": { + "type": "bool", + "id": 1, + "options": { + "default": false + } + }, + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ] + }, + "ServiceOptions": { + "fields": { + "deprecated": { + "type": "bool", + "id": 33, + "options": { + "default": false + } + }, + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ] + }, + "MethodOptions": { + "fields": { + "deprecated": { + "type": "bool", + "id": 33, + "options": { + "default": false + } + }, + "idempotencyLevel": { + "type": "IdempotencyLevel", + "id": 34, + "options": { + "default": "IDEMPOTENCY_UNKNOWN" + } + }, + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ], + "nested": { + "IdempotencyLevel": { + "values": { + "IDEMPOTENCY_UNKNOWN": 0, + "NO_SIDE_EFFECTS": 1, + "IDEMPOTENT": 2 + } + } + } + }, + "UninterpretedOption": { + "fields": { + "name": { + "rule": "repeated", + "type": "NamePart", + "id": 2 + }, + "identifierValue": { + "type": "string", + "id": 3 + }, + "positiveIntValue": { + "type": "uint64", + "id": 4 + }, + "negativeIntValue": { + "type": "int64", + "id": 5 + }, + "doubleValue": { + "type": "double", + "id": 6 + }, + "stringValue": { + "type": "bytes", + "id": 7 + }, + "aggregateValue": { + "type": "string", + "id": 8 + } + }, + "nested": { + "NamePart": { + "fields": { + "namePart": { + "rule": "required", + "type": "string", + "id": 1 + }, + "isExtension": { + "rule": "required", + "type": "bool", + "id": 2 + } + } + } + } + }, + "SourceCodeInfo": { + "fields": { + "location": { + "rule": "repeated", + "type": "Location", + "id": 1 + } + }, + "nested": { + "Location": { + "fields": { + "path": { + "rule": "repeated", + "type": "int32", + "id": 1 + }, + "span": { + "rule": "repeated", + "type": "int32", + "id": 2 + }, + "leadingComments": { + "type": "string", + "id": 3 + }, + "trailingComments": { + "type": "string", + "id": 4 + }, + "leadingDetachedComments": { + "rule": "repeated", + "type": "string", + "id": 6 + } + } + } + } + }, + "GeneratedCodeInfo": { + "fields": { + "annotation": { + "rule": "repeated", + "type": "Annotation", + "id": 1 + } + }, + "nested": { + "Annotation": { + "fields": { + "path": { + "rule": "repeated", + "type": "int32", + "id": 1 + }, + "sourceFile": { + "type": "string", + "id": 2 + }, + "begin": { + "type": "int32", + "id": 3 + }, + "end": { + "type": "int32", + "id": 4 + } + } + } + } + }, + "Duration": { + "fields": { + "seconds": { + "type": "int64", + "id": 1 + }, + "nanos": { + "type": "int32", + "id": 2 + } + } + }, + "Struct": { + "fields": { + "fields": { + "keyType": "string", + "type": "Value", + "id": 1 + } + } + }, + "Value": { + "oneofs": { + "kind": { + "oneof": [ + "nullValue", + "numberValue", + "stringValue", + "boolValue", + "structValue", + "listValue" + ] + } + }, + "fields": { + "nullValue": { + "type": "NullValue", + "id": 1 + }, + "numberValue": { + "type": "double", + "id": 2 + }, + "stringValue": { + "type": "string", + "id": 3 + }, + "boolValue": { + "type": "bool", + "id": 4 + }, + "structValue": { + "type": "Struct", + "id": 5 + }, + "listValue": { + "type": "ListValue", + "id": 6 + } + } + }, + "NullValue": { + "values": { + "NULL_VALUE": 0 + } + }, + "ListValue": { + "fields": { + "values": { + "rule": "repeated", + "type": "Value", + "id": 1 + } + } + }, + "Timestamp": { + "fields": { + "seconds": { + "type": "int64", + "id": 1 + }, + "nanos": { + "type": "int32", + "id": 2 + } + } + } + } + }, + "type": { + "options": { + "cc_enable_arenas": true, + "go_package": "google.golang.org/genproto/googleapis/type/money;money", + "java_multiple_files": true, + "java_outer_classname": "MoneyProto", + "java_package": "com.google.type", + "objc_class_prefix": "GTP" + }, + "nested": { + "Money": { + "fields": { + "currencyCode": { + "type": "string", + "id": 1 + }, + "units": { + "type": "int64", + "id": 2 + }, + "nanos": { + "type": "int32", + "id": 3 + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json new file mode 100644 index 00000000000..167e9721bf2 --- /dev/null +++ b/packages/google-cloud-recommender/samples/package.json @@ -0,0 +1,23 @@ +{ + "name": "nodejs-recommender", + "private": true, + "license": "Apache-2.0", + "author": "Google LLC", + "engines": { + "node": ">=10" + }, + "files": [ + "*.js" + ], + "scripts": { + "test": "c8 mocha --timeout 600000 test/*.js" + }, + "dependencies": { + "@google-cloud/recommender": "^0.1.0" + }, + "devDependencies": { + "c8": "^5.0.1", + "chai": "^4.2.0", + "mocha": "^6.1.4" + } +} diff --git a/packages/google-cloud-recommender/samples/quickstart.js b/packages/google-cloud-recommender/samples/quickstart.js new file mode 100644 index 00000000000..a8314c5ad34 --- /dev/null +++ b/packages/google-cloud-recommender/samples/quickstart.js @@ -0,0 +1,52 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +'use strict'; + +/** + * List usage recommendations for a given product. + * @param {string} project + * @param {string} recommenderName + */ +async function main( + project = 'my-project', + recommenderId = 'google.compute.instance.MachineTypeRecommender' +) { + // [START recommender_quickstart] + async function listRecommendations() { + const {RecommenderClient} = require('@google-cloud/recommender'); + const recommender = new RecommenderClient(); + + // parent = 'projects/my-project'; // Project to fetch recommendations for. + // recommenderId = 'google.compute.instance.MachineTypeRecommender'; + + const [recommendations] = await recommender.listRecommendations({ + parent: recommender.recommenderPath(project, 'global', recommenderId), + }); + console.info(`recommendations for ${recommenderId}:`); + for (const recommendation of recommendations) { + console.info(recommendation); + } + return recommendations; + } + const recommendations = await listRecommendations(); + // [END recommender_quickstart] + return recommendations; +} + +main(...process.argv.slice(2)).catch(err => { + console.error(err); + process.exitCode = 1; +}); diff --git a/packages/google-cloud-recommender/samples/test/quickstart.js b/packages/google-cloud-recommender/samples/test/quickstart.js new file mode 100644 index 00000000000..c8ca50fcedd --- /dev/null +++ b/packages/google-cloud-recommender/samples/test/quickstart.js @@ -0,0 +1,38 @@ +// Copyright 2019 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. ** + +'use strict'; + +const path = require('path'); +const cp = require('child_process'); +const {expect} = require('chai'); +const {describe, it} = require('mocha'); + +const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); + +const cwd = path.join(__dirname, '..'); + +describe('Quickstart', () => { + it('should run quickstart', async () => { + const stdout = execSync( + `node ./quickstart.js ${process.env.GCLOUD_PROJECT}`, + {cwd} + ); + expect(stdout).to.include('recommendations for'); + }); +}); diff --git a/packages/google-cloud-recommender/src/index.ts b/packages/google-cloud-recommender/src/index.ts new file mode 100644 index 00000000000..f1f340524fc --- /dev/null +++ b/packages/google-cloud-recommender/src/index.ts @@ -0,0 +1,24 @@ +// Copyright 2019 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. ** + +import * as v1beta1 from './v1beta1'; +const RecommenderClient = v1beta1.RecommenderClient; +export {v1beta1, RecommenderClient}; +// For compatibility with JavaScript libraries we need to provide this default export: +// tslint:disable-next-line no-default-export +export default {v1beta1, RecommenderClient}; diff --git a/packages/google-cloud-recommender/src/v1beta1/index.ts b/packages/google-cloud-recommender/src/v1beta1/index.ts new file mode 100644 index 00000000000..e715b699542 --- /dev/null +++ b/packages/google-cloud-recommender/src/v1beta1/index.ts @@ -0,0 +1,19 @@ +// Copyright 2019 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. ** + +export {RecommenderClient} from './recommender_client'; diff --git a/packages/google-cloud-recommender/src/v1beta1/recommender_client.ts b/packages/google-cloud-recommender/src/v1beta1/recommender_client.ts new file mode 100644 index 00000000000..fc8c98e5c5d --- /dev/null +++ b/packages/google-cloud-recommender/src/v1beta1/recommender_client.ts @@ -0,0 +1,971 @@ +// Copyright 2019 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. ** + +import * as gax from 'google-gax'; +import { + APICallback, + Callback, + CallOptions, + Descriptors, + ClientOptions, + PaginationCallback, + PaginationResponse, +} from 'google-gax'; +import * as path from 'path'; + +import {Transform} from 'stream'; +import * as protosTypes from '../../protos/protos'; +import * as gapicConfig from './recommender_client_config.json'; + +const version = require('../../../package.json').version; + +/** + * Provides insights and recommendations for cloud customers for various + * categories like performance optimization, cost savings, reliability, feature + * discovery, etc. Insights and recommendations are generated automatically + * based on analysis of user resources, configuration and monitoring metrics. + * @class + * @memberof v1beta1 + */ +export class RecommenderClient { + private _descriptors: Descriptors = {page: {}, stream: {}, longrunning: {}}; + private _innerApiCalls: {[name: string]: Function}; + private _pathTemplates: {[name: string]: gax.PathTemplate}; + private _terminated = false; + auth: gax.GoogleAuth; + recommenderStub: Promise<{[name: string]: Function}>; + + /** + * Construct an instance of RecommenderClient. + * + * @param {object} [options] - The configuration object. See the subsequent + * parameters for more details. + * @param {object} [options.credentials] - Credentials object. + * @param {string} [options.credentials.client_email] + * @param {string} [options.credentials.private_key] + * @param {string} [options.email] - Account email address. Required when + * using a .pem or .p12 keyFilename. + * @param {string} [options.keyFilename] - Full path to the a .json, .pem, or + * .p12 key downloaded from the Google Developers Console. If you provide + * a path to a JSON file, the projectId option below is not necessary. + * NOTE: .pem and .p12 require you to specify options.email as well. + * @param {number} [options.port] - The port on which to connect to + * the remote host. + * @param {string} [options.projectId] - The project ID from the Google + * Developer's Console, e.g. 'grape-spaceship-123'. We will also check + * the environment variable GCLOUD_PROJECT for your project ID. If your + * app is running in an environment which supports + * {@link https://developers.google.com/identity/protocols/application-default-credentials Application Default Credentials}, + * your project ID will be detected automatically. + * @param {function} [options.promise] - Custom promise module to use instead + * of native Promises. + * @param {string} [options.apiEndpoint] - The domain name of the + * API remote host. + */ + + constructor(opts?: ClientOptions) { + // Ensure that options include the service address and port. + const staticMembers = this.constructor as typeof RecommenderClient; + const servicePath = + opts && opts.servicePath + ? opts.servicePath + : opts && opts.apiEndpoint + ? opts.apiEndpoint + : staticMembers.servicePath; + const port = opts && opts.port ? opts.port : staticMembers.port; + + if (!opts) { + opts = {servicePath, port}; + } + opts.servicePath = opts.servicePath || servicePath; + opts.port = opts.port || port; + opts.clientConfig = opts.clientConfig || {}; + + const isBrowser = typeof window !== 'undefined'; + if (isBrowser) { + opts.fallback = true; + } + // If we are in browser, we are already using fallback because of the + // "browser" field in package.json. + // But if we were explicitly requested to use fallback, let's do it now. + const gaxModule = !isBrowser && opts.fallback ? gax.fallback : gax; + + // Create a `gaxGrpc` object, with any grpc-specific options + // sent to the client. + opts.scopes = (this.constructor as typeof RecommenderClient).scopes; + const gaxGrpc = new gaxModule.GrpcClient(opts); + + // Save the auth object to the client, for use by other methods. + this.auth = gaxGrpc.auth as gax.GoogleAuth; + + // Determine the client header string. + const clientHeader = [`gax/${gaxModule.version}`, `gapic/${version}`]; + if (typeof process !== 'undefined' && 'versions' in process) { + clientHeader.push(`gl-node/${process.versions.node}`); + } else { + clientHeader.push(`gl-web/${gaxModule.version}`); + } + if (!opts.fallback) { + clientHeader.push(`grpc/${gaxGrpc.grpcVersion}`); + } + if (opts.libName && opts.libVersion) { + clientHeader.push(`${opts.libName}/${opts.libVersion}`); + } + // Load the applicable protos. + // For Node.js, pass the path to JSON proto file. + // For browsers, pass the JSON content. + + const nodejsProtoPath = path.join( + __dirname, + '..', + '..', + 'protos', + 'protos.json' + ); + const protos = gaxGrpc.loadProto( + opts.fallback ? require('../../protos/protos.json') : nodejsProtoPath + ); + + // This API contains "path templates"; forward-slash-separated + // identifiers to uniquely identify resources within the API. + // Create useful helper objects for these. + this._pathTemplates = { + recommenderPathTemplate: new gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/recommenders/{recommender}' + ), + recommendationPathTemplate: new gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' + ), + }; + + // Some of the methods on this service return "paged" results, + // (e.g. 50 results at a time, with tokens to get subsequent + // pages). Denote the keys used for pagination and results. + this._descriptors.page = { + listRecommendations: new gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'recommendations' + ), + }; + + // Put together the default options sent with requests. + const defaults = gaxGrpc.constructSettings( + 'google.cloud.recommender.v1beta1.Recommender', + 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 + // merely providing the destination and request information. + this._innerApiCalls = {}; + + // Put together the "service stub" for + // google.cloud.recommender.v1beta1.Recommender. + this.recommenderStub = gaxGrpc.createStub( + opts.fallback + ? (protos as protobuf.Root).lookupService( + 'google.cloud.recommender.v1beta1.Recommender' + ) + : // tslint:disable-next-line no-any + (protos as any).google.cloud.recommender.v1beta1.Recommender, + opts + ) as Promise<{[method: string]: Function}>; + + // Iterate over each of the methods that the service provides + // and create an API call method for each. + const recommenderStubMethods = [ + 'listRecommendations', + 'getRecommendation', + 'markRecommendationClaimed', + 'markRecommendationSucceeded', + 'markRecommendationFailed', + ]; + + for (const methodName of recommenderStubMethods) { + const innerCallPromise = this.recommenderStub.then( + stub => (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + return stub[methodName].apply(stub, args); + }, + (err: Error | null | undefined) => () => { + throw err; + } + ); + + const apiCall = gaxModule.createApiCall( + innerCallPromise, + defaults[methodName], + this._descriptors.page[methodName] || + this._descriptors.stream[methodName] || + this._descriptors.longrunning[methodName] + ); + + this._innerApiCalls[methodName] = ( + argument: {}, + callOptions?: CallOptions, + callback?: APICallback + ) => { + return apiCall(argument, callOptions, callback); + }; + } + } + + /** + * The DNS address for this API service. + */ + static get servicePath() { + return 'recommender.googleapis.com'; + } + + /** + * The DNS address for this API service - same as servicePath(), + * exists for compatibility reasons. + */ + static get apiEndpoint() { + return 'recommender.googleapis.com'; + } + + /** + * The port for this API service. + */ + static get port() { + return 443; + } + + /** + * The scopes needed to make gRPC calls for every method defined + * in this service. + */ + static get scopes() { + return ['https://www.googleapis.com/auth/cloud-platform']; + } + + getProjectId(): Promise; + getProjectId(callback: Callback): void; + /** + * Return the project ID used by this class. + * @param {function(Error, string)} callback - the callback to + * be called with the current project Id. + */ + getProjectId( + callback?: Callback + ): Promise | void { + if (callback) { + this.auth.getProjectId(callback); + return; + } + return this.auth.getProjectId(); + } + + // ------------------- + // -- Service calls -- + // ------------------- + getRecommendation( + request: protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest, + options?: gax.CallOptions + ): Promise< + [ + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + ( + | protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest + | undefined + ), + {} | undefined + ] + >; + getRecommendation( + request: protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest, + options: gax.CallOptions, + callback: Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + | protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest + | undefined, + {} | undefined + > + ): void; + /** + * Gets the requested recommendation. Requires the recommender.*.get + * IAM permission for the specified recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the recommendation. + * @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 [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ + getRecommendation( + request: protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest, + optionsOrCallback?: + | gax.CallOptions + | Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + | protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest + | undefined, + {} | undefined + >, + callback?: Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + | protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest + | undefined, + {} | undefined + > + ): Promise< + [ + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + ( + | protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest + | undefined + ), + {} | undefined + ] + > | void { + request = request || {}; + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + name: request.name || '', + }); + return this._innerApiCalls.getRecommendation(request, options, callback); + } + markRecommendationClaimed( + request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest, + options?: gax.CallOptions + ): Promise< + [ + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + ( + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest + | undefined + ), + {} | undefined + ] + >; + markRecommendationClaimed( + request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest, + options: gax.CallOptions, + callback: Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest + | undefined, + {} | undefined + > + ): void; + /** + * Marks the Recommendation State as Claimed. Users can use this method to + * indicate to the Recommender API that they are starting to apply the + * recommendation themselves. This stops the recommendation content from being + * updated. Associated insights are frozen and placed in the ACCEPTED state. + * + * MarkRecommendationClaimed can be applied to recommendations in CLAIMED or + * ACTIVE state. + * + * Requires the recommender.*.update IAM permission for the specified + * recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the recommendation. + * @param {number[]} request.stateMetadata + * State properties to include with this state. Overwrites any existing + * `state_metadata`. + * Keys must match the regex /^[a-z0-9][a-z0-9_.-]{0,62}$/. + * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. + * @param {string} request.etag + * Required. Fingerprint of the Recommendation. Provides optimistic locking. + * @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 [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ + markRecommendationClaimed( + request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest, + optionsOrCallback?: + | gax.CallOptions + | Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest + | undefined, + {} | undefined + >, + callback?: Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest + | undefined, + {} | undefined + > + ): Promise< + [ + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + ( + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest + | undefined + ), + {} | undefined + ] + > | void { + request = request || {}; + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + name: request.name || '', + }); + return this._innerApiCalls.markRecommendationClaimed( + request, + options, + callback + ); + } + markRecommendationSucceeded( + request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest, + options?: gax.CallOptions + ): Promise< + [ + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + ( + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest + | undefined + ), + {} | undefined + ] + >; + markRecommendationSucceeded( + request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest, + options: gax.CallOptions, + callback: Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest + | undefined, + {} | undefined + > + ): void; + /** + * Marks the Recommendation State as Succeeded. Users can use this method to + * indicate to the Recommender API that they have applied the recommendation + * themselves, and the operation was successful. This stops the recommendation + * content from being updated. Associated insights are frozen and placed in + * the ACCEPTED state. + * + * MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, + * CLAIMED, SUCCEEDED, or FAILED state. + * + * Requires the recommender.*.update IAM permission for the specified + * recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the recommendation. + * @param {number[]} request.stateMetadata + * State properties to include with this state. Overwrites any existing + * `state_metadata`. + * Keys must match the regex /^[a-z0-9][a-z0-9_.-]{0,62}$/. + * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. + * @param {string} request.etag + * Required. Fingerprint of the Recommendation. Provides optimistic locking. + * @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 [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ + markRecommendationSucceeded( + request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest, + optionsOrCallback?: + | gax.CallOptions + | Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest + | undefined, + {} | undefined + >, + callback?: Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest + | undefined, + {} | undefined + > + ): Promise< + [ + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + ( + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest + | undefined + ), + {} | undefined + ] + > | void { + request = request || {}; + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + name: request.name || '', + }); + return this._innerApiCalls.markRecommendationSucceeded( + request, + options, + callback + ); + } + markRecommendationFailed( + request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest, + options?: gax.CallOptions + ): Promise< + [ + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + ( + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest + | undefined + ), + {} | undefined + ] + >; + markRecommendationFailed( + request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest, + options: gax.CallOptions, + callback: Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest + | undefined, + {} | undefined + > + ): void; + /** + * Marks the Recommendation State as Failed. Users can use this method to + * indicate to the Recommender API that they have applied the recommendation + * themselves, and the operation failed. This stops the recommendation content + * from being updated. Associated insights are frozen and placed in the + * ACCEPTED state. + * + * MarkRecommendationFailed can be applied to recommendations in ACTIVE, + * CLAIMED, SUCCEEDED, or FAILED state. + * + * Requires the recommender.*.update IAM permission for the specified + * recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the recommendation. + * @param {number[]} request.stateMetadata + * State properties to include with this state. Overwrites any existing + * `state_metadata`. + * Keys must match the regex /^[a-z0-9][a-z0-9_.-]{0,62}$/. + * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. + * @param {string} request.etag + * Required. Fingerprint of the Recommendation. Provides optimistic locking. + * @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 [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ + markRecommendationFailed( + request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest, + optionsOrCallback?: + | gax.CallOptions + | Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest + | undefined, + {} | undefined + >, + callback?: Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest + | undefined, + {} | undefined + > + ): Promise< + [ + protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + ( + | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest + | undefined + ), + {} | undefined + ] + > | void { + request = request || {}; + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + name: request.name || '', + }); + return this._innerApiCalls.markRecommendationFailed( + request, + options, + callback + ); + } + + listRecommendations( + request: protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest, + options?: gax.CallOptions + ): Promise< + [ + protosTypes.google.cloud.recommender.v1beta1.IRecommendation[], + protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest | null, + protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsResponse + ] + >; + listRecommendations( + request: protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest, + options: gax.CallOptions, + callback: Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation[], + protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest | null, + protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsResponse + > + ): void; + /** + * Lists recommendations for a Cloud project. Requires the recommender.*.list + * IAM permission for the specified recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The container resource on which to execute the request. + * Acceptable formats: + * + * 1. + * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", + * + * LOCATION here refers to GCP Locations: + * https://cloud.google.com/about/locations/ + * @param {number} [request.pageSize] + * Optional. The maximum number of results to return from this request. Non-positive + * values are ignored. If not specified, the server will determine the number + * of results to return. + * @param {string} [request.pageToken] + * Optional. If present, retrieves the next batch of results from the preceding call to + * this method. `page_token` must be the value of `next_page_token` from the + * previous response. The values of other method parameters must be identical + * to those in the previous call. + * @param {string} request.filter + * Filter expression to restrict the recommendations returned. Supported + * filter fields: state_info.state + * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" + * @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 [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation}. + * The client library support 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. + * + * When autoPaginate: false is specified through options, the array has three elements. + * The first element is Array of [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation} that corresponds to + * the one page received from the API server. + * If the second element is not null it contains the request object of type [ListRecommendationsRequest]{@link google.cloud.recommender.v1beta1.ListRecommendationsRequest} + * that can be used to obtain the next page of the results. + * If it is null, the next page does not exist. + * The third element contains the raw response received from the API server. Its type is + * [ListRecommendationsResponse]{@link google.cloud.recommender.v1beta1.ListRecommendationsResponse}. + * + * The promise has a method named "cancel" which cancels the ongoing API call. + */ + listRecommendations( + request: protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest, + optionsOrCallback?: + | gax.CallOptions + | Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation[], + protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest | null, + protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsResponse + >, + callback?: Callback< + protosTypes.google.cloud.recommender.v1beta1.IRecommendation[], + protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest | null, + protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsResponse + > + ): Promise< + [ + protosTypes.google.cloud.recommender.v1beta1.IRecommendation[], + protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest | null, + protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsResponse + ] + > | void { + request = request || {}; + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + return this._innerApiCalls.listRecommendations(request, options, callback); + } + + /** + * Equivalent to {@link listRecommendations}, but returns a NodeJS Stream object. + * + * This fetches the paged responses for {@link listRecommendations} continuously + * and invokes the callback registered for 'data' event for each element in the + * responses. + * + * The returned object has 'end' method when no more elements are required. + * + * autoPaginate option will be ignored. + * + * @see {@link https://nodejs.org/api/stream.html} + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The container resource on which to execute the request. + * Acceptable formats: + * + * 1. + * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", + * + * LOCATION here refers to GCP Locations: + * https://cloud.google.com/about/locations/ + * @param {number} [request.pageSize] + * Optional. The maximum number of results to return from this request. Non-positive + * values are ignored. If not specified, the server will determine the number + * of results to return. + * @param {string} [request.pageToken] + * Optional. If present, retrieves the next batch of results from the preceding call to + * this method. `page_token` must be the value of `next_page_token` from the + * previous response. The values of other method parameters must be identical + * to those in the previous call. + * @param {string} request.filter + * Filter expression to restrict the recommendations returned. Supported + * filter fields: state_info.state + * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" + * @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 [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation} on 'data' event. + */ + listRecommendationsStream( + request?: protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest, + options?: gax.CallOptions | {} + ): Transform { + request = request || {}; + const callSettings = new gax.CallSettings(options); + return this._descriptors.page.listRecommendations.createStream( + this._innerApiCalls.listRecommendations as gax.GaxCall, + request, + callSettings + ); + } + // -------------------- + // -- Path templates -- + // -------------------- + + /** + * Return a fully-qualified recommender resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} recommender + * @returns {string} Resource name string. + */ + recommenderPath(project: string, location: string, recommender: string) { + return this._pathTemplates.recommenderPathTemplate.render({ + project, + location, + recommender, + }); + } + + /** + * Parse the project from Recommender resource. + * + * @param {string} recommenderName + * A fully-qualified path representing Recommender resource. + * @returns {string} A string representing the project. + */ + matchProjectFromRecommenderName(recommenderName: string) { + return this._pathTemplates.recommenderPathTemplate.match(recommenderName) + .project; + } + + /** + * Parse the location from Recommender resource. + * + * @param {string} recommenderName + * A fully-qualified path representing Recommender resource. + * @returns {string} A string representing the location. + */ + matchLocationFromRecommenderName(recommenderName: string) { + return this._pathTemplates.recommenderPathTemplate.match(recommenderName) + .location; + } + + /** + * Parse the recommender from Recommender resource. + * + * @param {string} recommenderName + * A fully-qualified path representing Recommender resource. + * @returns {string} A string representing the recommender. + */ + matchRecommenderFromRecommenderName(recommenderName: string) { + return this._pathTemplates.recommenderPathTemplate.match(recommenderName) + .recommender; + } + + /** + * Return a fully-qualified recommendation resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} recommender + * @param {string} recommendation + * @returns {string} Resource name string. + */ + recommendationPath( + project: string, + location: string, + recommender: string, + recommendation: string + ) { + return this._pathTemplates.recommendationPathTemplate.render({ + project, + location, + recommender, + recommendation, + }); + } + + /** + * Parse the project from Recommendation resource. + * + * @param {string} recommendationName + * A fully-qualified path representing Recommendation resource. + * @returns {string} A string representing the project. + */ + matchProjectFromRecommendationName(recommendationName: string) { + return this._pathTemplates.recommendationPathTemplate.match( + recommendationName + ).project; + } + + /** + * Parse the location from Recommendation resource. + * + * @param {string} recommendationName + * A fully-qualified path representing Recommendation resource. + * @returns {string} A string representing the location. + */ + matchLocationFromRecommendationName(recommendationName: string) { + return this._pathTemplates.recommendationPathTemplate.match( + recommendationName + ).location; + } + + /** + * Parse the recommender from Recommendation resource. + * + * @param {string} recommendationName + * A fully-qualified path representing Recommendation resource. + * @returns {string} A string representing the recommender. + */ + matchRecommenderFromRecommendationName(recommendationName: string) { + return this._pathTemplates.recommendationPathTemplate.match( + recommendationName + ).recommender; + } + + /** + * Parse the recommendation from Recommendation resource. + * + * @param {string} recommendationName + * A fully-qualified path representing Recommendation resource. + * @returns {string} A string representing the recommendation. + */ + matchRecommendationFromRecommendationName(recommendationName: string) { + return this._pathTemplates.recommendationPathTemplate.match( + recommendationName + ).recommendation; + } + + /** + * Terminate the GRPC channel and close the client. + * + * The client will no longer be usable and all future behavior is undefined. + */ + close(): Promise { + if (!this._terminated) { + return this.recommenderStub.then(stub => { + this._terminated = true; + stub.close(); + }); + } + return Promise.resolve(); + } +} diff --git a/packages/google-cloud-recommender/src/v1beta1/recommender_client_config.json b/packages/google-cloud-recommender/src/v1beta1/recommender_client_config.json new file mode 100644 index 00000000000..eb64a13d570 --- /dev/null +++ b/packages/google-cloud-recommender/src/v1beta1/recommender_client_config.json @@ -0,0 +1,51 @@ +{ + "interfaces": { + "google.cloud.recommender.v1beta1.Recommender": { + "retry_codes": { + "non_idempotent": [], + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "ListRecommendations": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "GetRecommendation": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MarkRecommendationClaimed": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "MarkRecommendationSucceeded": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "MarkRecommendationFailed": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/packages/google-cloud-recommender/src/v1beta1/recommender_proto_list.json b/packages/google-cloud-recommender/src/v1beta1/recommender_proto_list.json new file mode 100644 index 00000000000..a4ee7d0492f --- /dev/null +++ b/packages/google-cloud-recommender/src/v1beta1/recommender_proto_list.json @@ -0,0 +1,4 @@ +[ + "../../protos/google/cloud/recommender/v1beta1/recommendation.proto", + "../../protos/google/cloud/recommender/v1beta1/recommender_service.proto" +] diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata new file mode 100644 index 00000000000..5934d0b3e42 --- /dev/null +++ b/packages/google-cloud-recommender/synth.metadata @@ -0,0 +1,3348 @@ +{ + "updateTime": "2020-01-14T18:13:40.804255Z", + "sources": [ + { + "git": { + "name": "googleapis", + "remote": "https://github.com/googleapis/googleapis.git", + "sha": "2fa8d48165cc48e35b0c62e6f7bdade12229326c", + "internalRef": "289619243" + } + }, + { + "template": { + "name": "node_library", + "origin": "synthtool.gcp", + "version": "2019.10.17" + } + } + ], + "destinations": [ + { + "client": { + "source": "googleapis", + "apiName": "recommender", + "apiVersion": "v1beta1", + "language": "typescript", + "generator": "gapic-generator-typescript" + } + } + ], + "newFiles": [ + { + "path": "CONTRIBUTING.md" + }, + { + "path": ".prettierignore" + }, + { + "path": "package-lock.json" + }, + { + "path": ".eslintignore" + }, + { + "path": "tslint.json" + }, + { + "path": "CODE_OF_CONDUCT.md" + }, + { + "path": "codecov.yaml" + }, + { + "path": "webpack.config.js" + }, + { + "path": ".nycrc" + }, + { + "path": "linkinator.config.json" + }, + { + "path": "LICENSE" + }, + { + "path": ".eslintrc.yml" + }, + { + "path": "renovate.json" + }, + { + "path": "package.json" + }, + { + "path": ".jsdoc.js" + }, + { + "path": "tsconfig.json" + }, + { + "path": ".prettierrc" + }, + { + "path": "README.md" + }, + { + "path": "test/gapic-recommender-v1beta1.ts" + }, + { + "path": "protos/protos.json" + }, + { + "path": "protos/protos.js" + }, + { + "path": "protos/protos.d.ts" + }, + { + "path": "protos/google/cloud/common_resources.proto" + }, + { + "path": "protos/google/cloud/recommender/v1beta1/recommender_service.proto" + }, + { + "path": "protos/google/cloud/recommender/v1beta1/recommendation.proto" + }, + { + "path": "system-test/install.ts" + }, + { + "path": "system-test/fixtures/sample/src/index.js" + }, + { + "path": "system-test/fixtures/sample/src/index.ts" + }, + { + "path": ".kokoro/test.sh" + }, + { + "path": ".kokoro/system-test.sh" + }, + { + "path": ".kokoro/trampoline.sh" + }, + { + "path": ".kokoro/publish.sh" + }, + { + "path": ".kokoro/test.bat" + }, + { + "path": ".kokoro/lint.sh" + }, + { + "path": ".kokoro/common.cfg" + }, + { + "path": ".kokoro/docs.sh" + }, + { + "path": ".kokoro/samples-test.sh" + }, + { + "path": ".kokoro/continuous/node8/test.cfg" + }, + { + "path": ".kokoro/continuous/node8/common.cfg" + }, + { + "path": ".kokoro/continuous/node10/test.cfg" + }, + { + "path": ".kokoro/continuous/node10/system-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/lint.cfg" + }, + { + "path": ".kokoro/continuous/node10/common.cfg" + }, + { + "path": ".kokoro/continuous/node10/docs.cfg" + }, + { + "path": ".kokoro/continuous/node10/samples-test.cfg" + }, + { + "path": ".kokoro/continuous/node12/test.cfg" + }, + { + "path": ".kokoro/continuous/node12/common.cfg" + }, + { + "path": ".kokoro/presubmit/node8/test.cfg" + }, + { + "path": ".kokoro/presubmit/node8/common.cfg" + }, + { + "path": ".kokoro/presubmit/node10/test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/system-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/lint.cfg" + }, + { + "path": ".kokoro/presubmit/node10/common.cfg" + }, + { + "path": ".kokoro/presubmit/node10/docs.cfg" + }, + { + "path": ".kokoro/presubmit/node10/samples-test.cfg" + }, + { + "path": ".kokoro/presubmit/windows/test.cfg" + }, + { + "path": ".kokoro/presubmit/windows/common.cfg" + }, + { + "path": ".kokoro/presubmit/node12/test.cfg" + }, + { + "path": ".kokoro/presubmit/node12/common.cfg" + }, + { + "path": ".kokoro/release/publish.cfg" + }, + { + "path": ".kokoro/release/docs.cfg" + }, + { + "path": ".kokoro/release/docs.sh" + }, + { + "path": "__pycache__/synth.cpython-37.pyc" + }, + { + "path": ".github/PULL_REQUEST_TEMPLATE.md" + }, + { + "path": ".github/release-please.yml" + }, + { + "path": ".github/ISSUE_TEMPLATE/support_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/feature_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/bug_report.md" + }, + { + "path": "build/test/gapic-recommender-v1beta1.d.ts" + }, + { + "path": "build/test/gapic-recommender-v1beta1.js.map" + }, + { + "path": "build/test/gapic-recommender-v1beta1.js" + }, + { + "path": "build/protos/protos.json" + }, + { + "path": "build/protos/protos.js" + }, + { + "path": "build/protos/protos.d.ts" + }, + { + "path": "build/protos/google/cloud/common_resources.proto" + }, + { + "path": "build/protos/google/cloud/recommender/v1beta1/recommender_service.proto" + }, + { + "path": "build/protos/google/cloud/recommender/v1beta1/recommendation.proto" + }, + { + "path": "build/system-test/install.d.ts" + }, + { + "path": "build/system-test/install.js.map" + }, + { + "path": "build/system-test/install.js" + }, + { + "path": "build/src/index.js" + }, + { + "path": "build/src/index.js.map" + }, + { + "path": "build/src/index.d.ts" + }, + { + "path": "build/src/v1beta1/index.js" + }, + { + "path": "build/src/v1beta1/recommender_client.js" + }, + { + "path": "build/src/v1beta1/recommender_client.js.map" + }, + { + "path": "build/src/v1beta1/recommender_client_config.json" + }, + { + "path": "build/src/v1beta1/index.js.map" + }, + { + "path": "build/src/v1beta1/index.d.ts" + }, + { + "path": "build/src/v1beta1/recommender_client.d.ts" + }, + { + "path": "src/index.ts" + }, + { + "path": "src/v1beta1/recommender_client.ts" + }, + { + "path": "src/v1beta1/recommender_proto_list.json" + }, + { + "path": "src/v1beta1/index.ts" + }, + { + "path": "src/v1beta1/recommender_client_config.json" + }, + { + "path": "node_modules/define-properties/package.json" + }, + { + "path": "node_modules/des.js/package.json" + }, + { + "path": "node_modules/domain-browser/package.json" + }, + { + "path": "node_modules/taffydb/package.json" + }, + { + "path": "node_modules/js-tokens/package.json" + }, + { + "path": "node_modules/is-stream/package.json" + }, + { + "path": "node_modules/cli-boxes/package.json" + }, + { + "path": "node_modules/duplexer3/package.json" + }, + { + "path": "node_modules/copy-descriptor/package.json" + }, + { + "path": "node_modules/yallist/package.json" + }, + { + "path": "node_modules/path-exists/package.json" + }, + { + "path": "node_modules/pascalcase/package.json" + }, + { + "path": "node_modules/hard-rejection/package.json" + }, + { + "path": "node_modules/expand-brackets/package.json" + }, + { + "path": "node_modules/expand-brackets/node_modules/debug/package.json" + }, + { + "path": "node_modules/expand-brackets/node_modules/define-property/package.json" + }, + { + "path": "node_modules/expand-brackets/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/expand-brackets/node_modules/ms/package.json" + }, + { + "path": "node_modules/indent-string/package.json" + }, + { + "path": "node_modules/atob/package.json" + }, + { + "path": "node_modules/hash-base/package.json" + }, + { + "path": "node_modules/load-json-file/package.json" + }, + { + "path": "node_modules/load-json-file/node_modules/pify/package.json" + }, + { + "path": "node_modules/once/package.json" + }, + { + "path": "node_modules/for-in/package.json" + }, + { + "path": "node_modules/to-readable-stream/package.json" + }, + { + "path": "node_modules/strip-ansi/package.json" + }, + { + "path": "node_modules/terser/package.json" + }, + { + "path": "node_modules/terser/node_modules/source-map/package.json" + }, + { + "path": "node_modules/unique-string/package.json" + }, + { + "path": "node_modules/decamelize/package.json" + }, + { + "path": "node_modules/through2/package.json" + }, + { + "path": "node_modules/google-gax/package.json" + }, + { + "path": "node_modules/registry-auth-token/package.json" + }, + { + "path": "node_modules/mdurl/package.json" + }, + { + "path": "node_modules/read-pkg/package.json" + }, + { + "path": "node_modules/source-list-map/package.json" + }, + { + "path": "node_modules/array-unique/package.json" + }, + { + "path": "node_modules/source-map/package.json" + }, + { + "path": "node_modules/base/package.json" + }, + { + "path": "node_modules/base/node_modules/define-property/package.json" + }, + { + "path": "node_modules/base/node_modules/is-descriptor/package.json" + }, + { + "path": "node_modules/base/node_modules/is-accessor-descriptor/package.json" + }, + { + "path": "node_modules/base/node_modules/is-data-descriptor/package.json" + }, + { + "path": "node_modules/fast-json-stable-stringify/package.json" + }, + { + "path": "node_modules/ignore-walk/package.json" + }, + { + "path": "node_modules/util-deprecate/package.json" + }, + { + "path": "node_modules/cacheable-request/package.json" + }, + { + "path": "node_modules/cacheable-request/node_modules/lowercase-keys/package.json" + }, + { + "path": "node_modules/cacheable-request/node_modules/get-stream/package.json" + }, + { + "path": "node_modules/global-dirs/package.json" + }, + { + "path": "node_modules/unique-filename/package.json" + }, + { + "path": "node_modules/currently-unhandled/package.json" + }, + { + "path": "node_modules/normalize-url/package.json" + }, + { + "path": "node_modules/growl/package.json" + }, + { + "path": "node_modules/graceful-fs/package.json" + }, + { + "path": "node_modules/pify/package.json" + }, + { + "path": "node_modules/is-npm/package.json" + }, + { + "path": "node_modules/decode-uri-component/package.json" + }, + { + "path": "node_modules/create-hmac/package.json" + }, + { + "path": "node_modules/istanbul-lib-report/package.json" + }, + { + "path": "node_modules/cache-base/package.json" + }, + { + "path": "node_modules/inflight/package.json" + }, + { + "path": "node_modules/has-flag/package.json" + }, + { + "path": "node_modules/union-value/package.json" + }, + { + "path": "node_modules/arr-union/package.json" + }, + { + "path": "node_modules/buffer-equal-constant-time/package.json" + }, + { + "path": "node_modules/supports-color/package.json" + }, + { + "path": "node_modules/debug/package.json" + }, + { + "path": "node_modules/querystring-es3/package.json" + }, + { + "path": "node_modules/meow/package.json" + }, + { + "path": "node_modules/meow/node_modules/path-exists/package.json" + }, + { + "path": "node_modules/meow/node_modules/read-pkg-up/package.json" + }, + { + "path": "node_modules/meow/node_modules/p-try/package.json" + }, + { + "path": "node_modules/meow/node_modules/camelcase/package.json" + }, + { + "path": "node_modules/meow/node_modules/p-limit/package.json" + }, + { + "path": "node_modules/meow/node_modules/find-up/package.json" + }, + { + "path": "node_modules/meow/node_modules/locate-path/package.json" + }, + { + "path": "node_modules/meow/node_modules/p-locate/package.json" + }, + { + "path": "node_modules/meow/node_modules/yargs-parser/package.json" + }, + { + "path": "node_modules/parseurl/package.json" + }, + { + "path": "node_modules/node-environment-flags/package.json" + }, + { + "path": "node_modules/node-environment-flags/node_modules/semver/package.json" + }, + { + "path": "node_modules/use/package.json" + }, + { + "path": "node_modules/fast-text-encoding/package.json" + }, + { + "path": "node_modules/is-glob/package.json" + }, + { + "path": "node_modules/@szmarczak/http-timer/package.json" + }, + { + "path": "node_modules/statuses/package.json" + }, + { + "path": "node_modules/object-copy/package.json" + }, + { + "path": "node_modules/object-copy/node_modules/define-property/package.json" + }, + { + "path": "node_modules/object-copy/node_modules/is-buffer/package.json" + }, + { + "path": "node_modules/object-copy/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/is-ci/package.json" + }, + { + "path": "node_modules/evp_bytestokey/package.json" + }, + { + "path": "node_modules/trim-newlines/package.json" + }, + { + "path": "node_modules/ci-info/package.json" + }, + { + "path": "node_modules/@bcoe/v8-coverage/package.json" + }, + { + "path": "node_modules/terser-webpack-plugin/package.json" + }, + { + "path": "node_modules/terser-webpack-plugin/node_modules/source-map/package.json" + }, + { + "path": "node_modules/balanced-match/package.json" + }, + { + "path": "node_modules/snapdragon-node/package.json" + }, + { + "path": "node_modules/snapdragon-node/node_modules/define-property/package.json" + }, + { + "path": "node_modules/snapdragon-node/node_modules/is-descriptor/package.json" + }, + { + "path": "node_modules/snapdragon-node/node_modules/is-accessor-descriptor/package.json" + }, + { + "path": "node_modules/snapdragon-node/node_modules/is-data-descriptor/package.json" + }, + { + "path": "node_modules/is-path-inside/package.json" + }, + { + "path": "node_modules/quick-lru/package.json" + }, + { + "path": "node_modules/randombytes/package.json" + }, + { + "path": "node_modules/safer-buffer/package.json" + }, + { + "path": "node_modules/catharsis/package.json" + }, + { + "path": "node_modules/has-yarn/package.json" + }, + { + "path": "node_modules/browserify-sign/package.json" + }, + { + "path": "node_modules/path-key/package.json" + }, + { + "path": "node_modules/ansi-regex/package.json" + }, + { + "path": "node_modules/component-emitter/package.json" + }, + { + "path": "node_modules/resolve-dir/package.json" + }, + { + "path": "node_modules/resolve-dir/node_modules/global-modules/package.json" + }, + { + "path": "node_modules/public-encrypt/package.json" + }, + { + "path": "node_modules/string_decoder/package.json" + }, + { + "path": "node_modules/define-property/package.json" + }, + { + "path": "node_modules/define-property/node_modules/is-descriptor/package.json" + }, + { + "path": "node_modules/define-property/node_modules/is-accessor-descriptor/package.json" + }, + { + "path": "node_modules/define-property/node_modules/is-data-descriptor/package.json" + }, + { + "path": "node_modules/source-map-support/package.json" + }, + { + "path": "node_modules/source-map-support/node_modules/source-map/package.json" + }, + { + "path": "node_modules/watchpack/package.json" + }, + { + "path": "node_modules/pump/package.json" + }, + { + "path": "node_modules/validate-npm-package-license/package.json" + }, + { + "path": "node_modules/node-fetch/package.json" + }, + { + "path": "node_modules/cipher-base/package.json" + }, + { + "path": "node_modules/jsdoc/package.json" + }, + { + "path": "node_modules/jsdoc/node_modules/strip-json-comments/package.json" + }, + { + "path": "node_modules/jsdoc/node_modules/escape-string-regexp/package.json" + }, + { + "path": "node_modules/create-hash/package.json" + }, + { + "path": "node_modules/is-installed-globally/package.json" + }, + { + "path": "node_modules/abort-controller/package.json" + }, + { + "path": "node_modules/configstore/package.json" + }, + { + "path": "node_modules/configstore/node_modules/pify/package.json" + }, + { + "path": "node_modules/configstore/node_modules/write-file-atomic/package.json" + }, + { + "path": "node_modules/configstore/node_modules/make-dir/package.json" + }, + { + "path": "node_modules/xmlcreate/package.json" + }, + { + "path": "node_modules/npm-bundled/package.json" + }, + { + "path": "node_modules/is-date-object/package.json" + }, + { + "path": "node_modules/expand-tilde/package.json" + }, + { + "path": "node_modules/global-prefix/package.json" + }, + { + "path": "node_modules/global-prefix/node_modules/which/package.json" + }, + { + "path": "node_modules/yargs-unparser/package.json" + }, + { + "path": "node_modules/yargs-unparser/node_modules/path-exists/package.json" + }, + { + "path": "node_modules/yargs-unparser/node_modules/yargs/package.json" + }, + { + "path": "node_modules/yargs-unparser/node_modules/find-up/package.json" + }, + { + "path": "node_modules/yargs-unparser/node_modules/locate-path/package.json" + }, + { + "path": "node_modules/yargs-unparser/node_modules/p-locate/package.json" + }, + { + "path": "node_modules/yargs-unparser/node_modules/yargs-parser/package.json" + }, + { + "path": "node_modules/has-values/package.json" + }, + { + "path": "node_modules/has-values/node_modules/is-number/package.json" + }, + { + "path": "node_modules/has-values/node_modules/is-number/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/has-values/node_modules/is-buffer/package.json" + }, + { + "path": "node_modules/has-values/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/node-forge/package.json" + }, + { + "path": "node_modules/toidentifier/package.json" + }, + { + "path": "node_modules/is-callable/package.json" + }, + { + "path": "node_modules/md5.js/package.json" + }, + { + "path": "node_modules/parse5/package.json" + }, + { + "path": "node_modules/https-proxy-agent/package.json" + }, + { + "path": "node_modules/run-async/package.json" + }, + { + "path": "node_modules/mem/package.json" + }, + { + "path": "node_modules/onetime/package.json" + }, + { + "path": "node_modules/p-is-promise/package.json" + }, + { + "path": "node_modules/hash.js/package.json" + }, + { + "path": "node_modules/collection-visit/package.json" + }, + { + "path": "node_modules/set-blocking/package.json" + }, + { + "path": "node_modules/has-value/package.json" + }, + { + "path": "node_modules/rimraf/package.json" + }, + { + "path": "node_modules/repeat-string/package.json" + }, + { + "path": "node_modules/destroy/package.json" + }, + { + "path": "node_modules/isarray/package.json" + }, + { + "path": "node_modules/@sindresorhus/is/package.json" + }, + { + "path": "node_modules/server-destroy/package.json" + }, + { + "path": "node_modules/mimic-response/package.json" + }, + { + "path": "node_modules/jsdoc-region-tag/package.json" + }, + { + "path": "node_modules/prettier/package.json" + }, + { + "path": "node_modules/is-promise/package.json" + }, + { + "path": "node_modules/binary-extensions/package.json" + }, + { + "path": "node_modules/core-util-is/package.json" + }, + { + "path": "node_modules/is-stream-ended/package.json" + }, + { + "path": "node_modules/tslib/package.json" + }, + { + "path": "node_modules/acorn/package.json" + }, + { + "path": "node_modules/shebang-command/package.json" + }, + { + "path": "node_modules/semver-diff/package.json" + }, + { + "path": "node_modules/semver-diff/node_modules/semver/package.json" + }, + { + "path": "node_modules/agent-base/package.json" + }, + { + "path": "node_modules/gts/package.json" + }, + { + "path": "node_modules/object.pick/package.json" + }, + { + "path": "node_modules/tty-browserify/package.json" + }, + { + "path": "node_modules/lcid/package.json" + }, + { + "path": "node_modules/strip-bom/package.json" + }, + { + "path": "node_modules/serve-static/package.json" + }, + { + "path": "node_modules/npm-run-path/package.json" + }, + { + "path": "node_modules/npm-run-path/node_modules/path-key/package.json" + }, + { + "path": "node_modules/minimist-options/package.json" + }, + { + "path": "node_modules/minimist-options/node_modules/arrify/package.json" + }, + { + "path": "node_modules/cyclist/package.json" + }, + { + "path": "node_modules/upath/package.json" + }, + { + "path": "node_modules/is-regex/package.json" + }, + { + "path": "node_modules/errno/package.json" + }, + { + "path": "node_modules/esutils/package.json" + }, + { + "path": "node_modules/responselike/package.json" + }, + { + "path": "node_modules/interpret/package.json" + }, + { + "path": "node_modules/cli-width/package.json" + }, + { + "path": "node_modules/object-assign/package.json" + }, + { + "path": "node_modules/@protobufjs/eventemitter/package.json" + }, + { + "path": "node_modules/@protobufjs/utf8/package.json" + }, + { + "path": "node_modules/@protobufjs/aspromise/package.json" + }, + { + "path": "node_modules/@protobufjs/pool/package.json" + }, + { + "path": "node_modules/@protobufjs/inquire/package.json" + }, + { + "path": "node_modules/@protobufjs/base64/package.json" + }, + { + "path": "node_modules/@protobufjs/codegen/package.json" + }, + { + "path": "node_modules/@protobufjs/fetch/package.json" + }, + { + "path": "node_modules/@protobufjs/path/package.json" + }, + { + "path": "node_modules/@protobufjs/float/package.json" + }, + { + "path": "node_modules/crypto-browserify/package.json" + }, + { + "path": "node_modules/tsutils/package.json" + }, + { + "path": "node_modules/unpipe/package.json" + }, + { + "path": "node_modules/dom-serializer/package.json" + }, + { + "path": "node_modules/read-pkg-up/package.json" + }, + { + "path": "node_modules/read-pkg-up/node_modules/path-exists/package.json" + }, + { + "path": "node_modules/read-pkg-up/node_modules/find-up/package.json" + }, + { + "path": "node_modules/read-pkg-up/node_modules/locate-path/package.json" + }, + { + "path": "node_modules/read-pkg-up/node_modules/p-locate/package.json" + }, + { + "path": "node_modules/p-defer/package.json" + }, + { + "path": "node_modules/map-obj/package.json" + }, + { + "path": "node_modules/os-browserify/package.json" + }, + { + "path": "node_modules/eslint-scope/package.json" + }, + { + "path": "node_modules/concat-stream/package.json" + }, + { + "path": "node_modules/webpack-cli/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/path-exists/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/path-key/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/shebang-command/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/cross-spawn/index.js" + }, + { + "path": "node_modules/webpack-cli/node_modules/cross-spawn/CHANGELOG.md" + }, + { + "path": "node_modules/webpack-cli/node_modules/cross-spawn/LICENSE" + }, + { + "path": "node_modules/webpack-cli/node_modules/cross-spawn/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/cross-spawn/README.md" + }, + { + "path": "node_modules/webpack-cli/node_modules/cross-spawn/lib/enoent.js" + }, + { + "path": "node_modules/webpack-cli/node_modules/cross-spawn/lib/parse.js" + }, + { + "path": "node_modules/webpack-cli/node_modules/cross-spawn/lib/util/escape.js" + }, + { + "path": "node_modules/webpack-cli/node_modules/cross-spawn/lib/util/resolveCommand.js" + }, + { + "path": "node_modules/webpack-cli/node_modules/cross-spawn/lib/util/readShebang.js" + }, + { + "path": "node_modules/webpack-cli/node_modules/yargs/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/memory-fs/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/shebang-regex/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/which/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/enhanced-resolve/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/semver/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/chalk/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/chalk/node_modules/supports-color/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/find-up/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/locate-path/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/p-locate/package.json" + }, + { + "path": "node_modules/webpack-cli/node_modules/yargs-parser/package.json" + }, + { + "path": "node_modules/typedarray/package.json" + }, + { + "path": "node_modules/pkg-dir/package.json" + }, + { + "path": "node_modules/pkg-dir/node_modules/path-exists/package.json" + }, + { + "path": "node_modules/pkg-dir/node_modules/find-up/package.json" + }, + { + "path": "node_modules/pkg-dir/node_modules/locate-path/package.json" + }, + { + "path": "node_modules/pkg-dir/node_modules/p-locate/package.json" + }, + { + "path": "node_modules/typedarray-to-buffer/index.js" + }, + { + "path": "node_modules/typedarray-to-buffer/.travis.yml" + }, + { + "path": "node_modules/typedarray-to-buffer/.airtap.yml" + }, + { + "path": "node_modules/typedarray-to-buffer/LICENSE" + }, + { + "path": "node_modules/typedarray-to-buffer/package.json" + }, + { + "path": "node_modules/typedarray-to-buffer/README.md" + }, + { + "path": "node_modules/typedarray-to-buffer/test/basic.js" + }, + { + "path": "node_modules/tslint-config-prettier/package.json" + }, + { + "path": "node_modules/pseudomap/package.json" + }, + { + "path": "node_modules/cross-spawn/package.json" + }, + { + "path": "node_modules/lowercase-keys/package.json" + }, + { + "path": "node_modules/execa/package.json" + }, + { + "path": "node_modules/execa/node_modules/is-stream/package.json" + }, + { + "path": "node_modules/execa/node_modules/yallist/package.json" + }, + { + "path": "node_modules/execa/node_modules/shebang-command/package.json" + }, + { + "path": "node_modules/execa/node_modules/cross-spawn/package.json" + }, + { + "path": "node_modules/execa/node_modules/shebang-regex/package.json" + }, + { + "path": "node_modules/execa/node_modules/which/package.json" + }, + { + "path": "node_modules/execa/node_modules/lru-cache/package.json" + }, + { + "path": "node_modules/imurmurhash/package.json" + }, + { + "path": "node_modules/jwa/package.json" + }, + { + "path": "node_modules/yargs/package.json" + }, + { + "path": "node_modules/yargs/node_modules/path-exists/package.json" + }, + { + "path": "node_modules/yargs/node_modules/find-up/package.json" + }, + { + "path": "node_modules/yargs/node_modules/locate-path/package.json" + }, + { + "path": "node_modules/yargs/node_modules/p-locate/package.json" + }, + { + "path": "node_modules/fill-range/package.json" + }, + { + "path": "node_modules/loud-rejection/package.json" + }, + { + "path": "node_modules/memory-fs/package.json" + }, + { + "path": "node_modules/is-plain-object/package.json" + }, + { + "path": "node_modules/path-dirname/package.json" + }, + { + "path": "node_modules/chrome-trace-event/package.json" + }, + { + "path": "node_modules/path-is-absolute/package.json" + }, + { + "path": "node_modules/chownr/package.json" + }, + { + "path": "node_modules/uc.micro/package.json" + }, + { + "path": "node_modules/depd/package.json" + }, + { + "path": "node_modules/json-bigint/package.json" + }, + { + "path": "node_modules/es-abstract/package.json" + }, + { + "path": "node_modules/querystring/package.json" + }, + { + "path": "node_modules/array-find-index/package.json" + }, + { + "path": "node_modules/split-string/package.json" + }, + { + "path": "node_modules/webpack/package.json" + }, + { + "path": "node_modules/webpack/node_modules/fill-range/package.json" + }, + { + "path": "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/webpack/node_modules/memory-fs/package.json" + }, + { + "path": "node_modules/webpack/node_modules/braces/package.json" + }, + { + "path": "node_modules/webpack/node_modules/braces/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/webpack/node_modules/micromatch/index.js" + }, + { + "path": "node_modules/webpack/node_modules/micromatch/CHANGELOG.md" + }, + { + "path": "node_modules/webpack/node_modules/micromatch/LICENSE" + }, + { + "path": "node_modules/webpack/node_modules/micromatch/package.json" + }, + { + "path": "node_modules/webpack/node_modules/micromatch/README.md" + }, + { + "path": "node_modules/webpack/node_modules/micromatch/lib/cache.js" + }, + { + "path": "node_modules/webpack/node_modules/micromatch/lib/parsers.js" + }, + { + "path": "node_modules/webpack/node_modules/micromatch/lib/utils.js" + }, + { + "path": "node_modules/webpack/node_modules/micromatch/lib/.DS_Store" + }, + { + "path": "node_modules/webpack/node_modules/micromatch/lib/compilers.js" + }, + { + "path": "node_modules/webpack/node_modules/to-regex-range/package.json" + }, + { + "path": "node_modules/webpack/node_modules/is-number/package.json" + }, + { + "path": "node_modules/webpack/node_modules/is-number/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/webpack/node_modules/is-buffer/package.json" + }, + { + "path": "node_modules/esprima/package.json" + }, + { + "path": "node_modules/uri-js/package.json" + }, + { + "path": "node_modules/v8-compile-cache/package.json" + }, + { + "path": "node_modules/inherits/package.json" + }, + { + "path": "node_modules/has-symbols/package.json" + }, + { + "path": "node_modules/buffer-from/package.json" + }, + { + "path": "node_modules/markdown-it-anchor/package.json" + }, + { + "path": "node_modules/braces/package.json" + }, + { + "path": "node_modules/strip-eof/package.json" + }, + { + "path": "node_modules/parse-asn1/package.json" + }, + { + "path": "node_modules/figures/package.json" + }, + { + "path": "node_modules/is-extglob/package.json" + }, + { + "path": "node_modules/xtend/package.json" + }, + { + "path": "node_modules/to-regex/package.json" + }, + { + "path": "node_modules/string.prototype.trimright/package.json" + }, + { + "path": "node_modules/gtoken/package.json" + }, + { + "path": "node_modules/furi/package.json" + }, + { + "path": "node_modules/brorand/package.json" + }, + { + "path": "node_modules/js-yaml/package.json" + }, + { + "path": "node_modules/browserify-cipher/package.json" + }, + { + "path": "node_modules/decompress-response/package.json" + }, + { + "path": "node_modules/color-name/package.json" + }, + { + "path": "node_modules/pbkdf2/package.json" + }, + { + "path": "node_modules/minimalistic-assert/package.json" + }, + { + "path": "node_modules/ret/package.json" + }, + { + "path": "node_modules/write-file-atomic/package.json" + }, + { + "path": "node_modules/domutils/package.json" + }, + { + "path": "node_modules/shebang-regex/package.json" + }, + { + "path": "node_modules/detect-file/package.json" + }, + { + "path": "node_modules/process/package.json" + }, + { + "path": "node_modules/sprintf-js/package.json" + }, + { + "path": "node_modules/copy-concurrently/package.json" + }, + { + "path": "node_modules/copy-concurrently/node_modules/rimraf/package.json" + }, + { + "path": "node_modules/fs.realpath/package.json" + }, + { + "path": "node_modules/hosted-git-info/package.json" + }, + { + "path": "node_modules/object.getownpropertydescriptors/package.json" + }, + { + "path": "node_modules/import-local/package.json" + }, + { + "path": "node_modules/wide-align/package.json" + }, + { + "path": "node_modules/wide-align/node_modules/strip-ansi/package.json" + }, + { + "path": "node_modules/wide-align/node_modules/ansi-regex/package.json" + }, + { + "path": "node_modules/wide-align/node_modules/string-width/package.json" + }, + { + "path": "node_modules/ansi-escapes/package.json" + }, + { + "path": "node_modules/get-value/package.json" + }, + { + "path": "node_modules/tapable/package.json" + }, + { + "path": "node_modules/unique-slug/package.json" + }, + { + "path": "node_modules/cheerio/package.json" + }, + { + "path": "node_modules/strip-indent/package.json" + }, + { + "path": "node_modules/node-libs-browser/package.json" + }, + { + "path": "node_modules/node-libs-browser/node_modules/punycode/package.json" + }, + { + "path": "node_modules/extglob/package.json" + }, + { + "path": "node_modules/extglob/node_modules/define-property/package.json" + }, + { + "path": "node_modules/extglob/node_modules/is-descriptor/package.json" + }, + { + "path": "node_modules/extglob/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/extglob/node_modules/is-accessor-descriptor/package.json" + }, + { + "path": "node_modules/extglob/node_modules/is-data-descriptor/package.json" + }, + { + "path": "node_modules/isexe/package.json" + }, + { + "path": "node_modules/https-browserify/package.json" + }, + { + "path": "node_modules/object-inspect/package.json" + }, + { + "path": "node_modules/entities/package.json" + }, + { + "path": "node_modules/snapdragon-util/package.json" + }, + { + "path": "node_modules/snapdragon-util/node_modules/is-buffer/package.json" + }, + { + "path": "node_modules/snapdragon-util/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/crypto-random-string/package.json" + }, + { + "path": "node_modules/long/package.json" + }, + { + "path": "node_modules/es-to-primitive/package.json" + }, + { + "path": "node_modules/ieee754/package.json" + }, + { + "path": "node_modules/is-descriptor/package.json" + }, + { + "path": "node_modules/is-descriptor/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/buffer/package.json" + }, + { + "path": "node_modules/restore-cursor/package.json" + }, + { + "path": "node_modules/boolbase/package.json" + }, + { + "path": "node_modules/source-map-url/package.json" + }, + { + "path": "node_modules/null-loader/package.json" + }, + { + "path": "node_modules/nice-try/package.json" + }, + { + "path": "node_modules/spdx-correct/package.json" + }, + { + "path": "node_modules/markdown-it/package.json" + }, + { + "path": "node_modules/css-what/package.json" + }, + { + "path": "node_modules/assign-symbols/package.json" + }, + { + "path": "node_modules/jsdoc-fresh/package.json" + }, + { + "path": "node_modules/jsdoc-fresh/node_modules/taffydb/package.json" + }, + { + "path": "node_modules/google-auth-library/package.json" + }, + { + "path": "node_modules/worker-farm/package.json" + }, + { + "path": "node_modules/minimalistic-crypto-utils/package.json" + }, + { + "path": "node_modules/camelcase-keys/package.json" + }, + { + "path": "node_modules/camelcase-keys/node_modules/camelcase/package.json" + }, + { + "path": "node_modules/randomfill/package.json" + }, + { + "path": "node_modules/json-parse-better-errors/package.json" + }, + { + "path": "node_modules/stream-shift/package.json" + }, + { + "path": "node_modules/brace-expansion/package.json" + }, + { + "path": "node_modules/p-try/package.json" + }, + { + "path": "node_modules/event-target-shim/package.json" + }, + { + "path": "node_modules/nanomatch/package.json" + }, + { + "path": "node_modules/camelcase/package.json" + }, + { + "path": "node_modules/json5/package.json" + }, + { + "path": "node_modules/json5/node_modules/minimist/package.json" + }, + { + "path": "node_modules/make-dir/package.json" + }, + { + "path": "node_modules/make-dir/node_modules/semver/package.json" + }, + { + "path": "node_modules/mimic-fn/package.json" + }, + { + "path": "node_modules/readdirp/package.json" + }, + { + "path": "node_modules/readdirp/node_modules/fill-range/package.json" + }, + { + "path": "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/readdirp/node_modules/braces/package.json" + }, + { + "path": "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/readdirp/node_modules/micromatch/index.js" + }, + { + "path": "node_modules/readdirp/node_modules/micromatch/CHANGELOG.md" + }, + { + "path": "node_modules/readdirp/node_modules/micromatch/LICENSE" + }, + { + "path": "node_modules/readdirp/node_modules/micromatch/package.json" + }, + { + "path": "node_modules/readdirp/node_modules/micromatch/README.md" + }, + { + "path": "node_modules/readdirp/node_modules/micromatch/lib/cache.js" + }, + { + "path": "node_modules/readdirp/node_modules/micromatch/lib/parsers.js" + }, + { + "path": "node_modules/readdirp/node_modules/micromatch/lib/utils.js" + }, + { + "path": "node_modules/readdirp/node_modules/micromatch/lib/.DS_Store" + }, + { + "path": "node_modules/readdirp/node_modules/micromatch/lib/compilers.js" + }, + { + "path": "node_modules/readdirp/node_modules/to-regex-range/package.json" + }, + { + "path": "node_modules/readdirp/node_modules/is-number/package.json" + }, + { + "path": "node_modules/readdirp/node_modules/is-number/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/readdirp/node_modules/is-buffer/package.json" + }, + { + "path": "node_modules/ts-loader/package.json" + }, + { + "path": "node_modules/ts-loader/node_modules/supports-color/package.json" + }, + { + "path": "node_modules/ts-loader/node_modules/semver/package.json" + }, + { + "path": "node_modules/ts-loader/node_modules/chalk/package.json" + }, + { + "path": "node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/extend-shallow/node_modules/is-extendable/package.json" + }, + { + "path": "node_modules/is-accessor-descriptor/package.json" + }, + { + "path": "node_modules/is-accessor-descriptor/node_modules/is-buffer/package.json" + }, + { + "path": "node_modules/is-accessor-descriptor/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/setprototypeof/package.json" + }, + { + "path": "node_modules/send/package.json" + }, + { + "path": "node_modules/send/node_modules/debug/package.json" + }, + { + "path": "node_modules/send/node_modules/debug/node_modules/ms/package.json" + }, + { + "path": "node_modules/send/node_modules/mime/package.json" + }, + { + "path": "node_modules/send/node_modules/ms/package.json" + }, + { + "path": "node_modules/tmp/package.json" + }, + { + "path": "node_modules/to-arraybuffer/package.json" + }, + { + "path": "node_modules/promise-inflight/package.json" + }, + { + "path": "node_modules/css-select/package.json" + }, + { + "path": "node_modules/neo-async/package.json" + }, + { + "path": "node_modules/npm-normalize-package-bin/package.json" + }, + { + "path": "node_modules/which/package.json" + }, + { + "path": "node_modules/serialize-javascript/package.json" + }, + { + "path": "node_modules/range-parser/package.json" + }, + { + "path": "node_modules/find-cache-dir/package.json" + }, + { + "path": "node_modules/punycode/package.json" + }, + { + "path": "node_modules/get-stream/package.json" + }, + { + "path": "node_modules/stream-http/package.json" + }, + { + "path": "node_modules/mime/package.json" + }, + { + "path": "node_modules/resolve-url/package.json" + }, + { + "path": "node_modules/os-locale/package.json" + }, + { + "path": "node_modules/os-locale/node_modules/is-stream/package.json" + }, + { + "path": "node_modules/os-locale/node_modules/path-key/package.json" + }, + { + "path": "node_modules/os-locale/node_modules/shebang-command/package.json" + }, + { + "path": "node_modules/os-locale/node_modules/cross-spawn/index.js" + }, + { + "path": "node_modules/os-locale/node_modules/cross-spawn/CHANGELOG.md" + }, + { + "path": "node_modules/os-locale/node_modules/cross-spawn/LICENSE" + }, + { + "path": "node_modules/os-locale/node_modules/cross-spawn/package.json" + }, + { + "path": "node_modules/os-locale/node_modules/cross-spawn/README.md" + }, + { + "path": "node_modules/os-locale/node_modules/cross-spawn/lib/enoent.js" + }, + { + "path": "node_modules/os-locale/node_modules/cross-spawn/lib/parse.js" + }, + { + "path": "node_modules/os-locale/node_modules/cross-spawn/lib/util/escape.js" + }, + { + "path": "node_modules/os-locale/node_modules/cross-spawn/lib/util/resolveCommand.js" + }, + { + "path": "node_modules/os-locale/node_modules/cross-spawn/lib/util/readShebang.js" + }, + { + "path": "node_modules/os-locale/node_modules/execa/package.json" + }, + { + "path": "node_modules/os-locale/node_modules/shebang-regex/package.json" + }, + { + "path": "node_modules/os-locale/node_modules/which/package.json" + }, + { + "path": "node_modules/os-locale/node_modules/get-stream/package.json" + }, + { + "path": "node_modules/os-locale/node_modules/semver/package.json" + }, + { + "path": "node_modules/webpack-sources/package.json" + }, + { + "path": "node_modules/webpack-sources/node_modules/source-map/package.json" + }, + { + "path": "node_modules/enhanced-resolve/package.json" + }, + { + "path": "node_modules/miller-rabin/package.json" + }, + { + "path": "node_modules/error-ex/package.json" + }, + { + "path": "node_modules/v8-to-istanbul/package.json" + }, + { + "path": "node_modules/import-lazy/package.json" + }, + { + "path": "node_modules/minimatch/package.json" + }, + { + "path": "node_modules/flat/package.json" + }, + { + "path": "node_modules/escape-html/package.json" + }, + { + "path": "node_modules/json-buffer/package.json" + }, + { + "path": "node_modules/is-obj/package.json" + }, + { + "path": "node_modules/etag/package.json" + }, + { + "path": "node_modules/json-schema-traverse/package.json" + }, + { + "path": "node_modules/micromatch/package.json" + }, + { + "path": "node_modules/argparse/package.json" + }, + { + "path": "node_modules/picomatch/package.json" + }, + { + "path": "node_modules/chardet/package.json" + }, + { + "path": "node_modules/set-value/package.json" + }, + { + "path": "node_modules/set-value/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/cli-cursor/package.json" + }, + { + "path": "node_modules/map-cache/package.json" + }, + { + "path": "node_modules/iconv-lite/package.json" + }, + { + "path": "node_modules/urix/package.json" + }, + { + "path": "node_modules/builtin-modules/package.json" + }, + { + "path": "node_modules/is-fullwidth-code-point/package.json" + }, + { + "path": "node_modules/figgy-pudding/package.json" + }, + { + "path": "node_modules/rxjs/package.json" + }, + { + "path": "node_modules/semver/package.json" + }, + { + "path": "node_modules/require-directory/package.json" + }, + { + "path": "node_modules/retry-request/package.json" + }, + { + "path": "node_modules/npm-packlist/package.json" + }, + { + "path": "node_modules/mississippi/package.json" + }, + { + "path": "node_modules/mississippi/node_modules/through2/package.json" + }, + { + "path": "node_modules/to-regex-range/package.json" + }, + { + "path": "node_modules/esrecurse/package.json" + }, + { + "path": "node_modules/@babel/highlight/package.json" + }, + { + "path": "node_modules/@babel/highlight/node_modules/supports-color/package.json" + }, + { + "path": "node_modules/@babel/highlight/node_modules/chalk/package.json" + }, + { + "path": "node_modules/@babel/parser/package.json" + }, + { + "path": "node_modules/@babel/code-frame/package.json" + }, + { + "path": "node_modules/schema-utils/package.json" + }, + { + "path": "node_modules/http-errors/package.json" + }, + { + "path": "node_modules/latest-version/package.json" + }, + { + "path": "node_modules/flush-write-stream/package.json" + }, + { + "path": "node_modules/url-parse-lax/package.json" + }, + { + "path": "node_modules/prr/package.json" + }, + { + "path": "node_modules/ecdsa-sig-formatter/package.json" + }, + { + "path": "node_modules/domhandler/package.json" + }, + { + "path": "node_modules/chalk/package.json" + }, + { + "path": "node_modules/chalk/node_modules/has-flag/package.json" + }, + { + "path": "node_modules/chalk/node_modules/supports-color/package.json" + }, + { + "path": "node_modules/chalk/node_modules/color-name/package.json" + }, + { + "path": "node_modules/chalk/node_modules/color-convert/package.json" + }, + { + "path": "node_modules/chalk/node_modules/ansi-styles/package.json" + }, + { + "path": "node_modules/stream-browserify/package.json" + }, + { + "path": "node_modules/process-nextick-args/package.json" + }, + { + "path": "node_modules/ssri/package.json" + }, + { + "path": "node_modules/protobufjs/package.json" + }, + { + "path": "node_modules/protobufjs/cli/package-lock.json" + }, + { + "path": "node_modules/protobufjs/cli/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/espree/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/source-map/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/word-wrap/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/has-flag/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/supports-color/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/optionator/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/uglify-js/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/acorn/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/esutils/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/prelude-ls/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/esprima/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/color-name/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/semver/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/chalk/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/type-check/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/levn/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/estraverse/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/color-convert/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/escodegen/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/acorn-jsx/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/acorn-jsx/node_modules/acorn/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/minimist/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/deep-is/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/escape-string-regexp/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/ansi-styles/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/commander/package.json" + }, + { + "path": "node_modules/protobufjs/cli/node_modules/fast-levenshtein/package.json" + }, + { + "path": "node_modules/protobufjs/node_modules/@types/node/package.json" + }, + { + "path": "node_modules/min-indent/package.json" + }, + { + "path": "node_modules/widest-line/package.json" + }, + { + "path": "node_modules/widest-line/node_modules/strip-ansi/package.json" + }, + { + "path": "node_modules/widest-line/node_modules/ansi-regex/package.json" + }, + { + "path": "node_modules/widest-line/node_modules/string-width/package.json" + }, + { + "path": "node_modules/which-module/package.json" + }, + { + "path": "node_modules/static-extend/package.json" + }, + { + "path": "node_modules/static-extend/node_modules/define-property/package.json" + }, + { + "path": "node_modules/path-parse/package.json" + }, + { + "path": "node_modules/jws/package.json" + }, + { + "path": "node_modules/timers-browserify/package.json" + }, + { + "path": "node_modules/linkify-it/package.json" + }, + { + "path": "node_modules/arr-diff/package.json" + }, + { + "path": "node_modules/ms/package.json" + }, + { + "path": "node_modules/is-symbol/package.json" + }, + { + "path": "node_modules/sha.js/index.js" + }, + { + "path": "node_modules/sha.js/hash.js" + }, + { + "path": "node_modules/sha.js/bin.js" + }, + { + "path": "node_modules/sha.js/sha224.js" + }, + { + "path": "node_modules/sha.js/sha256.js" + }, + { + "path": "node_modules/sha.js/.travis.yml" + }, + { + "path": "node_modules/sha.js/sha512.js" + }, + { + "path": "node_modules/sha.js/LICENSE" + }, + { + "path": "node_modules/sha.js/sha.js" + }, + { + "path": "node_modules/sha.js/sha384.js" + }, + { + "path": "node_modules/sha.js/package.json" + }, + { + "path": "node_modules/sha.js/sha1.js" + }, + { + "path": "node_modules/sha.js/README.md" + }, + { + "path": "node_modules/sha.js/test/hash.js" + }, + { + "path": "node_modules/sha.js/test/vectors.js" + }, + { + "path": "node_modules/sha.js/test/test.js" + }, + { + "path": "node_modules/istanbul-lib-coverage/package.json" + }, + { + "path": "node_modules/deep-extend/package.json" + }, + { + "path": "node_modules/has/package.json" + }, + { + "path": "node_modules/util/package.json" + }, + { + "path": "node_modules/util/node_modules/inherits/package.json" + }, + { + "path": "node_modules/is-arrayish/package.json" + }, + { + "path": "node_modules/wrappy/package.json" + }, + { + "path": "node_modules/class-utils/package.json" + }, + { + "path": "node_modules/class-utils/node_modules/define-property/package.json" + }, + { + "path": "node_modules/spdx-expression-parse/package.json" + }, + { + "path": "node_modules/source-map-resolve/package.json" + }, + { + "path": "node_modules/p-limit/package.json" + }, + { + "path": "node_modules/mute-stream/package.json" + }, + { + "path": "node_modules/is-number/package.json" + }, + { + "path": "node_modules/tslint/package.json" + }, + { + "path": "node_modules/tslint/node_modules/supports-color/package.json" + }, + { + "path": "node_modules/tslint/node_modules/semver/package.json" + }, + { + "path": "node_modules/tslint/node_modules/chalk/package.json" + }, + { + "path": "node_modules/loader-utils/package.json" + }, + { + "path": "node_modules/underscore/package.json" + }, + { + "path": "node_modules/estraverse/package.json" + }, + { + "path": "node_modules/invert-kv/package.json" + }, + { + "path": "node_modules/is-wsl/package.json" + }, + { + "path": "node_modules/eventemitter3/package.json" + }, + { + "path": "node_modules/is-plain-obj/package.json" + }, + { + "path": "node_modules/aproba/package.json" + }, + { + "path": "node_modules/foreground-child/package.json" + }, + { + "path": "node_modules/duplexify/package.json" + }, + { + "path": "node_modules/type-fest/package.json" + }, + { + "path": "node_modules/is-data-descriptor/package.json" + }, + { + "path": "node_modules/is-data-descriptor/node_modules/is-buffer/package.json" + }, + { + "path": "node_modules/is-data-descriptor/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/object-keys/package.json" + }, + { + "path": "node_modules/arr-flatten/package.json" + }, + { + "path": "node_modules/@grpc/proto-loader/package.json" + }, + { + "path": "node_modules/@grpc/grpc-js/package.json" + }, + { + "path": "node_modules/@grpc/grpc-js/node_modules/semver/package.json" + }, + { + "path": "node_modules/emoji-regex/package.json" + }, + { + "path": "node_modules/ncp/package.json" + }, + { + "path": "node_modules/ajv/package.json" + }, + { + "path": "node_modules/find-up/package.json" + }, + { + "path": "node_modules/color-convert/package.json" + }, + { + "path": "node_modules/lru-cache/package.json" + }, + { + "path": "node_modules/encodeurl/package.json" + }, + { + "path": "node_modules/pack-n-play/package.json" + }, + { + "path": "node_modules/pack-n-play/node_modules/tmp/package.json" + }, + { + "path": "node_modules/pack-n-play/node_modules/tmp/node_modules/rimraf/package.json" + }, + { + "path": "node_modules/minipass/package.json" + }, + { + "path": "node_modules/minipass/node_modules/yallist/package.json" + }, + { + "path": "node_modules/http-cache-semantics/package.json" + }, + { + "path": "node_modules/ini/package.json" + }, + { + "path": "node_modules/gaxios/package.json" + }, + { + "path": "node_modules/events/package.json" + }, + { + "path": "node_modules/typescript/package.json" + }, + { + "path": "node_modules/base64-js/package.json" + }, + { + "path": "node_modules/inquirer/package.json" + }, + { + "path": "node_modules/inquirer/node_modules/supports-color/package.json" + }, + { + "path": "node_modules/inquirer/node_modules/ansi-regex/package.json" + }, + { + "path": "node_modules/inquirer/node_modules/is-fullwidth-code-point/package.json" + }, + { + "path": "node_modules/inquirer/node_modules/chalk/package.json" + }, + { + "path": "node_modules/inquirer/node_modules/emoji-regex/package.json" + }, + { + "path": "node_modules/inquirer/node_modules/string-width/package.json" + }, + { + "path": "node_modules/inquirer/node_modules/string-width/node_modules/strip-ansi/package.json" + }, + { + "path": "node_modules/object.assign/package.json" + }, + { + "path": "node_modules/p-timeout/package.json" + }, + { + "path": "node_modules/readable-stream/package.json" + }, + { + "path": "node_modules/signal-exit/package.json" + }, + { + "path": "node_modules/pumpify/package.json" + }, + { + "path": "node_modules/pumpify/node_modules/pump/package.json" + }, + { + "path": "node_modules/finalhandler/package.json" + }, + { + "path": "node_modules/finalhandler/node_modules/debug/package.json" + }, + { + "path": "node_modules/finalhandler/node_modules/ms/package.json" + }, + { + "path": "node_modules/browserify-rsa/package.json" + }, + { + "path": "node_modules/path-type/package.json" + }, + { + "path": "node_modules/path-type/node_modules/pify/package.json" + }, + { + "path": "node_modules/console-browserify/package.json" + }, + { + "path": "node_modules/posix-character-classes/package.json" + }, + { + "path": "node_modules/locate-path/package.json" + }, + { + "path": "node_modules/is-yarn-global/package.json" + }, + { + "path": "node_modules/browserify-zlib/package.json" + }, + { + "path": "node_modules/cliui/package.json" + }, + { + "path": "node_modules/buffer-xor/package.json" + }, + { + "path": "node_modules/fs-minipass/package.json" + }, + { + "path": "node_modules/@types/fs-extra/package.json" + }, + { + "path": "node_modules/@types/fs-extra/node_modules/@types/node/package.json" + }, + { + "path": "node_modules/@types/color-name/package.json" + }, + { + "path": "node_modules/@types/long/package.json" + }, + { + "path": "node_modules/@types/istanbul-lib-coverage/package.json" + }, + { + "path": "node_modules/@types/minimist/package.json" + }, + { + "path": "node_modules/@types/mocha/package.json" + }, + { + "path": "node_modules/@types/is-windows/package.json" + }, + { + "path": "node_modules/@types/normalize-package-data/package.json" + }, + { + "path": "node_modules/@types/node/package.json" + }, + { + "path": "node_modules/got/package.json" + }, + { + "path": "node_modules/got/node_modules/get-stream/package.json" + }, + { + "path": "node_modules/anymatch/package.json" + }, + { + "path": "node_modules/anymatch/node_modules/fill-range/package.json" + }, + { + "path": "node_modules/anymatch/node_modules/fill-range/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/anymatch/node_modules/braces/package.json" + }, + { + "path": "node_modules/anymatch/node_modules/braces/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/anymatch/node_modules/micromatch/index.js" + }, + { + "path": "node_modules/anymatch/node_modules/micromatch/CHANGELOG.md" + }, + { + "path": "node_modules/anymatch/node_modules/micromatch/LICENSE" + }, + { + "path": "node_modules/anymatch/node_modules/micromatch/package.json" + }, + { + "path": "node_modules/anymatch/node_modules/micromatch/README.md" + }, + { + "path": "node_modules/anymatch/node_modules/micromatch/lib/cache.js" + }, + { + "path": "node_modules/anymatch/node_modules/micromatch/lib/parsers.js" + }, + { + "path": "node_modules/anymatch/node_modules/micromatch/lib/utils.js" + }, + { + "path": "node_modules/anymatch/node_modules/micromatch/lib/.DS_Store" + }, + { + "path": "node_modules/anymatch/node_modules/micromatch/lib/compilers.js" + }, + { + "path": "node_modules/anymatch/node_modules/to-regex-range/package.json" + }, + { + "path": "node_modules/anymatch/node_modules/is-number/package.json" + }, + { + "path": "node_modules/anymatch/node_modules/is-number/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/anymatch/node_modules/normalize-path/package.json" + }, + { + "path": "node_modules/anymatch/node_modules/is-buffer/package.json" + }, + { + "path": "node_modules/parse-json/package.json" + }, + { + "path": "node_modules/fragment-cache/package.json" + }, + { + "path": "node_modules/findup-sync/package.json" + }, + { + "path": "node_modules/findup-sync/node_modules/fill-range/package.json" + }, + { + "path": "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/findup-sync/node_modules/braces/package.json" + }, + { + "path": "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/findup-sync/node_modules/micromatch/index.js" + }, + { + "path": "node_modules/findup-sync/node_modules/micromatch/CHANGELOG.md" + }, + { + "path": "node_modules/findup-sync/node_modules/micromatch/LICENSE" + }, + { + "path": "node_modules/findup-sync/node_modules/micromatch/package.json" + }, + { + "path": "node_modules/findup-sync/node_modules/micromatch/README.md" + }, + { + "path": "node_modules/findup-sync/node_modules/micromatch/lib/cache.js" + }, + { + "path": "node_modules/findup-sync/node_modules/micromatch/lib/parsers.js" + }, + { + "path": "node_modules/findup-sync/node_modules/micromatch/lib/utils.js" + }, + { + "path": "node_modules/findup-sync/node_modules/micromatch/lib/.DS_Store" + }, + { + "path": "node_modules/findup-sync/node_modules/micromatch/lib/compilers.js" + }, + { + "path": "node_modules/findup-sync/node_modules/to-regex-range/package.json" + }, + { + "path": "node_modules/findup-sync/node_modules/is-number/package.json" + }, + { + "path": "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/findup-sync/node_modules/is-buffer/package.json" + }, + { + "path": "node_modules/he/package.json" + }, + { + "path": "node_modules/diffie-hellman/package.json" + }, + { + "path": "node_modules/constants-browserify/package.json" + }, + { + "path": "node_modules/minimist/package.json" + }, + { + "path": "node_modules/keyv/package.json" + }, + { + "path": "node_modules/diff/package.json" + }, + { + "path": "node_modules/ajv-keywords/package.json" + }, + { + "path": "node_modules/strip-json-comments/package.json" + }, + { + "path": "node_modules/spdx-exceptions/package.json" + }, + { + "path": "node_modules/resolve-from/package.json" + }, + { + "path": "node_modules/run-queue/package.json" + }, + { + "path": "node_modules/move-concurrently/package.json" + }, + { + "path": "node_modules/move-concurrently/node_modules/rimraf/package.json" + }, + { + "path": "node_modules/klaw/package.json" + }, + { + "path": "node_modules/bignumber.js/package.json" + }, + { + "path": "node_modules/safe-regex/package.json" + }, + { + "path": "node_modules/js2xmlparser/package.json" + }, + { + "path": "node_modules/normalize-path/package.json" + }, + { + "path": "node_modules/lodash/package.json" + }, + { + "path": "node_modules/google-p12-pem/package.json" + }, + { + "path": "node_modules/to-object-path/package.json" + }, + { + "path": "node_modules/to-object-path/node_modules/is-buffer/package.json" + }, + { + "path": "node_modules/to-object-path/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/clone-response/package.json" + }, + { + "path": "node_modules/package-json/package.json" + }, + { + "path": "node_modules/package-json/node_modules/semver/package.json" + }, + { + "path": "node_modules/html-escaper/package.json" + }, + { + "path": "node_modules/fast-deep-equal/package.json" + }, + { + "path": "node_modules/mocha/package.json" + }, + { + "path": "node_modules/mocha/node_modules/path-exists/package.json" + }, + { + "path": "node_modules/mocha/node_modules/supports-color/package.json" + }, + { + "path": "node_modules/mocha/node_modules/debug/package.json" + }, + { + "path": "node_modules/mocha/node_modules/yargs/package.json" + }, + { + "path": "node_modules/mocha/node_modules/which/package.json" + }, + { + "path": "node_modules/mocha/node_modules/ms/package.json" + }, + { + "path": "node_modules/mocha/node_modules/find-up/package.json" + }, + { + "path": "node_modules/mocha/node_modules/locate-path/package.json" + }, + { + "path": "node_modules/mocha/node_modules/diff/package.json" + }, + { + "path": "node_modules/mocha/node_modules/p-locate/package.json" + }, + { + "path": "node_modules/mocha/node_modules/yargs-parser/package.json" + }, + { + "path": "node_modules/mocha/node_modules/glob/package.json" + }, + { + "path": "node_modules/stream-each/package.json" + }, + { + "path": "node_modules/fresh/package.json" + }, + { + "path": "node_modules/registry-url/package.json" + }, + { + "path": "node_modules/global-modules/package.json" + }, + { + "path": "node_modules/global-modules/node_modules/global-prefix/package.json" + }, + { + "path": "node_modules/global-modules/node_modules/which/package.json" + }, + { + "path": "node_modules/redent/package.json" + }, + { + "path": "node_modules/decamelize-keys/package.json" + }, + { + "path": "node_modules/decamelize-keys/node_modules/map-obj/package.json" + }, + { + "path": "node_modules/path-browserify/package.json" + }, + { + "path": "node_modules/requizzle/package.json" + }, + { + "path": "node_modules/lodash.has/package.json" + }, + { + "path": "node_modules/p-finally/package.json" + }, + { + "path": "node_modules/end-of-stream/package.json" + }, + { + "path": "node_modules/is-extendable/package.json" + }, + { + "path": "node_modules/safe-buffer/package.json" + }, + { + "path": "node_modules/term-size/package.json" + }, + { + "path": "node_modules/linkinator/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/indent-string/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/strip-ansi/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/unique-string/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/read-pkg/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/read-pkg/node_modules/type-fest/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/global-dirs/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/is-npm/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/meow/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/trim-newlines/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/is-path-inside/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/quick-lru/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/ansi-regex/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/is-installed-globally/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/configstore/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/semver-diff/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/minimist-options/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/read-pkg-up/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/map-obj/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/strip-indent/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/crypto-random-string/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/camelcase-keys/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/make-dir/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/is-obj/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/is-fullwidth-code-point/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/semver/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/widest-line/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/emoji-regex/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/parse-json/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/redent/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/term-size/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/update-notifier/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/dot-prop/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/xdg-basedir/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/yargs-parser/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/boxen/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/arrify/package.json" + }, + { + "path": "node_modules/linkinator/node_modules/string-width/package.json" + }, + { + "path": "node_modules/big.js/package.json" + }, + { + "path": "node_modules/is-typedarray/package.json" + }, + { + "path": "node_modules/update-notifier/package.json" + }, + { + "path": "node_modules/update-notifier/node_modules/supports-color/package.json" + }, + { + "path": "node_modules/update-notifier/node_modules/chalk/package.json" + }, + { + "path": "node_modules/mkdirp/package.json" + }, + { + "path": "node_modules/commondir/package.json" + }, + { + "path": "node_modules/concat-map/package.json" + }, + { + "path": "node_modules/external-editor/package.json" + }, + { + "path": "node_modules/is-buffer/package.json" + }, + { + "path": "node_modules/nth-check/package.json" + }, + { + "path": "node_modules/regex-not/package.json" + }, + { + "path": "node_modules/from2/package.json" + }, + { + "path": "node_modules/chokidar/package.json" + }, + { + "path": "node_modules/chokidar/node_modules/fill-range/package.json" + }, + { + "path": "node_modules/chokidar/node_modules/braces/package.json" + }, + { + "path": "node_modules/chokidar/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/chokidar/node_modules/to-regex-range/package.json" + }, + { + "path": "node_modules/chokidar/node_modules/is-number/package.json" + }, + { + "path": "node_modules/chokidar/node_modules/is-buffer/package.json" + }, + { + "path": "node_modules/chokidar/node_modules/kind-of/package.json" + }, + { + "path": "node_modules/get-caller-file/package.json" + }, + { + "path": "node_modules/map-visit/package.json" + }, + { + "path": "node_modules/lodash.at/package.json" + }, + { + "path": "node_modules/parse-passwd/package.json" + }, + { + "path": "node_modules/elliptic/package.json" + }, + { + "path": "node_modules/ansi-colors/package.json" + }, + { + "path": "node_modules/.bin/sha.js" + }, + { + "path": "node_modules/hmac-drbg/package.json" + }, + { + "path": "node_modules/setimmediate/package.json" + }, + { + "path": "node_modules/browserify-des/package.json" + }, + { + "path": "node_modules/c8/package.json" + }, + { + "path": "node_modules/path-is-inside/package.json" + }, + { + "path": "node_modules/lodash.camelcase/package.json" + }, + { + "path": "node_modules/wrap-ansi/package.json" + }, + { + "path": "node_modules/infer-owner/package.json" + }, + { + "path": "node_modules/bluebird/package.json" + }, + { + "path": "node_modules/p-locate/package.json" + }, + { + "path": "node_modules/ajv-errors/package.json" + }, + { + "path": "node_modules/rc/package.json" + }, + { + "path": "node_modules/rc/node_modules/minimist/package.json" + }, + { + "path": "node_modules/url/package.json" + }, + { + "path": "node_modules/url/node_modules/punycode/package.json" + }, + { + "path": "node_modules/dot-prop/package.json" + }, + { + "path": "node_modules/create-ecdh/package.json" + }, + { + "path": "node_modules/browserify-aes/package.json" + }, + { + "path": "node_modules/mixin-deep/package.json" + }, + { + "path": "node_modules/mixin-deep/node_modules/is-extendable/package.json" + }, + { + "path": "node_modules/browser-stdout/package.json" + }, + { + "path": "node_modules/assert/package.json" + }, + { + "path": "node_modules/assert/node_modules/inherits/package.json" + }, + { + "path": "node_modules/assert/node_modules/util/package.json" + }, + { + "path": "node_modules/spdx-license-ids/package.json" + }, + { + "path": "node_modules/jsonexport/package.json" + }, + { + "path": "node_modules/istanbul-reports/package.json" + }, + { + "path": "node_modules/remove-trailing-separator/package.json" + }, + { + "path": "node_modules/iferr/package.json" + }, + { + "path": "node_modules/on-finished/package.json" + }, + { + "path": "node_modules/require-main-filename/package.json" + }, + { + "path": "node_modules/object-visit/package.json" + }, + { + "path": "node_modules/string.prototype.trimleft/package.json" + }, + { + "path": "node_modules/map-age-cleaner/package.json" + }, + { + "path": "node_modules/escape-string-regexp/package.json" + }, + { + "path": "node_modules/log-symbols/package.json" + }, + { + "path": "node_modules/log-symbols/node_modules/supports-color/package.json" + }, + { + "path": "node_modules/log-symbols/node_modules/chalk/package.json" + }, + { + "path": "node_modules/defer-to-connect/package.json" + }, + { + "path": "node_modules/htmlparser2/package.json" + }, + { + "path": "node_modules/htmlparser2/node_modules/readable-stream/package.json" + }, + { + "path": "node_modules/p-cancelable/package.json" + }, + { + "path": "node_modules/ansi-align/package.json" + }, + { + "path": "node_modules/cacache/package.json" + }, + { + "path": "node_modules/cacache/node_modules/rimraf/package.json" + }, + { + "path": "node_modules/marked/package.json" + }, + { + "path": "node_modules/mamacro/package.json" + }, + { + "path": "node_modules/ansi-styles/package.json" + }, + { + "path": "node_modules/xdg-basedir/package.json" + }, + { + "path": "node_modules/emojis-list/package.json" + }, + { + "path": "node_modules/bn.js/package.json" + }, + { + "path": "node_modules/ripemd160/package.json" + }, + { + "path": "node_modules/commander/package.json" + }, + { + "path": "node_modules/asn1.js/package.json" + }, + { + "path": "node_modules/tar/package.json" + }, + { + "path": "node_modules/tar/node_modules/yallist/package.json" + }, + { + "path": "node_modules/walkdir/package.json" + }, + { + "path": "node_modules/os-tmpdir/package.json" + }, + { + "path": "node_modules/prepend-http/package.json" + }, + { + "path": "node_modules/lines-and-columns/package.json" + }, + { + "path": "node_modules/resolve/package.json" + }, + { + "path": "node_modules/is-windows/package.json" + }, + { + "path": "node_modules/p-queue/package.json" + }, + { + "path": "node_modules/kind-of/package.json" + }, + { + "path": "node_modules/loader-runner/package.json" + }, + { + "path": "node_modules/is-binary-path/package.json" + }, + { + "path": "node_modules/builtin-status-codes/package.json" + }, + { + "path": "node_modules/through/package.json" + }, + { + "path": "node_modules/minizlib/package.json" + }, + { + "path": "node_modules/minizlib/node_modules/yallist/package.json" + }, + { + "path": "node_modules/normalize-package-data/package.json" + }, + { + "path": "node_modules/normalize-package-data/node_modules/semver/package.json" + }, + { + "path": "node_modules/yargs-parser/package.json" + }, + { + "path": "node_modules/convert-source-map/package.json" + }, + { + "path": "node_modules/homedir-polyfill/package.json" + }, + { + "path": "node_modules/vm-browserify/package.json" + }, + { + "path": "node_modules/unset-value/package.json" + }, + { + "path": "node_modules/unset-value/node_modules/has-values/package.json" + }, + { + "path": "node_modules/unset-value/node_modules/has-value/package.json" + }, + { + "path": "node_modules/unset-value/node_modules/has-value/node_modules/isobject/package.json" + }, + { + "path": "node_modules/glob/package.json" + }, + { + "path": "node_modules/ee-first/package.json" + }, + { + "path": "node_modules/async-each/package.json" + }, + { + "path": "node_modules/repeat-element/package.json" + }, + { + "path": "node_modules/extend/package.json" + }, + { + "path": "node_modules/isobject/package.json" + }, + { + "path": "node_modules/pako/package.json" + }, + { + "path": "node_modules/test-exclude/package.json" + }, + { + "path": "node_modules/boxen/package.json" + }, + { + "path": "node_modules/boxen/node_modules/supports-color/package.json" + }, + { + "path": "node_modules/boxen/node_modules/chalk/package.json" + }, + { + "path": "node_modules/boxen/node_modules/type-fest/package.json" + }, + { + "path": "node_modules/arrify/package.json" + }, + { + "path": "node_modules/@webassemblyjs/floating-point-hex-parser/package.json" + }, + { + "path": "node_modules/@webassemblyjs/wast-printer/package.json" + }, + { + "path": "node_modules/@webassemblyjs/wasm-opt/package.json" + }, + { + "path": "node_modules/@webassemblyjs/wasm-gen/package.json" + }, + { + "path": "node_modules/@webassemblyjs/helper-buffer/package.json" + }, + { + "path": "node_modules/@webassemblyjs/utf8/package.json" + }, + { + "path": "node_modules/@webassemblyjs/wast-parser/package.json" + }, + { + "path": "node_modules/@webassemblyjs/ieee754/package.json" + }, + { + "path": "node_modules/@webassemblyjs/ast/package.json" + }, + { + "path": "node_modules/@webassemblyjs/helper-module-context/package.json" + }, + { + "path": "node_modules/@webassemblyjs/helper-api-error/package.json" + }, + { + "path": "node_modules/@webassemblyjs/leb128/package.json" + }, + { + "path": "node_modules/@webassemblyjs/helper-wasm-bytecode/package.json" + }, + { + "path": "node_modules/@webassemblyjs/helper-fsm/package.json" + }, + { + "path": "node_modules/@webassemblyjs/wasm-parser/package.json" + }, + { + "path": "node_modules/@webassemblyjs/helper-wasm-section/package.json" + }, + { + "path": "node_modules/@webassemblyjs/wasm-edit/package.json" + }, + { + "path": "node_modules/@webassemblyjs/helper-code-frame/package.json" + }, + { + "path": "node_modules/@xtuc/long/package.json" + }, + { + "path": "node_modules/@xtuc/ieee754/package.json" + }, + { + "path": "node_modules/fs-write-stream-atomic/package.json" + }, + { + "path": "node_modules/snapdragon/index.js" + }, + { + "path": "node_modules/snapdragon/LICENSE" + }, + { + "path": "node_modules/snapdragon/package.json" + }, + { + "path": "node_modules/snapdragon/README.md" + }, + { + "path": "node_modules/snapdragon/lib/position.js" + }, + { + "path": "node_modules/snapdragon/lib/compiler.js" + }, + { + "path": "node_modules/snapdragon/lib/utils.js" + }, + { + "path": "node_modules/snapdragon/lib/source-maps.js" + }, + { + "path": "node_modules/snapdragon/lib/parser.js" + }, + { + "path": "node_modules/snapdragon/node_modules/source-map/package.json" + }, + { + "path": "node_modules/snapdragon/node_modules/debug/package.json" + }, + { + "path": "node_modules/snapdragon/node_modules/define-property/package.json" + }, + { + "path": "node_modules/snapdragon/node_modules/extend-shallow/package.json" + }, + { + "path": "node_modules/snapdragon/node_modules/ms/package.json" + }, + { + "path": "node_modules/function-bind/package.json" + }, + { + "path": "node_modules/gcp-metadata/package.json" + }, + { + "path": "node_modules/string-width/package.json" + }, + { + "path": "node_modules/domelementtype/package.json" + }, + { + "path": "node_modules/y18n/package.json" + }, + { + "path": "node_modules/parallel-transform/package.json" + }, + { + "path": "node_modules/glob-parent/package.json" + }, + { + "path": "node_modules/glob-parent/node_modules/is-glob/package.json" + }, + { + "path": "node_modules/resolve-cwd/package.json" + } + ] +} \ No newline at end of file diff --git a/packages/google-cloud-recommender/synth.py b/packages/google-cloud-recommender/synth.py index 5230df43608..1bbfd839044 100644 --- a/packages/google-cloud-recommender/synth.py +++ b/packages/google-cloud-recommender/synth.py @@ -37,7 +37,7 @@ }, extra_proto_files=['google/cloud/common_resources.proto'], ) - s.copy(library, excludes=['README.md']) + s.copy(library, excludes=['package.json', 'README.md']) # Copy common templates common_templates = gcp.CommonTemplates() diff --git a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js new file mode 100644 index 00000000000..7e65e07cef6 --- /dev/null +++ b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js @@ -0,0 +1,27 @@ +// Copyright 2019 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. ** + + +/* eslint-disable node/no-missing-require, no-unused-vars */ +const recommender = require('@google-cloud/recommender'); + +function main() { + const recommenderClient = new recommender.RecommenderClient(); +} + +main(); diff --git a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts new file mode 100644 index 00000000000..010dcd91715 --- /dev/null +++ b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts @@ -0,0 +1,25 @@ +// Copyright 2019 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. ** + +import {RecommenderClient} from '@google-cloud/recommender'; + +function main() { + const recommenderClient = new RecommenderClient(); +} + +main(); diff --git a/packages/google-cloud-recommender/system-test/install.ts b/packages/google-cloud-recommender/system-test/install.ts new file mode 100644 index 00000000000..c9aa74ec221 --- /dev/null +++ b/packages/google-cloud-recommender/system-test/install.ts @@ -0,0 +1,51 @@ +// Copyright 2019 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. ** + +import {packNTest} from 'pack-n-play'; +import {readFileSync} from 'fs'; +import {describe, it} from 'mocha'; + +describe('typescript consumer tests', () => { + it('should have correct type signature for typescript users', async function() { + this.timeout(300000); + const options = { + packageDir: process.cwd(), // path to your module. + sample: { + description: 'typescript based user can use the type definitions', + ts: readFileSync( + './system-test/fixtures/sample/src/index.ts' + ).toString(), + }, + }; + await packNTest(options); // will throw upon error. + }); + + it('should have correct type signature for javascript users', async function() { + this.timeout(300000); + const options = { + packageDir: process.cwd(), // path to your module. + sample: { + description: 'typescript based user can use the type definitions', + ts: readFileSync( + './system-test/fixtures/sample/src/index.js' + ).toString(), + }, + }; + await packNTest(options); // will throw upon error. + }); +}); diff --git a/packages/google-cloud-recommender/test/gapic-recommender-v1beta1.ts b/packages/google-cloud-recommender/test/gapic-recommender-v1beta1.ts new file mode 100644 index 00000000000..67f7fdd4f7c --- /dev/null +++ b/packages/google-cloud-recommender/test/gapic-recommender-v1beta1.ts @@ -0,0 +1,334 @@ +// Copyright 2019 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. ** + +import * as protosTypes from '../protos/protos'; +import * as assert from 'assert'; +import {describe, it} from 'mocha'; +const recommenderModule = require('../src'); + +const FAKE_STATUS_CODE = 1; +class FakeError { + name: string; + message: string; + code: number; + constructor(n: number) { + this.name = 'fakeName'; + this.message = 'fake message'; + this.code = n; + } +} +const error = new FakeError(FAKE_STATUS_CODE); +export interface Callback { + (err: FakeError | null, response?: {} | null): void; +} + +export class Operation { + constructor() {} + promise() {} +} +function mockSimpleGrpcMethod( + expectedRequest: {}, + response: {} | null, + error: FakeError | null +) { + return (actualRequest: {}, options: {}, callback: Callback) => { + assert.deepStrictEqual(actualRequest, expectedRequest); + if (error) { + callback(error); + } else if (response) { + callback(null, response); + } else { + callback(null); + } + }; +} +describe('v1beta1.RecommenderClient', () => { + it('has servicePath', () => { + const servicePath = recommenderModule.v1beta1.RecommenderClient.servicePath; + assert(servicePath); + }); + it('has apiEndpoint', () => { + const apiEndpoint = recommenderModule.v1beta1.RecommenderClient.apiEndpoint; + assert(apiEndpoint); + }); + it('has port', () => { + const port = recommenderModule.v1beta1.RecommenderClient.port; + assert(port); + assert(typeof port === 'number'); + }); + it('should create a client with no option', () => { + const client = new recommenderModule.v1beta1.RecommenderClient(); + assert(client); + }); + it('should create a client with gRPC fallback', () => { + const client = new recommenderModule.v1beta1.RecommenderClient({ + fallback: true, + }); + assert(client); + }); + describe('getRecommendation', () => { + it('invokes getRecommendation without error', done => { + const client = new recommenderModule.v1beta1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + // Mock request + const request: protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest = {}; + // Mock response + const expectedResponse = {}; + // Mock gRPC layer + client._innerApiCalls.getRecommendation = mockSimpleGrpcMethod( + request, + expectedResponse, + null + ); + client.getRecommendation(request, (err: {}, response: {}) => { + assert.ifError(err); + assert.deepStrictEqual(response, expectedResponse); + done(); + }); + }); + + it('invokes getRecommendation with error', done => { + const client = new recommenderModule.v1beta1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + // Mock request + const request: protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest = {}; + // Mock response + const expectedResponse = {}; + // Mock gRPC layer + client._innerApiCalls.getRecommendation = mockSimpleGrpcMethod( + request, + null, + error + ); + client.getRecommendation(request, (err: FakeError, response: {}) => { + assert(err instanceof FakeError); + assert.strictEqual(err.code, FAKE_STATUS_CODE); + assert(typeof response === 'undefined'); + done(); + }); + }); + }); + describe('markRecommendationClaimed', () => { + it('invokes markRecommendationClaimed without error', done => { + const client = new recommenderModule.v1beta1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + // Mock request + const request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest = {}; + // Mock response + const expectedResponse = {}; + // Mock gRPC layer + client._innerApiCalls.markRecommendationClaimed = mockSimpleGrpcMethod( + request, + expectedResponse, + null + ); + client.markRecommendationClaimed(request, (err: {}, response: {}) => { + assert.ifError(err); + assert.deepStrictEqual(response, expectedResponse); + done(); + }); + }); + + it('invokes markRecommendationClaimed with error', done => { + const client = new recommenderModule.v1beta1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + // Mock request + const request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest = {}; + // Mock response + const expectedResponse = {}; + // Mock gRPC layer + client._innerApiCalls.markRecommendationClaimed = mockSimpleGrpcMethod( + request, + null, + error + ); + client.markRecommendationClaimed( + request, + (err: FakeError, response: {}) => { + assert(err instanceof FakeError); + assert.strictEqual(err.code, FAKE_STATUS_CODE); + assert(typeof response === 'undefined'); + done(); + } + ); + }); + }); + describe('markRecommendationSucceeded', () => { + it('invokes markRecommendationSucceeded without error', done => { + const client = new recommenderModule.v1beta1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + // Mock request + const request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest = {}; + // Mock response + const expectedResponse = {}; + // Mock gRPC layer + client._innerApiCalls.markRecommendationSucceeded = mockSimpleGrpcMethod( + request, + expectedResponse, + null + ); + client.markRecommendationSucceeded(request, (err: {}, response: {}) => { + assert.ifError(err); + assert.deepStrictEqual(response, expectedResponse); + done(); + }); + }); + + it('invokes markRecommendationSucceeded with error', done => { + const client = new recommenderModule.v1beta1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + // Mock request + const request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest = {}; + // Mock response + const expectedResponse = {}; + // Mock gRPC layer + client._innerApiCalls.markRecommendationSucceeded = mockSimpleGrpcMethod( + request, + null, + error + ); + client.markRecommendationSucceeded( + request, + (err: FakeError, response: {}) => { + assert(err instanceof FakeError); + assert.strictEqual(err.code, FAKE_STATUS_CODE); + assert(typeof response === 'undefined'); + done(); + } + ); + }); + }); + describe('markRecommendationFailed', () => { + it('invokes markRecommendationFailed without error', done => { + const client = new recommenderModule.v1beta1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + // Mock request + const request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest = {}; + // Mock response + const expectedResponse = {}; + // Mock gRPC layer + client._innerApiCalls.markRecommendationFailed = mockSimpleGrpcMethod( + request, + expectedResponse, + null + ); + client.markRecommendationFailed(request, (err: {}, response: {}) => { + assert.ifError(err); + assert.deepStrictEqual(response, expectedResponse); + done(); + }); + }); + + it('invokes markRecommendationFailed with error', done => { + const client = new recommenderModule.v1beta1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + // Mock request + const request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest = {}; + // Mock response + const expectedResponse = {}; + // Mock gRPC layer + client._innerApiCalls.markRecommendationFailed = mockSimpleGrpcMethod( + request, + null, + error + ); + client.markRecommendationFailed( + request, + (err: FakeError, response: {}) => { + assert(err instanceof FakeError); + assert.strictEqual(err.code, FAKE_STATUS_CODE); + assert(typeof response === 'undefined'); + done(); + } + ); + }); + }); + describe('listRecommendations', () => { + it('invokes listRecommendations without error', done => { + const client = new recommenderModule.v1beta1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + // Mock request + const request: protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest = {}; + // Mock response + const expectedResponse = {}; + // Mock Grpc layer + client._innerApiCalls.listRecommendations = ( + actualRequest: {}, + options: {}, + callback: Callback + ) => { + assert.deepStrictEqual(actualRequest, request); + callback(null, expectedResponse); + }; + client.listRecommendations(request, (err: FakeError, response: {}) => { + assert.ifError(err); + assert.deepStrictEqual(response, expectedResponse); + done(); + }); + }); + }); + describe('listRecommendationsStream', () => { + it('invokes listRecommendationsStream without error', done => { + const client = new recommenderModule.v1beta1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + // Mock request + const request: protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest = {}; + // Mock response + const expectedResponse = {}; + // Mock Grpc layer + client._innerApiCalls.listRecommendations = ( + actualRequest: {}, + options: {}, + callback: Callback + ) => { + assert.deepStrictEqual(actualRequest, request); + callback(null, expectedResponse); + }; + const stream = client + .listRecommendationsStream(request, {}) + .on('data', (response: {}) => { + assert.deepStrictEqual(response, expectedResponse); + done(); + }) + .on('error', (err: FakeError) => { + done(err); + }); + stream.write(request); + }); + }); +}); diff --git a/packages/google-cloud-recommender/tsconfig.json b/packages/google-cloud-recommender/tsconfig.json new file mode 100644 index 00000000000..613d35597b5 --- /dev/null +++ b/packages/google-cloud-recommender/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "./node_modules/gts/tsconfig-google.json", + "compilerOptions": { + "rootDir": ".", + "outDir": "build", + "resolveJsonModule": true, + "lib": [ + "es2016", + "dom" + ] + }, + "include": [ + "src/*.ts", + "src/**/*.ts", + "test/*.ts", + "test/**/*.ts", + "system-test/*.ts" + ] +} diff --git a/packages/google-cloud-recommender/tslint.json b/packages/google-cloud-recommender/tslint.json new file mode 100644 index 00000000000..617dc975bae --- /dev/null +++ b/packages/google-cloud-recommender/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "gts/tslint.json" +} diff --git a/packages/google-cloud-recommender/webpack.config.js b/packages/google-cloud-recommender/webpack.config.js new file mode 100644 index 00000000000..7702939a813 --- /dev/null +++ b/packages/google-cloud-recommender/webpack.config.js @@ -0,0 +1,64 @@ +// Copyright 2019 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. + +const path = require('path'); + +module.exports = { + entry: './src/index.ts', + output: { + library: 'DataCatalog', + filename: './data-catalog.js', + }, + node: { + child_process: 'empty', + fs: 'empty', + crypto: 'empty', + }, + resolve: { + alias: { + '../../../package.json': path.resolve(__dirname, 'package.json'), + }, + extensions: ['.js', '.json', '.ts'], + }, + module: { + rules: [ + { + test: /\.tsx?$/, + use: 'ts-loader', + exclude: /node_modules/ + }, + { + test: /node_modules[\\/]@grpc[\\/]grpc-js/, + use: 'null-loader' + }, + { + test: /node_modules[\\/]grpc/, + use: 'null-loader' + }, + { + test: /node_modules[\\/]retry-request/, + use: 'null-loader' + }, + { + test: /node_modules[\\/]https?-proxy-agent/, + use: 'null-loader' + }, + { + test: /node_modules[\\/]gtoken/, + use: 'null-loader' + }, + ], + }, + mode: 'production', +}; From bd1ba510516bcf414f7586a474e2cba2cabb8e7f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 14:18:34 -0800 Subject: [PATCH 004/158] chore: release 1.0.0 (#2) --- packages/google-cloud-recommender/CHANGELOG.md | 13 +++++++++++++ packages/google-cloud-recommender/package.json | 2 +- .../google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 packages/google-cloud-recommender/CHANGELOG.md diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md new file mode 100644 index 00000000000..348e9764f2d --- /dev/null +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -0,0 +1,13 @@ +# Changelog + +## 1.0.0 (2020-01-14) + + +### ⚠ BREAKING CHANGES + +* initial generation of library (#1) + +### Features + +* initial generation of library ([#1](https://www.github.com/googleapis/nodejs-recommender/issues/1)) ([a5187e5](https://www.github.com/googleapis/nodejs-recommender/commit/a5187e50120a0bd2bba5514acd945ad9ef5a4dcb)) +* stub out initial version of library ([c27ee9f](https://www.github.com/googleapis/nodejs-recommender/commit/c27ee9fb6bf1ec3821c72df77a0aef269e86f2fd)) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 714a174a805..4e0b0768284 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "0.1.0", + "version": "1.0.0", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 167e9721bf2..3d813ae53cf 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^0.1.0" + "@google-cloud/recommender": "^1.0.0" }, "devDependencies": { "c8": "^5.0.1", From 1af99bc9f0173636e5cd0d8b2e41d166b40b8595 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 16 Jan 2020 17:21:45 -0800 Subject: [PATCH 005/158] docs: update README with sample --- packages/google-cloud-recommender/README.md | 37 +- .../v1beta1/recommender_service.proto | 2 +- .../protos/protos.json | 2 +- .../samples/README.md | 50 + .../google-cloud-recommender/synth.metadata | 3323 +---------------- 5 files changed, 90 insertions(+), 3324 deletions(-) create mode 100644 packages/google-cloud-recommender/samples/README.md diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index e6cf43adc5c..6c9ec2768d9 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -29,8 +29,8 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. * [Quickstart](#quickstart) * [Before you begin](#before-you-begin) * [Installing the client library](#installing-the-client-library) - - + * [Using the client library](#using-the-client-library) +* [Samples](#samples) * [Versioning](#versioning) * [Contributing](#contributing) * [License](#license) @@ -52,6 +52,39 @@ npm install @google-cloud/recommender ``` +### Using the client library + +```javascript + async function listRecommendations() { + const {RecommenderClient} = require('@google-cloud/recommender'); + const recommender = new RecommenderClient(); + + // parent = 'projects/my-project'; // Project to fetch recommendations for. + // recommenderId = 'google.compute.instance.MachineTypeRecommender'; + + const [recommendations] = await recommender.listRecommendations({ + parent: recommender.recommenderPath(project, 'global', recommenderId), + }); + console.info(`recommendations for ${recommenderId}:`); + for (const recommendation of recommendations) { + console.info(recommendation); + } + return recommendations; + } + const recommendations = await listRecommendations(); + +``` + + + +## Samples + +Samples are in the [`samples/`](https://github.com/googleapis/nodejs-recommender/tree/master/samples) directory. The samples' `README.md` +has instructions for running the samples. + +| Sample | Source Code | Try it | +| --------------------------- | --------------------------------- | ------ | +| Quickstart | [source code](https://github.com/googleapis/nodejs-recommender/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-recommender&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommender_service.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommender_service.proto index e6824b11dca..5beee2972f3 100644 --- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommender_service.proto +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommender_service.proto @@ -23,7 +23,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/recommender/v1beta1/recommendation.proto"; -option csharp_namespace = "Google.Cloud.Recommmender.V1Beta1"; +option csharp_namespace = "Google.Cloud.Recommender.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/recommender/v1beta1;recommender"; option java_multiple_files = true; option java_outer_classname = "RecommenderProto"; diff --git a/packages/google-cloud-recommender/protos/protos.json b/packages/google-cloud-recommender/protos/protos.json index 3eb73bc80c5..5d651b4ebac 100644 --- a/packages/google-cloud-recommender/protos/protos.json +++ b/packages/google-cloud-recommender/protos/protos.json @@ -8,7 +8,7 @@ "nested": { "v1beta1": { "options": { - "csharp_namespace": "Google.Cloud.Recommmender.V1Beta1", + "csharp_namespace": "Google.Cloud.Recommender.V1Beta1", "go_package": "google.golang.org/genproto/googleapis/cloud/recommender/v1beta1;recommender", "java_multiple_files": true, "java_package": "com.google.cloud.recommender.v1beta1", diff --git a/packages/google-cloud-recommender/samples/README.md b/packages/google-cloud-recommender/samples/README.md new file mode 100644 index 00000000000..66abb93b01f --- /dev/null +++ b/packages/google-cloud-recommender/samples/README.md @@ -0,0 +1,50 @@ +[//]: # "This README.md file is auto-generated, all changes to this file will be lost." +[//]: # "To regenerate it, use `python -m synthtool`." +Google Cloud Platform logo + +# [Recommender: Node.js Samples](https://github.com/googleapis/nodejs-recommender) + +[![Open in Cloud Shell][shell_img]][shell_link] + + + +## Table of Contents + +* [Before you begin](#before-you-begin) +* [Samples](#samples) + * [Quickstart](#quickstart) + +## Before you begin + +Before running the samples, make sure you've followed the steps outlined in +[Using the client library](https://github.com/googleapis/nodejs-recommender#using-the-client-library). + +`cd samples` + +`npm install` + +`cd ..` + +## Samples + + + +### Quickstart + +View the [source code](https://github.com/googleapis/nodejs-recommender/blob/master/samples/quickstart.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-recommender&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) + +__Usage:__ + + +`node samples/quickstart.js` + + + + + + +[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png +[shell_link]: https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-recommender&page=editor&open_in_editor=samples/README.md +[product-docs]: https://cloud.google.com/recommender/docs diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 5934d0b3e42..f1b690c1cd6 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -1,12 +1,12 @@ { - "updateTime": "2020-01-14T18:13:40.804255Z", + "updateTime": "2020-01-15T12:28:55.787006Z", "sources": [ { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "2fa8d48165cc48e35b0c62e6f7bdade12229326c", - "internalRef": "289619243" + "sha": "d99df0d67057a233c711187e0689baa4f8e6333d", + "internalRef": "289709813" } }, { @@ -27,3322 +27,5 @@ "generator": "gapic-generator-typescript" } } - ], - "newFiles": [ - { - "path": "CONTRIBUTING.md" - }, - { - "path": ".prettierignore" - }, - { - "path": "package-lock.json" - }, - { - "path": ".eslintignore" - }, - { - "path": "tslint.json" - }, - { - "path": "CODE_OF_CONDUCT.md" - }, - { - "path": "codecov.yaml" - }, - { - "path": "webpack.config.js" - }, - { - "path": ".nycrc" - }, - { - "path": "linkinator.config.json" - }, - { - "path": "LICENSE" - }, - { - "path": ".eslintrc.yml" - }, - { - "path": "renovate.json" - }, - { - "path": "package.json" - }, - { - "path": ".jsdoc.js" - }, - { - "path": "tsconfig.json" - }, - { - "path": ".prettierrc" - }, - { - "path": "README.md" - }, - { - "path": "test/gapic-recommender-v1beta1.ts" - }, - { - "path": "protos/protos.json" - }, - { - "path": "protos/protos.js" - }, - { - "path": "protos/protos.d.ts" - }, - { - "path": "protos/google/cloud/common_resources.proto" - }, - { - "path": "protos/google/cloud/recommender/v1beta1/recommender_service.proto" - }, - { - "path": "protos/google/cloud/recommender/v1beta1/recommendation.proto" - }, - { - "path": "system-test/install.ts" - }, - { - "path": "system-test/fixtures/sample/src/index.js" - }, - { - "path": "system-test/fixtures/sample/src/index.ts" - }, - { - "path": ".kokoro/test.sh" - }, - { - "path": ".kokoro/system-test.sh" - }, - { - "path": ".kokoro/trampoline.sh" - }, - { - "path": ".kokoro/publish.sh" - }, - { - "path": ".kokoro/test.bat" - }, - { - "path": ".kokoro/lint.sh" - }, - { - "path": ".kokoro/common.cfg" - }, - { - "path": ".kokoro/docs.sh" - }, - { - "path": ".kokoro/samples-test.sh" - }, - { - "path": ".kokoro/continuous/node8/test.cfg" - }, - { - "path": ".kokoro/continuous/node8/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/test.cfg" - }, - { - "path": ".kokoro/continuous/node10/system-test.cfg" - }, - { - "path": ".kokoro/continuous/node10/lint.cfg" - }, - { - "path": ".kokoro/continuous/node10/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/docs.cfg" - }, - { - "path": ".kokoro/continuous/node10/samples-test.cfg" - }, - { - "path": ".kokoro/continuous/node12/test.cfg" - }, - { - "path": ".kokoro/continuous/node12/common.cfg" - }, - { - "path": ".kokoro/presubmit/node8/test.cfg" - }, - { - "path": ".kokoro/presubmit/node8/common.cfg" - }, - { - "path": ".kokoro/presubmit/node10/test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/system-test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/lint.cfg" - }, - { - "path": ".kokoro/presubmit/node10/common.cfg" - }, - { - "path": ".kokoro/presubmit/node10/docs.cfg" - }, - { - "path": ".kokoro/presubmit/node10/samples-test.cfg" - }, - { - "path": ".kokoro/presubmit/windows/test.cfg" - }, - { - "path": ".kokoro/presubmit/windows/common.cfg" - }, - { - "path": ".kokoro/presubmit/node12/test.cfg" - }, - { - "path": ".kokoro/presubmit/node12/common.cfg" - }, - { - "path": ".kokoro/release/publish.cfg" - }, - { - "path": ".kokoro/release/docs.cfg" - }, - { - "path": ".kokoro/release/docs.sh" - }, - { - "path": "__pycache__/synth.cpython-37.pyc" - }, - { - "path": ".github/PULL_REQUEST_TEMPLATE.md" - }, - { - "path": ".github/release-please.yml" - }, - { - "path": ".github/ISSUE_TEMPLATE/support_request.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" - }, - { - "path": "build/test/gapic-recommender-v1beta1.d.ts" - }, - { - "path": "build/test/gapic-recommender-v1beta1.js.map" - }, - { - "path": "build/test/gapic-recommender-v1beta1.js" - }, - { - "path": "build/protos/protos.json" - }, - { - "path": "build/protos/protos.js" - }, - { - "path": "build/protos/protos.d.ts" - }, - { - "path": "build/protos/google/cloud/common_resources.proto" - }, - { - "path": "build/protos/google/cloud/recommender/v1beta1/recommender_service.proto" - }, - { - "path": "build/protos/google/cloud/recommender/v1beta1/recommendation.proto" - }, - { - "path": "build/system-test/install.d.ts" - }, - { - "path": "build/system-test/install.js.map" - }, - { - "path": "build/system-test/install.js" - }, - { - "path": "build/src/index.js" - }, - { - "path": "build/src/index.js.map" - }, - { - "path": "build/src/index.d.ts" - }, - { - "path": "build/src/v1beta1/index.js" - }, - { - "path": "build/src/v1beta1/recommender_client.js" - }, - { - "path": "build/src/v1beta1/recommender_client.js.map" - }, - { - "path": "build/src/v1beta1/recommender_client_config.json" - }, - { - "path": "build/src/v1beta1/index.js.map" - }, - { - "path": "build/src/v1beta1/index.d.ts" - }, - { - "path": "build/src/v1beta1/recommender_client.d.ts" - }, - { - "path": "src/index.ts" - }, - { - "path": "src/v1beta1/recommender_client.ts" - }, - { - "path": "src/v1beta1/recommender_proto_list.json" - }, - { - "path": "src/v1beta1/index.ts" - }, - { - "path": "src/v1beta1/recommender_client_config.json" - }, - { - "path": "node_modules/define-properties/package.json" - }, - { - "path": "node_modules/des.js/package.json" - }, - { - "path": "node_modules/domain-browser/package.json" - }, - { - "path": "node_modules/taffydb/package.json" - }, - { - "path": "node_modules/js-tokens/package.json" - }, - { - "path": "node_modules/is-stream/package.json" - }, - { - "path": "node_modules/cli-boxes/package.json" - }, - { - "path": "node_modules/duplexer3/package.json" - }, - { - "path": "node_modules/copy-descriptor/package.json" - }, - { - "path": "node_modules/yallist/package.json" - }, - { - "path": "node_modules/path-exists/package.json" - }, - { - "path": "node_modules/pascalcase/package.json" - }, - { - "path": "node_modules/hard-rejection/package.json" - }, - { - "path": "node_modules/expand-brackets/package.json" - }, - { - "path": "node_modules/expand-brackets/node_modules/debug/package.json" - }, - { - "path": "node_modules/expand-brackets/node_modules/define-property/package.json" - }, - { - "path": "node_modules/expand-brackets/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/expand-brackets/node_modules/ms/package.json" - }, - { - "path": "node_modules/indent-string/package.json" - }, - { - "path": "node_modules/atob/package.json" - }, - { - "path": "node_modules/hash-base/package.json" - }, - { - "path": "node_modules/load-json-file/package.json" - }, - { - "path": "node_modules/load-json-file/node_modules/pify/package.json" - }, - { - "path": "node_modules/once/package.json" - }, - { - "path": "node_modules/for-in/package.json" - }, - { - "path": "node_modules/to-readable-stream/package.json" - }, - { - "path": "node_modules/strip-ansi/package.json" - }, - { - "path": "node_modules/terser/package.json" - }, - { - "path": "node_modules/terser/node_modules/source-map/package.json" - }, - { - "path": "node_modules/unique-string/package.json" - }, - { - "path": "node_modules/decamelize/package.json" - }, - { - "path": "node_modules/through2/package.json" - }, - { - "path": "node_modules/google-gax/package.json" - }, - { - "path": "node_modules/registry-auth-token/package.json" - }, - { - "path": "node_modules/mdurl/package.json" - }, - { - "path": "node_modules/read-pkg/package.json" - }, - { - "path": "node_modules/source-list-map/package.json" - }, - { - "path": "node_modules/array-unique/package.json" - }, - { - "path": "node_modules/source-map/package.json" - }, - { - "path": "node_modules/base/package.json" - }, - { - "path": "node_modules/base/node_modules/define-property/package.json" - }, - { - "path": "node_modules/base/node_modules/is-descriptor/package.json" - }, - { - "path": "node_modules/base/node_modules/is-accessor-descriptor/package.json" - }, - { - "path": "node_modules/base/node_modules/is-data-descriptor/package.json" - }, - { - "path": "node_modules/fast-json-stable-stringify/package.json" - }, - { - "path": "node_modules/ignore-walk/package.json" - }, - { - "path": "node_modules/util-deprecate/package.json" - }, - { - "path": "node_modules/cacheable-request/package.json" - }, - { - "path": "node_modules/cacheable-request/node_modules/lowercase-keys/package.json" - }, - { - "path": "node_modules/cacheable-request/node_modules/get-stream/package.json" - }, - { - "path": "node_modules/global-dirs/package.json" - }, - { - "path": "node_modules/unique-filename/package.json" - }, - { - "path": "node_modules/currently-unhandled/package.json" - }, - { - "path": "node_modules/normalize-url/package.json" - }, - { - "path": "node_modules/growl/package.json" - }, - { - "path": "node_modules/graceful-fs/package.json" - }, - { - "path": "node_modules/pify/package.json" - }, - { - "path": "node_modules/is-npm/package.json" - }, - { - "path": "node_modules/decode-uri-component/package.json" - }, - { - "path": "node_modules/create-hmac/package.json" - }, - { - "path": "node_modules/istanbul-lib-report/package.json" - }, - { - "path": "node_modules/cache-base/package.json" - }, - { - "path": "node_modules/inflight/package.json" - }, - { - "path": "node_modules/has-flag/package.json" - }, - { - "path": "node_modules/union-value/package.json" - }, - { - "path": "node_modules/arr-union/package.json" - }, - { - "path": "node_modules/buffer-equal-constant-time/package.json" - }, - { - "path": "node_modules/supports-color/package.json" - }, - { - "path": "node_modules/debug/package.json" - }, - { - "path": "node_modules/querystring-es3/package.json" - }, - { - "path": "node_modules/meow/package.json" - }, - { - "path": "node_modules/meow/node_modules/path-exists/package.json" - }, - { - "path": "node_modules/meow/node_modules/read-pkg-up/package.json" - }, - { - "path": "node_modules/meow/node_modules/p-try/package.json" - }, - { - "path": "node_modules/meow/node_modules/camelcase/package.json" - }, - { - "path": "node_modules/meow/node_modules/p-limit/package.json" - }, - { - "path": "node_modules/meow/node_modules/find-up/package.json" - }, - { - "path": "node_modules/meow/node_modules/locate-path/package.json" - }, - { - "path": "node_modules/meow/node_modules/p-locate/package.json" - }, - { - "path": "node_modules/meow/node_modules/yargs-parser/package.json" - }, - { - "path": "node_modules/parseurl/package.json" - }, - { - "path": "node_modules/node-environment-flags/package.json" - }, - { - "path": "node_modules/node-environment-flags/node_modules/semver/package.json" - }, - { - "path": "node_modules/use/package.json" - }, - { - "path": "node_modules/fast-text-encoding/package.json" - }, - { - "path": "node_modules/is-glob/package.json" - }, - { - "path": "node_modules/@szmarczak/http-timer/package.json" - }, - { - "path": "node_modules/statuses/package.json" - }, - { - "path": "node_modules/object-copy/package.json" - }, - { - "path": "node_modules/object-copy/node_modules/define-property/package.json" - }, - { - "path": "node_modules/object-copy/node_modules/is-buffer/package.json" - }, - { - "path": "node_modules/object-copy/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/is-ci/package.json" - }, - { - "path": "node_modules/evp_bytestokey/package.json" - }, - { - "path": "node_modules/trim-newlines/package.json" - }, - { - "path": "node_modules/ci-info/package.json" - }, - { - "path": "node_modules/@bcoe/v8-coverage/package.json" - }, - { - "path": "node_modules/terser-webpack-plugin/package.json" - }, - { - "path": "node_modules/terser-webpack-plugin/node_modules/source-map/package.json" - }, - { - "path": "node_modules/balanced-match/package.json" - }, - { - "path": "node_modules/snapdragon-node/package.json" - }, - { - "path": "node_modules/snapdragon-node/node_modules/define-property/package.json" - }, - { - "path": "node_modules/snapdragon-node/node_modules/is-descriptor/package.json" - }, - { - "path": "node_modules/snapdragon-node/node_modules/is-accessor-descriptor/package.json" - }, - { - "path": "node_modules/snapdragon-node/node_modules/is-data-descriptor/package.json" - }, - { - "path": "node_modules/is-path-inside/package.json" - }, - { - "path": "node_modules/quick-lru/package.json" - }, - { - "path": "node_modules/randombytes/package.json" - }, - { - "path": "node_modules/safer-buffer/package.json" - }, - { - "path": "node_modules/catharsis/package.json" - }, - { - "path": "node_modules/has-yarn/package.json" - }, - { - "path": "node_modules/browserify-sign/package.json" - }, - { - "path": "node_modules/path-key/package.json" - }, - { - "path": "node_modules/ansi-regex/package.json" - }, - { - "path": "node_modules/component-emitter/package.json" - }, - { - "path": "node_modules/resolve-dir/package.json" - }, - { - "path": "node_modules/resolve-dir/node_modules/global-modules/package.json" - }, - { - "path": "node_modules/public-encrypt/package.json" - }, - { - "path": "node_modules/string_decoder/package.json" - }, - { - "path": "node_modules/define-property/package.json" - }, - { - "path": "node_modules/define-property/node_modules/is-descriptor/package.json" - }, - { - "path": "node_modules/define-property/node_modules/is-accessor-descriptor/package.json" - }, - { - "path": "node_modules/define-property/node_modules/is-data-descriptor/package.json" - }, - { - "path": "node_modules/source-map-support/package.json" - }, - { - "path": "node_modules/source-map-support/node_modules/source-map/package.json" - }, - { - "path": "node_modules/watchpack/package.json" - }, - { - "path": "node_modules/pump/package.json" - }, - { - "path": "node_modules/validate-npm-package-license/package.json" - }, - { - "path": "node_modules/node-fetch/package.json" - }, - { - "path": "node_modules/cipher-base/package.json" - }, - { - "path": "node_modules/jsdoc/package.json" - }, - { - "path": "node_modules/jsdoc/node_modules/strip-json-comments/package.json" - }, - { - "path": "node_modules/jsdoc/node_modules/escape-string-regexp/package.json" - }, - { - "path": "node_modules/create-hash/package.json" - }, - { - "path": "node_modules/is-installed-globally/package.json" - }, - { - "path": "node_modules/abort-controller/package.json" - }, - { - "path": "node_modules/configstore/package.json" - }, - { - "path": "node_modules/configstore/node_modules/pify/package.json" - }, - { - "path": "node_modules/configstore/node_modules/write-file-atomic/package.json" - }, - { - "path": "node_modules/configstore/node_modules/make-dir/package.json" - }, - { - "path": "node_modules/xmlcreate/package.json" - }, - { - "path": "node_modules/npm-bundled/package.json" - }, - { - "path": "node_modules/is-date-object/package.json" - }, - { - "path": "node_modules/expand-tilde/package.json" - }, - { - "path": "node_modules/global-prefix/package.json" - }, - { - "path": "node_modules/global-prefix/node_modules/which/package.json" - }, - { - "path": "node_modules/yargs-unparser/package.json" - }, - { - "path": "node_modules/yargs-unparser/node_modules/path-exists/package.json" - }, - { - "path": "node_modules/yargs-unparser/node_modules/yargs/package.json" - }, - { - "path": "node_modules/yargs-unparser/node_modules/find-up/package.json" - }, - { - "path": "node_modules/yargs-unparser/node_modules/locate-path/package.json" - }, - { - "path": "node_modules/yargs-unparser/node_modules/p-locate/package.json" - }, - { - "path": "node_modules/yargs-unparser/node_modules/yargs-parser/package.json" - }, - { - "path": "node_modules/has-values/package.json" - }, - { - "path": "node_modules/has-values/node_modules/is-number/package.json" - }, - { - "path": "node_modules/has-values/node_modules/is-number/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/has-values/node_modules/is-buffer/package.json" - }, - { - "path": "node_modules/has-values/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/node-forge/package.json" - }, - { - "path": "node_modules/toidentifier/package.json" - }, - { - "path": "node_modules/is-callable/package.json" - }, - { - "path": "node_modules/md5.js/package.json" - }, - { - "path": "node_modules/parse5/package.json" - }, - { - "path": "node_modules/https-proxy-agent/package.json" - }, - { - "path": "node_modules/run-async/package.json" - }, - { - "path": "node_modules/mem/package.json" - }, - { - "path": "node_modules/onetime/package.json" - }, - { - "path": "node_modules/p-is-promise/package.json" - }, - { - "path": "node_modules/hash.js/package.json" - }, - { - "path": "node_modules/collection-visit/package.json" - }, - { - "path": "node_modules/set-blocking/package.json" - }, - { - "path": "node_modules/has-value/package.json" - }, - { - "path": "node_modules/rimraf/package.json" - }, - { - "path": "node_modules/repeat-string/package.json" - }, - { - "path": "node_modules/destroy/package.json" - }, - { - "path": "node_modules/isarray/package.json" - }, - { - "path": "node_modules/@sindresorhus/is/package.json" - }, - { - "path": "node_modules/server-destroy/package.json" - }, - { - "path": "node_modules/mimic-response/package.json" - }, - { - "path": "node_modules/jsdoc-region-tag/package.json" - }, - { - "path": "node_modules/prettier/package.json" - }, - { - "path": "node_modules/is-promise/package.json" - }, - { - "path": "node_modules/binary-extensions/package.json" - }, - { - "path": "node_modules/core-util-is/package.json" - }, - { - "path": "node_modules/is-stream-ended/package.json" - }, - { - "path": "node_modules/tslib/package.json" - }, - { - "path": "node_modules/acorn/package.json" - }, - { - "path": "node_modules/shebang-command/package.json" - }, - { - "path": "node_modules/semver-diff/package.json" - }, - { - "path": "node_modules/semver-diff/node_modules/semver/package.json" - }, - { - "path": "node_modules/agent-base/package.json" - }, - { - "path": "node_modules/gts/package.json" - }, - { - "path": "node_modules/object.pick/package.json" - }, - { - "path": "node_modules/tty-browserify/package.json" - }, - { - "path": "node_modules/lcid/package.json" - }, - { - "path": "node_modules/strip-bom/package.json" - }, - { - "path": "node_modules/serve-static/package.json" - }, - { - "path": "node_modules/npm-run-path/package.json" - }, - { - "path": "node_modules/npm-run-path/node_modules/path-key/package.json" - }, - { - "path": "node_modules/minimist-options/package.json" - }, - { - "path": "node_modules/minimist-options/node_modules/arrify/package.json" - }, - { - "path": "node_modules/cyclist/package.json" - }, - { - "path": "node_modules/upath/package.json" - }, - { - "path": "node_modules/is-regex/package.json" - }, - { - "path": "node_modules/errno/package.json" - }, - { - "path": "node_modules/esutils/package.json" - }, - { - "path": "node_modules/responselike/package.json" - }, - { - "path": "node_modules/interpret/package.json" - }, - { - "path": "node_modules/cli-width/package.json" - }, - { - "path": "node_modules/object-assign/package.json" - }, - { - "path": "node_modules/@protobufjs/eventemitter/package.json" - }, - { - "path": "node_modules/@protobufjs/utf8/package.json" - }, - { - "path": "node_modules/@protobufjs/aspromise/package.json" - }, - { - "path": "node_modules/@protobufjs/pool/package.json" - }, - { - "path": "node_modules/@protobufjs/inquire/package.json" - }, - { - "path": "node_modules/@protobufjs/base64/package.json" - }, - { - "path": "node_modules/@protobufjs/codegen/package.json" - }, - { - "path": "node_modules/@protobufjs/fetch/package.json" - }, - { - "path": "node_modules/@protobufjs/path/package.json" - }, - { - "path": "node_modules/@protobufjs/float/package.json" - }, - { - "path": "node_modules/crypto-browserify/package.json" - }, - { - "path": "node_modules/tsutils/package.json" - }, - { - "path": "node_modules/unpipe/package.json" - }, - { - "path": "node_modules/dom-serializer/package.json" - }, - { - "path": "node_modules/read-pkg-up/package.json" - }, - { - "path": "node_modules/read-pkg-up/node_modules/path-exists/package.json" - }, - { - "path": "node_modules/read-pkg-up/node_modules/find-up/package.json" - }, - { - "path": "node_modules/read-pkg-up/node_modules/locate-path/package.json" - }, - { - "path": "node_modules/read-pkg-up/node_modules/p-locate/package.json" - }, - { - "path": "node_modules/p-defer/package.json" - }, - { - "path": "node_modules/map-obj/package.json" - }, - { - "path": "node_modules/os-browserify/package.json" - }, - { - "path": "node_modules/eslint-scope/package.json" - }, - { - "path": "node_modules/concat-stream/package.json" - }, - { - "path": "node_modules/webpack-cli/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/path-exists/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/path-key/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/shebang-command/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/cross-spawn/index.js" - }, - { - "path": "node_modules/webpack-cli/node_modules/cross-spawn/CHANGELOG.md" - }, - { - "path": "node_modules/webpack-cli/node_modules/cross-spawn/LICENSE" - }, - { - "path": "node_modules/webpack-cli/node_modules/cross-spawn/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/cross-spawn/README.md" - }, - { - "path": "node_modules/webpack-cli/node_modules/cross-spawn/lib/enoent.js" - }, - { - "path": "node_modules/webpack-cli/node_modules/cross-spawn/lib/parse.js" - }, - { - "path": "node_modules/webpack-cli/node_modules/cross-spawn/lib/util/escape.js" - }, - { - "path": "node_modules/webpack-cli/node_modules/cross-spawn/lib/util/resolveCommand.js" - }, - { - "path": "node_modules/webpack-cli/node_modules/cross-spawn/lib/util/readShebang.js" - }, - { - "path": "node_modules/webpack-cli/node_modules/yargs/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/memory-fs/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/shebang-regex/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/which/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/enhanced-resolve/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/semver/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/chalk/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/chalk/node_modules/supports-color/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/find-up/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/locate-path/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/p-locate/package.json" - }, - { - "path": "node_modules/webpack-cli/node_modules/yargs-parser/package.json" - }, - { - "path": "node_modules/typedarray/package.json" - }, - { - "path": "node_modules/pkg-dir/package.json" - }, - { - "path": "node_modules/pkg-dir/node_modules/path-exists/package.json" - }, - { - "path": "node_modules/pkg-dir/node_modules/find-up/package.json" - }, - { - "path": "node_modules/pkg-dir/node_modules/locate-path/package.json" - }, - { - "path": "node_modules/pkg-dir/node_modules/p-locate/package.json" - }, - { - "path": "node_modules/typedarray-to-buffer/index.js" - }, - { - "path": "node_modules/typedarray-to-buffer/.travis.yml" - }, - { - "path": "node_modules/typedarray-to-buffer/.airtap.yml" - }, - { - "path": "node_modules/typedarray-to-buffer/LICENSE" - }, - { - "path": "node_modules/typedarray-to-buffer/package.json" - }, - { - "path": "node_modules/typedarray-to-buffer/README.md" - }, - { - "path": "node_modules/typedarray-to-buffer/test/basic.js" - }, - { - "path": "node_modules/tslint-config-prettier/package.json" - }, - { - "path": "node_modules/pseudomap/package.json" - }, - { - "path": "node_modules/cross-spawn/package.json" - }, - { - "path": "node_modules/lowercase-keys/package.json" - }, - { - "path": "node_modules/execa/package.json" - }, - { - "path": "node_modules/execa/node_modules/is-stream/package.json" - }, - { - "path": "node_modules/execa/node_modules/yallist/package.json" - }, - { - "path": "node_modules/execa/node_modules/shebang-command/package.json" - }, - { - "path": "node_modules/execa/node_modules/cross-spawn/package.json" - }, - { - "path": "node_modules/execa/node_modules/shebang-regex/package.json" - }, - { - "path": "node_modules/execa/node_modules/which/package.json" - }, - { - "path": "node_modules/execa/node_modules/lru-cache/package.json" - }, - { - "path": "node_modules/imurmurhash/package.json" - }, - { - "path": "node_modules/jwa/package.json" - }, - { - "path": "node_modules/yargs/package.json" - }, - { - "path": "node_modules/yargs/node_modules/path-exists/package.json" - }, - { - "path": "node_modules/yargs/node_modules/find-up/package.json" - }, - { - "path": "node_modules/yargs/node_modules/locate-path/package.json" - }, - { - "path": "node_modules/yargs/node_modules/p-locate/package.json" - }, - { - "path": "node_modules/fill-range/package.json" - }, - { - "path": "node_modules/loud-rejection/package.json" - }, - { - "path": "node_modules/memory-fs/package.json" - }, - { - "path": "node_modules/is-plain-object/package.json" - }, - { - "path": "node_modules/path-dirname/package.json" - }, - { - "path": "node_modules/chrome-trace-event/package.json" - }, - { - "path": "node_modules/path-is-absolute/package.json" - }, - { - "path": "node_modules/chownr/package.json" - }, - { - "path": "node_modules/uc.micro/package.json" - }, - { - "path": "node_modules/depd/package.json" - }, - { - "path": "node_modules/json-bigint/package.json" - }, - { - "path": "node_modules/es-abstract/package.json" - }, - { - "path": "node_modules/querystring/package.json" - }, - { - "path": "node_modules/array-find-index/package.json" - }, - { - "path": "node_modules/split-string/package.json" - }, - { - "path": "node_modules/webpack/package.json" - }, - { - "path": "node_modules/webpack/node_modules/fill-range/package.json" - }, - { - "path": "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/webpack/node_modules/memory-fs/package.json" - }, - { - "path": "node_modules/webpack/node_modules/braces/package.json" - }, - { - "path": "node_modules/webpack/node_modules/braces/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/webpack/node_modules/micromatch/index.js" - }, - { - "path": "node_modules/webpack/node_modules/micromatch/CHANGELOG.md" - }, - { - "path": "node_modules/webpack/node_modules/micromatch/LICENSE" - }, - { - "path": "node_modules/webpack/node_modules/micromatch/package.json" - }, - { - "path": "node_modules/webpack/node_modules/micromatch/README.md" - }, - { - "path": "node_modules/webpack/node_modules/micromatch/lib/cache.js" - }, - { - "path": "node_modules/webpack/node_modules/micromatch/lib/parsers.js" - }, - { - "path": "node_modules/webpack/node_modules/micromatch/lib/utils.js" - }, - { - "path": "node_modules/webpack/node_modules/micromatch/lib/.DS_Store" - }, - { - "path": "node_modules/webpack/node_modules/micromatch/lib/compilers.js" - }, - { - "path": "node_modules/webpack/node_modules/to-regex-range/package.json" - }, - { - "path": "node_modules/webpack/node_modules/is-number/package.json" - }, - { - "path": "node_modules/webpack/node_modules/is-number/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/webpack/node_modules/is-buffer/package.json" - }, - { - "path": "node_modules/esprima/package.json" - }, - { - "path": "node_modules/uri-js/package.json" - }, - { - "path": "node_modules/v8-compile-cache/package.json" - }, - { - "path": "node_modules/inherits/package.json" - }, - { - "path": "node_modules/has-symbols/package.json" - }, - { - "path": "node_modules/buffer-from/package.json" - }, - { - "path": "node_modules/markdown-it-anchor/package.json" - }, - { - "path": "node_modules/braces/package.json" - }, - { - "path": "node_modules/strip-eof/package.json" - }, - { - "path": "node_modules/parse-asn1/package.json" - }, - { - "path": "node_modules/figures/package.json" - }, - { - "path": "node_modules/is-extglob/package.json" - }, - { - "path": "node_modules/xtend/package.json" - }, - { - "path": "node_modules/to-regex/package.json" - }, - { - "path": "node_modules/string.prototype.trimright/package.json" - }, - { - "path": "node_modules/gtoken/package.json" - }, - { - "path": "node_modules/furi/package.json" - }, - { - "path": "node_modules/brorand/package.json" - }, - { - "path": "node_modules/js-yaml/package.json" - }, - { - "path": "node_modules/browserify-cipher/package.json" - }, - { - "path": "node_modules/decompress-response/package.json" - }, - { - "path": "node_modules/color-name/package.json" - }, - { - "path": "node_modules/pbkdf2/package.json" - }, - { - "path": "node_modules/minimalistic-assert/package.json" - }, - { - "path": "node_modules/ret/package.json" - }, - { - "path": "node_modules/write-file-atomic/package.json" - }, - { - "path": "node_modules/domutils/package.json" - }, - { - "path": "node_modules/shebang-regex/package.json" - }, - { - "path": "node_modules/detect-file/package.json" - }, - { - "path": "node_modules/process/package.json" - }, - { - "path": "node_modules/sprintf-js/package.json" - }, - { - "path": "node_modules/copy-concurrently/package.json" - }, - { - "path": "node_modules/copy-concurrently/node_modules/rimraf/package.json" - }, - { - "path": "node_modules/fs.realpath/package.json" - }, - { - "path": "node_modules/hosted-git-info/package.json" - }, - { - "path": "node_modules/object.getownpropertydescriptors/package.json" - }, - { - "path": "node_modules/import-local/package.json" - }, - { - "path": "node_modules/wide-align/package.json" - }, - { - "path": "node_modules/wide-align/node_modules/strip-ansi/package.json" - }, - { - "path": "node_modules/wide-align/node_modules/ansi-regex/package.json" - }, - { - "path": "node_modules/wide-align/node_modules/string-width/package.json" - }, - { - "path": "node_modules/ansi-escapes/package.json" - }, - { - "path": "node_modules/get-value/package.json" - }, - { - "path": "node_modules/tapable/package.json" - }, - { - "path": "node_modules/unique-slug/package.json" - }, - { - "path": "node_modules/cheerio/package.json" - }, - { - "path": "node_modules/strip-indent/package.json" - }, - { - "path": "node_modules/node-libs-browser/package.json" - }, - { - "path": "node_modules/node-libs-browser/node_modules/punycode/package.json" - }, - { - "path": "node_modules/extglob/package.json" - }, - { - "path": "node_modules/extglob/node_modules/define-property/package.json" - }, - { - "path": "node_modules/extglob/node_modules/is-descriptor/package.json" - }, - { - "path": "node_modules/extglob/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/extglob/node_modules/is-accessor-descriptor/package.json" - }, - { - "path": "node_modules/extglob/node_modules/is-data-descriptor/package.json" - }, - { - "path": "node_modules/isexe/package.json" - }, - { - "path": "node_modules/https-browserify/package.json" - }, - { - "path": "node_modules/object-inspect/package.json" - }, - { - "path": "node_modules/entities/package.json" - }, - { - "path": "node_modules/snapdragon-util/package.json" - }, - { - "path": "node_modules/snapdragon-util/node_modules/is-buffer/package.json" - }, - { - "path": "node_modules/snapdragon-util/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/crypto-random-string/package.json" - }, - { - "path": "node_modules/long/package.json" - }, - { - "path": "node_modules/es-to-primitive/package.json" - }, - { - "path": "node_modules/ieee754/package.json" - }, - { - "path": "node_modules/is-descriptor/package.json" - }, - { - "path": "node_modules/is-descriptor/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/buffer/package.json" - }, - { - "path": "node_modules/restore-cursor/package.json" - }, - { - "path": "node_modules/boolbase/package.json" - }, - { - "path": "node_modules/source-map-url/package.json" - }, - { - "path": "node_modules/null-loader/package.json" - }, - { - "path": "node_modules/nice-try/package.json" - }, - { - "path": "node_modules/spdx-correct/package.json" - }, - { - "path": "node_modules/markdown-it/package.json" - }, - { - "path": "node_modules/css-what/package.json" - }, - { - "path": "node_modules/assign-symbols/package.json" - }, - { - "path": "node_modules/jsdoc-fresh/package.json" - }, - { - "path": "node_modules/jsdoc-fresh/node_modules/taffydb/package.json" - }, - { - "path": "node_modules/google-auth-library/package.json" - }, - { - "path": "node_modules/worker-farm/package.json" - }, - { - "path": "node_modules/minimalistic-crypto-utils/package.json" - }, - { - "path": "node_modules/camelcase-keys/package.json" - }, - { - "path": "node_modules/camelcase-keys/node_modules/camelcase/package.json" - }, - { - "path": "node_modules/randomfill/package.json" - }, - { - "path": "node_modules/json-parse-better-errors/package.json" - }, - { - "path": "node_modules/stream-shift/package.json" - }, - { - "path": "node_modules/brace-expansion/package.json" - }, - { - "path": "node_modules/p-try/package.json" - }, - { - "path": "node_modules/event-target-shim/package.json" - }, - { - "path": "node_modules/nanomatch/package.json" - }, - { - "path": "node_modules/camelcase/package.json" - }, - { - "path": "node_modules/json5/package.json" - }, - { - "path": "node_modules/json5/node_modules/minimist/package.json" - }, - { - "path": "node_modules/make-dir/package.json" - }, - { - "path": "node_modules/make-dir/node_modules/semver/package.json" - }, - { - "path": "node_modules/mimic-fn/package.json" - }, - { - "path": "node_modules/readdirp/package.json" - }, - { - "path": "node_modules/readdirp/node_modules/fill-range/package.json" - }, - { - "path": "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/readdirp/node_modules/braces/package.json" - }, - { - "path": "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/readdirp/node_modules/micromatch/index.js" - }, - { - "path": "node_modules/readdirp/node_modules/micromatch/CHANGELOG.md" - }, - { - "path": "node_modules/readdirp/node_modules/micromatch/LICENSE" - }, - { - "path": "node_modules/readdirp/node_modules/micromatch/package.json" - }, - { - "path": "node_modules/readdirp/node_modules/micromatch/README.md" - }, - { - "path": "node_modules/readdirp/node_modules/micromatch/lib/cache.js" - }, - { - "path": "node_modules/readdirp/node_modules/micromatch/lib/parsers.js" - }, - { - "path": "node_modules/readdirp/node_modules/micromatch/lib/utils.js" - }, - { - "path": "node_modules/readdirp/node_modules/micromatch/lib/.DS_Store" - }, - { - "path": "node_modules/readdirp/node_modules/micromatch/lib/compilers.js" - }, - { - "path": "node_modules/readdirp/node_modules/to-regex-range/package.json" - }, - { - "path": "node_modules/readdirp/node_modules/is-number/package.json" - }, - { - "path": "node_modules/readdirp/node_modules/is-number/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/readdirp/node_modules/is-buffer/package.json" - }, - { - "path": "node_modules/ts-loader/package.json" - }, - { - "path": "node_modules/ts-loader/node_modules/supports-color/package.json" - }, - { - "path": "node_modules/ts-loader/node_modules/semver/package.json" - }, - { - "path": "node_modules/ts-loader/node_modules/chalk/package.json" - }, - { - "path": "node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/extend-shallow/node_modules/is-extendable/package.json" - }, - { - "path": "node_modules/is-accessor-descriptor/package.json" - }, - { - "path": "node_modules/is-accessor-descriptor/node_modules/is-buffer/package.json" - }, - { - "path": "node_modules/is-accessor-descriptor/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/setprototypeof/package.json" - }, - { - "path": "node_modules/send/package.json" - }, - { - "path": "node_modules/send/node_modules/debug/package.json" - }, - { - "path": "node_modules/send/node_modules/debug/node_modules/ms/package.json" - }, - { - "path": "node_modules/send/node_modules/mime/package.json" - }, - { - "path": "node_modules/send/node_modules/ms/package.json" - }, - { - "path": "node_modules/tmp/package.json" - }, - { - "path": "node_modules/to-arraybuffer/package.json" - }, - { - "path": "node_modules/promise-inflight/package.json" - }, - { - "path": "node_modules/css-select/package.json" - }, - { - "path": "node_modules/neo-async/package.json" - }, - { - "path": "node_modules/npm-normalize-package-bin/package.json" - }, - { - "path": "node_modules/which/package.json" - }, - { - "path": "node_modules/serialize-javascript/package.json" - }, - { - "path": "node_modules/range-parser/package.json" - }, - { - "path": "node_modules/find-cache-dir/package.json" - }, - { - "path": "node_modules/punycode/package.json" - }, - { - "path": "node_modules/get-stream/package.json" - }, - { - "path": "node_modules/stream-http/package.json" - }, - { - "path": "node_modules/mime/package.json" - }, - { - "path": "node_modules/resolve-url/package.json" - }, - { - "path": "node_modules/os-locale/package.json" - }, - { - "path": "node_modules/os-locale/node_modules/is-stream/package.json" - }, - { - "path": "node_modules/os-locale/node_modules/path-key/package.json" - }, - { - "path": "node_modules/os-locale/node_modules/shebang-command/package.json" - }, - { - "path": "node_modules/os-locale/node_modules/cross-spawn/index.js" - }, - { - "path": "node_modules/os-locale/node_modules/cross-spawn/CHANGELOG.md" - }, - { - "path": "node_modules/os-locale/node_modules/cross-spawn/LICENSE" - }, - { - "path": "node_modules/os-locale/node_modules/cross-spawn/package.json" - }, - { - "path": "node_modules/os-locale/node_modules/cross-spawn/README.md" - }, - { - "path": "node_modules/os-locale/node_modules/cross-spawn/lib/enoent.js" - }, - { - "path": "node_modules/os-locale/node_modules/cross-spawn/lib/parse.js" - }, - { - "path": "node_modules/os-locale/node_modules/cross-spawn/lib/util/escape.js" - }, - { - "path": "node_modules/os-locale/node_modules/cross-spawn/lib/util/resolveCommand.js" - }, - { - "path": "node_modules/os-locale/node_modules/cross-spawn/lib/util/readShebang.js" - }, - { - "path": "node_modules/os-locale/node_modules/execa/package.json" - }, - { - "path": "node_modules/os-locale/node_modules/shebang-regex/package.json" - }, - { - "path": "node_modules/os-locale/node_modules/which/package.json" - }, - { - "path": "node_modules/os-locale/node_modules/get-stream/package.json" - }, - { - "path": "node_modules/os-locale/node_modules/semver/package.json" - }, - { - "path": "node_modules/webpack-sources/package.json" - }, - { - "path": "node_modules/webpack-sources/node_modules/source-map/package.json" - }, - { - "path": "node_modules/enhanced-resolve/package.json" - }, - { - "path": "node_modules/miller-rabin/package.json" - }, - { - "path": "node_modules/error-ex/package.json" - }, - { - "path": "node_modules/v8-to-istanbul/package.json" - }, - { - "path": "node_modules/import-lazy/package.json" - }, - { - "path": "node_modules/minimatch/package.json" - }, - { - "path": "node_modules/flat/package.json" - }, - { - "path": "node_modules/escape-html/package.json" - }, - { - "path": "node_modules/json-buffer/package.json" - }, - { - "path": "node_modules/is-obj/package.json" - }, - { - "path": "node_modules/etag/package.json" - }, - { - "path": "node_modules/json-schema-traverse/package.json" - }, - { - "path": "node_modules/micromatch/package.json" - }, - { - "path": "node_modules/argparse/package.json" - }, - { - "path": "node_modules/picomatch/package.json" - }, - { - "path": "node_modules/chardet/package.json" - }, - { - "path": "node_modules/set-value/package.json" - }, - { - "path": "node_modules/set-value/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/cli-cursor/package.json" - }, - { - "path": "node_modules/map-cache/package.json" - }, - { - "path": "node_modules/iconv-lite/package.json" - }, - { - "path": "node_modules/urix/package.json" - }, - { - "path": "node_modules/builtin-modules/package.json" - }, - { - "path": "node_modules/is-fullwidth-code-point/package.json" - }, - { - "path": "node_modules/figgy-pudding/package.json" - }, - { - "path": "node_modules/rxjs/package.json" - }, - { - "path": "node_modules/semver/package.json" - }, - { - "path": "node_modules/require-directory/package.json" - }, - { - "path": "node_modules/retry-request/package.json" - }, - { - "path": "node_modules/npm-packlist/package.json" - }, - { - "path": "node_modules/mississippi/package.json" - }, - { - "path": "node_modules/mississippi/node_modules/through2/package.json" - }, - { - "path": "node_modules/to-regex-range/package.json" - }, - { - "path": "node_modules/esrecurse/package.json" - }, - { - "path": "node_modules/@babel/highlight/package.json" - }, - { - "path": "node_modules/@babel/highlight/node_modules/supports-color/package.json" - }, - { - "path": "node_modules/@babel/highlight/node_modules/chalk/package.json" - }, - { - "path": "node_modules/@babel/parser/package.json" - }, - { - "path": "node_modules/@babel/code-frame/package.json" - }, - { - "path": "node_modules/schema-utils/package.json" - }, - { - "path": "node_modules/http-errors/package.json" - }, - { - "path": "node_modules/latest-version/package.json" - }, - { - "path": "node_modules/flush-write-stream/package.json" - }, - { - "path": "node_modules/url-parse-lax/package.json" - }, - { - "path": "node_modules/prr/package.json" - }, - { - "path": "node_modules/ecdsa-sig-formatter/package.json" - }, - { - "path": "node_modules/domhandler/package.json" - }, - { - "path": "node_modules/chalk/package.json" - }, - { - "path": "node_modules/chalk/node_modules/has-flag/package.json" - }, - { - "path": "node_modules/chalk/node_modules/supports-color/package.json" - }, - { - "path": "node_modules/chalk/node_modules/color-name/package.json" - }, - { - "path": "node_modules/chalk/node_modules/color-convert/package.json" - }, - { - "path": "node_modules/chalk/node_modules/ansi-styles/package.json" - }, - { - "path": "node_modules/stream-browserify/package.json" - }, - { - "path": "node_modules/process-nextick-args/package.json" - }, - { - "path": "node_modules/ssri/package.json" - }, - { - "path": "node_modules/protobufjs/package.json" - }, - { - "path": "node_modules/protobufjs/cli/package-lock.json" - }, - { - "path": "node_modules/protobufjs/cli/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/espree/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/source-map/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/word-wrap/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/has-flag/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/supports-color/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/optionator/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/uglify-js/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/acorn/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/esutils/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/prelude-ls/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/esprima/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/color-name/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/semver/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/chalk/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/type-check/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/levn/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/estraverse/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/color-convert/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/escodegen/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/acorn-jsx/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/acorn-jsx/node_modules/acorn/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/minimist/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/deep-is/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/escape-string-regexp/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/ansi-styles/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/commander/package.json" - }, - { - "path": "node_modules/protobufjs/cli/node_modules/fast-levenshtein/package.json" - }, - { - "path": "node_modules/protobufjs/node_modules/@types/node/package.json" - }, - { - "path": "node_modules/min-indent/package.json" - }, - { - "path": "node_modules/widest-line/package.json" - }, - { - "path": "node_modules/widest-line/node_modules/strip-ansi/package.json" - }, - { - "path": "node_modules/widest-line/node_modules/ansi-regex/package.json" - }, - { - "path": "node_modules/widest-line/node_modules/string-width/package.json" - }, - { - "path": "node_modules/which-module/package.json" - }, - { - "path": "node_modules/static-extend/package.json" - }, - { - "path": "node_modules/static-extend/node_modules/define-property/package.json" - }, - { - "path": "node_modules/path-parse/package.json" - }, - { - "path": "node_modules/jws/package.json" - }, - { - "path": "node_modules/timers-browserify/package.json" - }, - { - "path": "node_modules/linkify-it/package.json" - }, - { - "path": "node_modules/arr-diff/package.json" - }, - { - "path": "node_modules/ms/package.json" - }, - { - "path": "node_modules/is-symbol/package.json" - }, - { - "path": "node_modules/sha.js/index.js" - }, - { - "path": "node_modules/sha.js/hash.js" - }, - { - "path": "node_modules/sha.js/bin.js" - }, - { - "path": "node_modules/sha.js/sha224.js" - }, - { - "path": "node_modules/sha.js/sha256.js" - }, - { - "path": "node_modules/sha.js/.travis.yml" - }, - { - "path": "node_modules/sha.js/sha512.js" - }, - { - "path": "node_modules/sha.js/LICENSE" - }, - { - "path": "node_modules/sha.js/sha.js" - }, - { - "path": "node_modules/sha.js/sha384.js" - }, - { - "path": "node_modules/sha.js/package.json" - }, - { - "path": "node_modules/sha.js/sha1.js" - }, - { - "path": "node_modules/sha.js/README.md" - }, - { - "path": "node_modules/sha.js/test/hash.js" - }, - { - "path": "node_modules/sha.js/test/vectors.js" - }, - { - "path": "node_modules/sha.js/test/test.js" - }, - { - "path": "node_modules/istanbul-lib-coverage/package.json" - }, - { - "path": "node_modules/deep-extend/package.json" - }, - { - "path": "node_modules/has/package.json" - }, - { - "path": "node_modules/util/package.json" - }, - { - "path": "node_modules/util/node_modules/inherits/package.json" - }, - { - "path": "node_modules/is-arrayish/package.json" - }, - { - "path": "node_modules/wrappy/package.json" - }, - { - "path": "node_modules/class-utils/package.json" - }, - { - "path": "node_modules/class-utils/node_modules/define-property/package.json" - }, - { - "path": "node_modules/spdx-expression-parse/package.json" - }, - { - "path": "node_modules/source-map-resolve/package.json" - }, - { - "path": "node_modules/p-limit/package.json" - }, - { - "path": "node_modules/mute-stream/package.json" - }, - { - "path": "node_modules/is-number/package.json" - }, - { - "path": "node_modules/tslint/package.json" - }, - { - "path": "node_modules/tslint/node_modules/supports-color/package.json" - }, - { - "path": "node_modules/tslint/node_modules/semver/package.json" - }, - { - "path": "node_modules/tslint/node_modules/chalk/package.json" - }, - { - "path": "node_modules/loader-utils/package.json" - }, - { - "path": "node_modules/underscore/package.json" - }, - { - "path": "node_modules/estraverse/package.json" - }, - { - "path": "node_modules/invert-kv/package.json" - }, - { - "path": "node_modules/is-wsl/package.json" - }, - { - "path": "node_modules/eventemitter3/package.json" - }, - { - "path": "node_modules/is-plain-obj/package.json" - }, - { - "path": "node_modules/aproba/package.json" - }, - { - "path": "node_modules/foreground-child/package.json" - }, - { - "path": "node_modules/duplexify/package.json" - }, - { - "path": "node_modules/type-fest/package.json" - }, - { - "path": "node_modules/is-data-descriptor/package.json" - }, - { - "path": "node_modules/is-data-descriptor/node_modules/is-buffer/package.json" - }, - { - "path": "node_modules/is-data-descriptor/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/object-keys/package.json" - }, - { - "path": "node_modules/arr-flatten/package.json" - }, - { - "path": "node_modules/@grpc/proto-loader/package.json" - }, - { - "path": "node_modules/@grpc/grpc-js/package.json" - }, - { - "path": "node_modules/@grpc/grpc-js/node_modules/semver/package.json" - }, - { - "path": "node_modules/emoji-regex/package.json" - }, - { - "path": "node_modules/ncp/package.json" - }, - { - "path": "node_modules/ajv/package.json" - }, - { - "path": "node_modules/find-up/package.json" - }, - { - "path": "node_modules/color-convert/package.json" - }, - { - "path": "node_modules/lru-cache/package.json" - }, - { - "path": "node_modules/encodeurl/package.json" - }, - { - "path": "node_modules/pack-n-play/package.json" - }, - { - "path": "node_modules/pack-n-play/node_modules/tmp/package.json" - }, - { - "path": "node_modules/pack-n-play/node_modules/tmp/node_modules/rimraf/package.json" - }, - { - "path": "node_modules/minipass/package.json" - }, - { - "path": "node_modules/minipass/node_modules/yallist/package.json" - }, - { - "path": "node_modules/http-cache-semantics/package.json" - }, - { - "path": "node_modules/ini/package.json" - }, - { - "path": "node_modules/gaxios/package.json" - }, - { - "path": "node_modules/events/package.json" - }, - { - "path": "node_modules/typescript/package.json" - }, - { - "path": "node_modules/base64-js/package.json" - }, - { - "path": "node_modules/inquirer/package.json" - }, - { - "path": "node_modules/inquirer/node_modules/supports-color/package.json" - }, - { - "path": "node_modules/inquirer/node_modules/ansi-regex/package.json" - }, - { - "path": "node_modules/inquirer/node_modules/is-fullwidth-code-point/package.json" - }, - { - "path": "node_modules/inquirer/node_modules/chalk/package.json" - }, - { - "path": "node_modules/inquirer/node_modules/emoji-regex/package.json" - }, - { - "path": "node_modules/inquirer/node_modules/string-width/package.json" - }, - { - "path": "node_modules/inquirer/node_modules/string-width/node_modules/strip-ansi/package.json" - }, - { - "path": "node_modules/object.assign/package.json" - }, - { - "path": "node_modules/p-timeout/package.json" - }, - { - "path": "node_modules/readable-stream/package.json" - }, - { - "path": "node_modules/signal-exit/package.json" - }, - { - "path": "node_modules/pumpify/package.json" - }, - { - "path": "node_modules/pumpify/node_modules/pump/package.json" - }, - { - "path": "node_modules/finalhandler/package.json" - }, - { - "path": "node_modules/finalhandler/node_modules/debug/package.json" - }, - { - "path": "node_modules/finalhandler/node_modules/ms/package.json" - }, - { - "path": "node_modules/browserify-rsa/package.json" - }, - { - "path": "node_modules/path-type/package.json" - }, - { - "path": "node_modules/path-type/node_modules/pify/package.json" - }, - { - "path": "node_modules/console-browserify/package.json" - }, - { - "path": "node_modules/posix-character-classes/package.json" - }, - { - "path": "node_modules/locate-path/package.json" - }, - { - "path": "node_modules/is-yarn-global/package.json" - }, - { - "path": "node_modules/browserify-zlib/package.json" - }, - { - "path": "node_modules/cliui/package.json" - }, - { - "path": "node_modules/buffer-xor/package.json" - }, - { - "path": "node_modules/fs-minipass/package.json" - }, - { - "path": "node_modules/@types/fs-extra/package.json" - }, - { - "path": "node_modules/@types/fs-extra/node_modules/@types/node/package.json" - }, - { - "path": "node_modules/@types/color-name/package.json" - }, - { - "path": "node_modules/@types/long/package.json" - }, - { - "path": "node_modules/@types/istanbul-lib-coverage/package.json" - }, - { - "path": "node_modules/@types/minimist/package.json" - }, - { - "path": "node_modules/@types/mocha/package.json" - }, - { - "path": "node_modules/@types/is-windows/package.json" - }, - { - "path": "node_modules/@types/normalize-package-data/package.json" - }, - { - "path": "node_modules/@types/node/package.json" - }, - { - "path": "node_modules/got/package.json" - }, - { - "path": "node_modules/got/node_modules/get-stream/package.json" - }, - { - "path": "node_modules/anymatch/package.json" - }, - { - "path": "node_modules/anymatch/node_modules/fill-range/package.json" - }, - { - "path": "node_modules/anymatch/node_modules/fill-range/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/anymatch/node_modules/braces/package.json" - }, - { - "path": "node_modules/anymatch/node_modules/braces/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/anymatch/node_modules/micromatch/index.js" - }, - { - "path": "node_modules/anymatch/node_modules/micromatch/CHANGELOG.md" - }, - { - "path": "node_modules/anymatch/node_modules/micromatch/LICENSE" - }, - { - "path": "node_modules/anymatch/node_modules/micromatch/package.json" - }, - { - "path": "node_modules/anymatch/node_modules/micromatch/README.md" - }, - { - "path": "node_modules/anymatch/node_modules/micromatch/lib/cache.js" - }, - { - "path": "node_modules/anymatch/node_modules/micromatch/lib/parsers.js" - }, - { - "path": "node_modules/anymatch/node_modules/micromatch/lib/utils.js" - }, - { - "path": "node_modules/anymatch/node_modules/micromatch/lib/.DS_Store" - }, - { - "path": "node_modules/anymatch/node_modules/micromatch/lib/compilers.js" - }, - { - "path": "node_modules/anymatch/node_modules/to-regex-range/package.json" - }, - { - "path": "node_modules/anymatch/node_modules/is-number/package.json" - }, - { - "path": "node_modules/anymatch/node_modules/is-number/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/anymatch/node_modules/normalize-path/package.json" - }, - { - "path": "node_modules/anymatch/node_modules/is-buffer/package.json" - }, - { - "path": "node_modules/parse-json/package.json" - }, - { - "path": "node_modules/fragment-cache/package.json" - }, - { - "path": "node_modules/findup-sync/package.json" - }, - { - "path": "node_modules/findup-sync/node_modules/fill-range/package.json" - }, - { - "path": "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/findup-sync/node_modules/braces/package.json" - }, - { - "path": "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/findup-sync/node_modules/micromatch/index.js" - }, - { - "path": "node_modules/findup-sync/node_modules/micromatch/CHANGELOG.md" - }, - { - "path": "node_modules/findup-sync/node_modules/micromatch/LICENSE" - }, - { - "path": "node_modules/findup-sync/node_modules/micromatch/package.json" - }, - { - "path": "node_modules/findup-sync/node_modules/micromatch/README.md" - }, - { - "path": "node_modules/findup-sync/node_modules/micromatch/lib/cache.js" - }, - { - "path": "node_modules/findup-sync/node_modules/micromatch/lib/parsers.js" - }, - { - "path": "node_modules/findup-sync/node_modules/micromatch/lib/utils.js" - }, - { - "path": "node_modules/findup-sync/node_modules/micromatch/lib/.DS_Store" - }, - { - "path": "node_modules/findup-sync/node_modules/micromatch/lib/compilers.js" - }, - { - "path": "node_modules/findup-sync/node_modules/to-regex-range/package.json" - }, - { - "path": "node_modules/findup-sync/node_modules/is-number/package.json" - }, - { - "path": "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/findup-sync/node_modules/is-buffer/package.json" - }, - { - "path": "node_modules/he/package.json" - }, - { - "path": "node_modules/diffie-hellman/package.json" - }, - { - "path": "node_modules/constants-browserify/package.json" - }, - { - "path": "node_modules/minimist/package.json" - }, - { - "path": "node_modules/keyv/package.json" - }, - { - "path": "node_modules/diff/package.json" - }, - { - "path": "node_modules/ajv-keywords/package.json" - }, - { - "path": "node_modules/strip-json-comments/package.json" - }, - { - "path": "node_modules/spdx-exceptions/package.json" - }, - { - "path": "node_modules/resolve-from/package.json" - }, - { - "path": "node_modules/run-queue/package.json" - }, - { - "path": "node_modules/move-concurrently/package.json" - }, - { - "path": "node_modules/move-concurrently/node_modules/rimraf/package.json" - }, - { - "path": "node_modules/klaw/package.json" - }, - { - "path": "node_modules/bignumber.js/package.json" - }, - { - "path": "node_modules/safe-regex/package.json" - }, - { - "path": "node_modules/js2xmlparser/package.json" - }, - { - "path": "node_modules/normalize-path/package.json" - }, - { - "path": "node_modules/lodash/package.json" - }, - { - "path": "node_modules/google-p12-pem/package.json" - }, - { - "path": "node_modules/to-object-path/package.json" - }, - { - "path": "node_modules/to-object-path/node_modules/is-buffer/package.json" - }, - { - "path": "node_modules/to-object-path/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/clone-response/package.json" - }, - { - "path": "node_modules/package-json/package.json" - }, - { - "path": "node_modules/package-json/node_modules/semver/package.json" - }, - { - "path": "node_modules/html-escaper/package.json" - }, - { - "path": "node_modules/fast-deep-equal/package.json" - }, - { - "path": "node_modules/mocha/package.json" - }, - { - "path": "node_modules/mocha/node_modules/path-exists/package.json" - }, - { - "path": "node_modules/mocha/node_modules/supports-color/package.json" - }, - { - "path": "node_modules/mocha/node_modules/debug/package.json" - }, - { - "path": "node_modules/mocha/node_modules/yargs/package.json" - }, - { - "path": "node_modules/mocha/node_modules/which/package.json" - }, - { - "path": "node_modules/mocha/node_modules/ms/package.json" - }, - { - "path": "node_modules/mocha/node_modules/find-up/package.json" - }, - { - "path": "node_modules/mocha/node_modules/locate-path/package.json" - }, - { - "path": "node_modules/mocha/node_modules/diff/package.json" - }, - { - "path": "node_modules/mocha/node_modules/p-locate/package.json" - }, - { - "path": "node_modules/mocha/node_modules/yargs-parser/package.json" - }, - { - "path": "node_modules/mocha/node_modules/glob/package.json" - }, - { - "path": "node_modules/stream-each/package.json" - }, - { - "path": "node_modules/fresh/package.json" - }, - { - "path": "node_modules/registry-url/package.json" - }, - { - "path": "node_modules/global-modules/package.json" - }, - { - "path": "node_modules/global-modules/node_modules/global-prefix/package.json" - }, - { - "path": "node_modules/global-modules/node_modules/which/package.json" - }, - { - "path": "node_modules/redent/package.json" - }, - { - "path": "node_modules/decamelize-keys/package.json" - }, - { - "path": "node_modules/decamelize-keys/node_modules/map-obj/package.json" - }, - { - "path": "node_modules/path-browserify/package.json" - }, - { - "path": "node_modules/requizzle/package.json" - }, - { - "path": "node_modules/lodash.has/package.json" - }, - { - "path": "node_modules/p-finally/package.json" - }, - { - "path": "node_modules/end-of-stream/package.json" - }, - { - "path": "node_modules/is-extendable/package.json" - }, - { - "path": "node_modules/safe-buffer/package.json" - }, - { - "path": "node_modules/term-size/package.json" - }, - { - "path": "node_modules/linkinator/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/indent-string/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/strip-ansi/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/unique-string/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/read-pkg/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/read-pkg/node_modules/type-fest/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/global-dirs/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/is-npm/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/meow/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/trim-newlines/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/is-path-inside/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/quick-lru/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/ansi-regex/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/is-installed-globally/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/configstore/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/semver-diff/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/minimist-options/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/read-pkg-up/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/map-obj/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/strip-indent/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/crypto-random-string/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/camelcase-keys/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/make-dir/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/is-obj/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/is-fullwidth-code-point/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/semver/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/widest-line/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/emoji-regex/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/parse-json/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/redent/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/term-size/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/update-notifier/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/dot-prop/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/xdg-basedir/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/yargs-parser/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/boxen/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/arrify/package.json" - }, - { - "path": "node_modules/linkinator/node_modules/string-width/package.json" - }, - { - "path": "node_modules/big.js/package.json" - }, - { - "path": "node_modules/is-typedarray/package.json" - }, - { - "path": "node_modules/update-notifier/package.json" - }, - { - "path": "node_modules/update-notifier/node_modules/supports-color/package.json" - }, - { - "path": "node_modules/update-notifier/node_modules/chalk/package.json" - }, - { - "path": "node_modules/mkdirp/package.json" - }, - { - "path": "node_modules/commondir/package.json" - }, - { - "path": "node_modules/concat-map/package.json" - }, - { - "path": "node_modules/external-editor/package.json" - }, - { - "path": "node_modules/is-buffer/package.json" - }, - { - "path": "node_modules/nth-check/package.json" - }, - { - "path": "node_modules/regex-not/package.json" - }, - { - "path": "node_modules/from2/package.json" - }, - { - "path": "node_modules/chokidar/package.json" - }, - { - "path": "node_modules/chokidar/node_modules/fill-range/package.json" - }, - { - "path": "node_modules/chokidar/node_modules/braces/package.json" - }, - { - "path": "node_modules/chokidar/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/chokidar/node_modules/to-regex-range/package.json" - }, - { - "path": "node_modules/chokidar/node_modules/is-number/package.json" - }, - { - "path": "node_modules/chokidar/node_modules/is-buffer/package.json" - }, - { - "path": "node_modules/chokidar/node_modules/kind-of/package.json" - }, - { - "path": "node_modules/get-caller-file/package.json" - }, - { - "path": "node_modules/map-visit/package.json" - }, - { - "path": "node_modules/lodash.at/package.json" - }, - { - "path": "node_modules/parse-passwd/package.json" - }, - { - "path": "node_modules/elliptic/package.json" - }, - { - "path": "node_modules/ansi-colors/package.json" - }, - { - "path": "node_modules/.bin/sha.js" - }, - { - "path": "node_modules/hmac-drbg/package.json" - }, - { - "path": "node_modules/setimmediate/package.json" - }, - { - "path": "node_modules/browserify-des/package.json" - }, - { - "path": "node_modules/c8/package.json" - }, - { - "path": "node_modules/path-is-inside/package.json" - }, - { - "path": "node_modules/lodash.camelcase/package.json" - }, - { - "path": "node_modules/wrap-ansi/package.json" - }, - { - "path": "node_modules/infer-owner/package.json" - }, - { - "path": "node_modules/bluebird/package.json" - }, - { - "path": "node_modules/p-locate/package.json" - }, - { - "path": "node_modules/ajv-errors/package.json" - }, - { - "path": "node_modules/rc/package.json" - }, - { - "path": "node_modules/rc/node_modules/minimist/package.json" - }, - { - "path": "node_modules/url/package.json" - }, - { - "path": "node_modules/url/node_modules/punycode/package.json" - }, - { - "path": "node_modules/dot-prop/package.json" - }, - { - "path": "node_modules/create-ecdh/package.json" - }, - { - "path": "node_modules/browserify-aes/package.json" - }, - { - "path": "node_modules/mixin-deep/package.json" - }, - { - "path": "node_modules/mixin-deep/node_modules/is-extendable/package.json" - }, - { - "path": "node_modules/browser-stdout/package.json" - }, - { - "path": "node_modules/assert/package.json" - }, - { - "path": "node_modules/assert/node_modules/inherits/package.json" - }, - { - "path": "node_modules/assert/node_modules/util/package.json" - }, - { - "path": "node_modules/spdx-license-ids/package.json" - }, - { - "path": "node_modules/jsonexport/package.json" - }, - { - "path": "node_modules/istanbul-reports/package.json" - }, - { - "path": "node_modules/remove-trailing-separator/package.json" - }, - { - "path": "node_modules/iferr/package.json" - }, - { - "path": "node_modules/on-finished/package.json" - }, - { - "path": "node_modules/require-main-filename/package.json" - }, - { - "path": "node_modules/object-visit/package.json" - }, - { - "path": "node_modules/string.prototype.trimleft/package.json" - }, - { - "path": "node_modules/map-age-cleaner/package.json" - }, - { - "path": "node_modules/escape-string-regexp/package.json" - }, - { - "path": "node_modules/log-symbols/package.json" - }, - { - "path": "node_modules/log-symbols/node_modules/supports-color/package.json" - }, - { - "path": "node_modules/log-symbols/node_modules/chalk/package.json" - }, - { - "path": "node_modules/defer-to-connect/package.json" - }, - { - "path": "node_modules/htmlparser2/package.json" - }, - { - "path": "node_modules/htmlparser2/node_modules/readable-stream/package.json" - }, - { - "path": "node_modules/p-cancelable/package.json" - }, - { - "path": "node_modules/ansi-align/package.json" - }, - { - "path": "node_modules/cacache/package.json" - }, - { - "path": "node_modules/cacache/node_modules/rimraf/package.json" - }, - { - "path": "node_modules/marked/package.json" - }, - { - "path": "node_modules/mamacro/package.json" - }, - { - "path": "node_modules/ansi-styles/package.json" - }, - { - "path": "node_modules/xdg-basedir/package.json" - }, - { - "path": "node_modules/emojis-list/package.json" - }, - { - "path": "node_modules/bn.js/package.json" - }, - { - "path": "node_modules/ripemd160/package.json" - }, - { - "path": "node_modules/commander/package.json" - }, - { - "path": "node_modules/asn1.js/package.json" - }, - { - "path": "node_modules/tar/package.json" - }, - { - "path": "node_modules/tar/node_modules/yallist/package.json" - }, - { - "path": "node_modules/walkdir/package.json" - }, - { - "path": "node_modules/os-tmpdir/package.json" - }, - { - "path": "node_modules/prepend-http/package.json" - }, - { - "path": "node_modules/lines-and-columns/package.json" - }, - { - "path": "node_modules/resolve/package.json" - }, - { - "path": "node_modules/is-windows/package.json" - }, - { - "path": "node_modules/p-queue/package.json" - }, - { - "path": "node_modules/kind-of/package.json" - }, - { - "path": "node_modules/loader-runner/package.json" - }, - { - "path": "node_modules/is-binary-path/package.json" - }, - { - "path": "node_modules/builtin-status-codes/package.json" - }, - { - "path": "node_modules/through/package.json" - }, - { - "path": "node_modules/minizlib/package.json" - }, - { - "path": "node_modules/minizlib/node_modules/yallist/package.json" - }, - { - "path": "node_modules/normalize-package-data/package.json" - }, - { - "path": "node_modules/normalize-package-data/node_modules/semver/package.json" - }, - { - "path": "node_modules/yargs-parser/package.json" - }, - { - "path": "node_modules/convert-source-map/package.json" - }, - { - "path": "node_modules/homedir-polyfill/package.json" - }, - { - "path": "node_modules/vm-browserify/package.json" - }, - { - "path": "node_modules/unset-value/package.json" - }, - { - "path": "node_modules/unset-value/node_modules/has-values/package.json" - }, - { - "path": "node_modules/unset-value/node_modules/has-value/package.json" - }, - { - "path": "node_modules/unset-value/node_modules/has-value/node_modules/isobject/package.json" - }, - { - "path": "node_modules/glob/package.json" - }, - { - "path": "node_modules/ee-first/package.json" - }, - { - "path": "node_modules/async-each/package.json" - }, - { - "path": "node_modules/repeat-element/package.json" - }, - { - "path": "node_modules/extend/package.json" - }, - { - "path": "node_modules/isobject/package.json" - }, - { - "path": "node_modules/pako/package.json" - }, - { - "path": "node_modules/test-exclude/package.json" - }, - { - "path": "node_modules/boxen/package.json" - }, - { - "path": "node_modules/boxen/node_modules/supports-color/package.json" - }, - { - "path": "node_modules/boxen/node_modules/chalk/package.json" - }, - { - "path": "node_modules/boxen/node_modules/type-fest/package.json" - }, - { - "path": "node_modules/arrify/package.json" - }, - { - "path": "node_modules/@webassemblyjs/floating-point-hex-parser/package.json" - }, - { - "path": "node_modules/@webassemblyjs/wast-printer/package.json" - }, - { - "path": "node_modules/@webassemblyjs/wasm-opt/package.json" - }, - { - "path": "node_modules/@webassemblyjs/wasm-gen/package.json" - }, - { - "path": "node_modules/@webassemblyjs/helper-buffer/package.json" - }, - { - "path": "node_modules/@webassemblyjs/utf8/package.json" - }, - { - "path": "node_modules/@webassemblyjs/wast-parser/package.json" - }, - { - "path": "node_modules/@webassemblyjs/ieee754/package.json" - }, - { - "path": "node_modules/@webassemblyjs/ast/package.json" - }, - { - "path": "node_modules/@webassemblyjs/helper-module-context/package.json" - }, - { - "path": "node_modules/@webassemblyjs/helper-api-error/package.json" - }, - { - "path": "node_modules/@webassemblyjs/leb128/package.json" - }, - { - "path": "node_modules/@webassemblyjs/helper-wasm-bytecode/package.json" - }, - { - "path": "node_modules/@webassemblyjs/helper-fsm/package.json" - }, - { - "path": "node_modules/@webassemblyjs/wasm-parser/package.json" - }, - { - "path": "node_modules/@webassemblyjs/helper-wasm-section/package.json" - }, - { - "path": "node_modules/@webassemblyjs/wasm-edit/package.json" - }, - { - "path": "node_modules/@webassemblyjs/helper-code-frame/package.json" - }, - { - "path": "node_modules/@xtuc/long/package.json" - }, - { - "path": "node_modules/@xtuc/ieee754/package.json" - }, - { - "path": "node_modules/fs-write-stream-atomic/package.json" - }, - { - "path": "node_modules/snapdragon/index.js" - }, - { - "path": "node_modules/snapdragon/LICENSE" - }, - { - "path": "node_modules/snapdragon/package.json" - }, - { - "path": "node_modules/snapdragon/README.md" - }, - { - "path": "node_modules/snapdragon/lib/position.js" - }, - { - "path": "node_modules/snapdragon/lib/compiler.js" - }, - { - "path": "node_modules/snapdragon/lib/utils.js" - }, - { - "path": "node_modules/snapdragon/lib/source-maps.js" - }, - { - "path": "node_modules/snapdragon/lib/parser.js" - }, - { - "path": "node_modules/snapdragon/node_modules/source-map/package.json" - }, - { - "path": "node_modules/snapdragon/node_modules/debug/package.json" - }, - { - "path": "node_modules/snapdragon/node_modules/define-property/package.json" - }, - { - "path": "node_modules/snapdragon/node_modules/extend-shallow/package.json" - }, - { - "path": "node_modules/snapdragon/node_modules/ms/package.json" - }, - { - "path": "node_modules/function-bind/package.json" - }, - { - "path": "node_modules/gcp-metadata/package.json" - }, - { - "path": "node_modules/string-width/package.json" - }, - { - "path": "node_modules/domelementtype/package.json" - }, - { - "path": "node_modules/y18n/package.json" - }, - { - "path": "node_modules/parallel-transform/package.json" - }, - { - "path": "node_modules/glob-parent/package.json" - }, - { - "path": "node_modules/glob-parent/node_modules/is-glob/package.json" - }, - { - "path": "node_modules/resolve-cwd/package.json" - } ] } \ No newline at end of file From 7e98098e3925982fbd03ed83243b140b5f3c0552 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 17 Jan 2020 02:28:25 +0100 Subject: [PATCH 006/158] chore(deps): update dependency mocha to v7 (#5) --- packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 4e0b0768284..c061375cfa2 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -40,7 +40,7 @@ "jsdoc-fresh": "^1.0.1", "jsdoc-region-tag": "^1.0.2", "linkinator": "^1.5.0", - "mocha": "^6.0.0", + "mocha": "^7.0.0", "null-loader": "^3.0.0", "pack-n-play": "^1.0.0-2", "prettier": "^1.19.1", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 3d813ae53cf..7aeae10d105 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -18,6 +18,6 @@ "devDependencies": { "c8": "^5.0.1", "chai": "^4.2.0", - "mocha": "^6.1.4" + "mocha": "^7.0.0" } } From 784a068f97405c56750d51207a66c1369d3c8cb3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 23 Jan 2020 00:41:04 +0100 Subject: [PATCH 007/158] chore(deps): update dependency c8 to v7 (#4) --- packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index c061375cfa2..d75664eb1de 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -30,7 +30,7 @@ "devDependencies": { "@types/mocha": "^5.2.5", "@types/node": "^12.0.0", - "c8": "^6.0.0", + "c8": "^7.0.0", "eslint": "^6.8.0", "eslint-config-prettier": "^6.9.0", "eslint-plugin-node": "^11.0.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 7aeae10d105..c5ba22587b4 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -16,7 +16,7 @@ "@google-cloud/recommender": "^1.0.0" }, "devDependencies": { - "c8": "^5.0.1", + "c8": "^7.0.0", "chai": "^4.2.0", "mocha": "^7.0.0" } From f8d33b69ec5f3417bf2db1c5d2a0b45fa135f906 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 22 Jan 2020 15:57:51 -0800 Subject: [PATCH 008/158] feat!: upgrade to v1 client (#8) --- .../{v1beta1 => v1}/recommendation.proto | 18 +- .../{v1beta1 => v1}/recommender_service.proto | 47 +- .../protos/protos.d.ts | 372 +++--- .../google-cloud-recommender/protos/protos.js | 1142 ++++++++--------- .../protos/protos.json | 18 +- .../google-cloud-recommender/src/index.ts | 8 +- .../src/{v1beta1 => v1}/index.ts | 0 .../src/{v1beta1 => v1}/recommender_client.ts | 196 ++- .../recommender_client_config.json | 2 +- .../src/v1/recommender_proto_list.json | 4 + .../src/v1beta1/recommender_proto_list.json | 4 - .../google-cloud-recommender/synth.metadata | 223 +++- packages/google-cloud-recommender/synth.py | 2 +- ...der-v1beta1.ts => gapic-recommender-v1.ts} | 52 +- 14 files changed, 1150 insertions(+), 938 deletions(-) rename packages/google-cloud-recommender/protos/google/cloud/recommender/{v1beta1 => v1}/recommendation.proto (96%) rename packages/google-cloud-recommender/protos/google/cloud/recommender/{v1beta1 => v1}/recommender_service.proto (83%) rename packages/google-cloud-recommender/src/{v1beta1 => v1}/index.ts (100%) rename packages/google-cloud-recommender/src/{v1beta1 => v1}/recommender_client.ts (79%) rename packages/google-cloud-recommender/src/{v1beta1 => v1}/recommender_client_config.json (96%) create mode 100644 packages/google-cloud-recommender/src/v1/recommender_proto_list.json delete mode 100644 packages/google-cloud-recommender/src/v1beta1/recommender_proto_list.json rename packages/google-cloud-recommender/test/{gapic-recommender-v1beta1.ts => gapic-recommender-v1.ts} (81%) diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommendation.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto similarity index 96% rename from packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommendation.proto rename to packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto index 542cd8e11d6..15e2bca185b 100644 --- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommendation.proto +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto @@ -15,7 +15,7 @@ syntax = "proto3"; -package google.cloud.recommender.v1beta1; +package google.cloud.recommender.v1; import "google/api/resource.proto"; import "google/protobuf/duration.proto"; @@ -23,10 +23,10 @@ import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/type/money.proto"; -option csharp_namespace = "Google.Cloud.Recommender.V1Beta1"; -option go_package = "google.golang.org/genproto/googleapis/cloud/recommender/v1beta1;recommender"; +option csharp_namespace = "Google.Cloud.Recommender.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/recommender/v1;recommender"; option java_multiple_files = true; -option java_package = "com.google.cloud.recommender.v1beta1"; +option java_package = "com.google.cloud.recommender.v1"; option objc_class_prefix = "CREC"; option (google.api.resource_definition) = { type: "recommender.googleapis.com/Recommender" @@ -109,7 +109,7 @@ message OperationGroup { // See https://tools.ietf.org/html/rfc6902 for details on the original RFC. message Operation { // Type of this operation. Contains one of 'and', 'remove', 'replace', 'move', - // 'copy', 'test' and 'custom' operations. This field is case-insensitive and + // 'copy', 'test' and custom operations. This field is case-insensitive and // always populated. string action = 1; @@ -159,15 +159,15 @@ message Operation { // * Example: { // "/versions/*/name" : "it-123" // "/versions/*/targetSize/percent": 20 - // } + // } // * Example: { // "/bindings/*/role": "roles/admin" // "/bindings/*/condition" : null - // } + // } // * Example: { // "/bindings/*/role": "roles/admin" // "/bindings/*/members/*" : ["x@google.com", "y@google.com"] - // } + // } // When both path_filters and path_value_matchers are set, an implicit AND // must be performed. map path_filters = 8; @@ -233,7 +233,7 @@ message Impact { // Information for state. Contains state and metadata. message RecommendationStateInfo { - // Represents Recommendation State. + // Represents Recommendation State enum State { // Default state. Don't use directly. STATE_UNSPECIFIED = 0; diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommender_service.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto similarity index 83% rename from packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommender_service.proto rename to packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto index 5beee2972f3..97a04f5accc 100644 --- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1beta1/recommender_service.proto +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto @@ -15,25 +15,25 @@ syntax = "proto3"; -package google.cloud.recommender.v1beta1; +package google.cloud.recommender.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/cloud/recommender/v1beta1/recommendation.proto"; +import "google/cloud/recommender/v1/recommendation.proto"; -option csharp_namespace = "Google.Cloud.Recommender.V1Beta1"; -option go_package = "google.golang.org/genproto/googleapis/cloud/recommender/v1beta1;recommender"; +option csharp_namespace = "Google.Cloud.Recommender.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/recommender/v1;recommender"; option java_multiple_files = true; option java_outer_classname = "RecommenderProto"; -option java_package = "com.google.cloud.recommender.v1beta1"; +option java_package = "com.google.cloud.recommender.v1"; option objc_class_prefix = "CREC"; -// Provides insights and recommendations for cloud customers for various -// categories like performance optimization, cost savings, reliability, feature -// discovery, etc. Insights and recommendations are generated automatically -// based on analysis of user resources, configuration and monitoring metrics. +// Provides recommendations for cloud customers for various categories like +// performance optimization, cost savings, reliability, feature discovery, etc. +// These recommendations are generated automatically based on analysis of user +// resources, configuration and monitoring metrics. service Recommender { option (google.api.default_host) = "recommender.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; @@ -42,8 +42,9 @@ service Recommender { // IAM permission for the specified recommender. rpc ListRecommendations(ListRecommendationsRequest) returns (ListRecommendationsResponse) { option (google.api.http) = { - get: "/v1beta1/{parent=projects/*/locations/*/recommenders/*}/recommendations" + get: "/v1/{parent=projects/*/locations/*/recommenders/*}/recommendations" }; + option (google.api.method_signature) = "parent"; option (google.api.method_signature) = "parent,filter"; } @@ -51,34 +52,33 @@ service Recommender { // IAM permission for the specified recommender. rpc GetRecommendation(GetRecommendationRequest) returns (Recommendation) { option (google.api.http) = { - get: "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}" + get: "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}" }; option (google.api.method_signature) = "name"; } - // Marks the Recommendation State as Claimed. Users can use this method to + // Mark the Recommendation State as Claimed. Users can use this method to // indicate to the Recommender API that they are starting to apply the // recommendation themselves. This stops the recommendation content from being - // updated. Associated insights are frozen and placed in the ACCEPTED state. + // updated. // - // MarkRecommendationClaimed can be applied to recommendations in CLAIMED or - // ACTIVE state. + // MarkRecommendationClaimed can be applied to recommendations in CLAIMED, + // SUCCEEDED, FAILED, or ACTIVE state. // // Requires the recommender.*.update IAM permission for the specified // recommender. rpc MarkRecommendationClaimed(MarkRecommendationClaimedRequest) returns (Recommendation) { option (google.api.http) = { - post: "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed" + post: "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed" body: "*" }; option (google.api.method_signature) = "name,state_metadata,etag"; } - // Marks the Recommendation State as Succeeded. Users can use this method to + // Mark the Recommendation State as Succeeded. Users can use this method to // indicate to the Recommender API that they have applied the recommendation // themselves, and the operation was successful. This stops the recommendation - // content from being updated. Associated insights are frozen and placed in - // the ACCEPTED state. + // content from being updated. // // MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, // CLAIMED, SUCCEEDED, or FAILED state. @@ -87,17 +87,16 @@ service Recommender { // recommender. rpc MarkRecommendationSucceeded(MarkRecommendationSucceededRequest) returns (Recommendation) { option (google.api.http) = { - post: "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded" + post: "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded" body: "*" }; option (google.api.method_signature) = "name,state_metadata,etag"; } - // Marks the Recommendation State as Failed. Users can use this method to + // Mark the Recommendation State as Failed. Users can use this method to // indicate to the Recommender API that they have applied the recommendation // themselves, and the operation failed. This stops the recommendation content - // from being updated. Associated insights are frozen and placed in the - // ACCEPTED state. + // from being updated. // // MarkRecommendationFailed can be applied to recommendations in ACTIVE, // CLAIMED, SUCCEEDED, or FAILED state. @@ -106,7 +105,7 @@ service Recommender { // recommender. rpc MarkRecommendationFailed(MarkRecommendationFailedRequest) returns (Recommendation) { option (google.api.http) = { - post: "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed" + post: "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed" body: "*" }; option (google.api.method_signature) = "name,state_metadata,etag"; diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index f67d6a887ca..0bf74bd5b59 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -23,8 +23,8 @@ export namespace google { /** Namespace recommender. */ namespace recommender { - /** Namespace v1beta1. */ - namespace v1beta1 { + /** Namespace v1. */ + namespace v1 { /** Properties of a Recommendation. */ interface IRecommendation { @@ -42,16 +42,16 @@ export namespace google { lastRefreshTime?: (google.protobuf.ITimestamp|null); /** Recommendation primaryImpact */ - primaryImpact?: (google.cloud.recommender.v1beta1.IImpact|null); + primaryImpact?: (google.cloud.recommender.v1.IImpact|null); /** Recommendation additionalImpact */ - additionalImpact?: (google.cloud.recommender.v1beta1.IImpact[]|null); + additionalImpact?: (google.cloud.recommender.v1.IImpact[]|null); /** Recommendation content */ - content?: (google.cloud.recommender.v1beta1.IRecommendationContent|null); + content?: (google.cloud.recommender.v1.IRecommendationContent|null); /** Recommendation stateInfo */ - stateInfo?: (google.cloud.recommender.v1beta1.IRecommendationStateInfo|null); + stateInfo?: (google.cloud.recommender.v1.IRecommendationStateInfo|null); /** Recommendation etag */ etag?: (string|null); @@ -64,7 +64,7 @@ export namespace google { * Constructs a new Recommendation. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IRecommendation); + constructor(properties?: google.cloud.recommender.v1.IRecommendation); /** Recommendation name. */ public name: string; @@ -79,16 +79,16 @@ export namespace google { public lastRefreshTime?: (google.protobuf.ITimestamp|null); /** Recommendation primaryImpact. */ - public primaryImpact?: (google.cloud.recommender.v1beta1.IImpact|null); + public primaryImpact?: (google.cloud.recommender.v1.IImpact|null); /** Recommendation additionalImpact. */ - public additionalImpact: google.cloud.recommender.v1beta1.IImpact[]; + public additionalImpact: google.cloud.recommender.v1.IImpact[]; /** Recommendation content. */ - public content?: (google.cloud.recommender.v1beta1.IRecommendationContent|null); + public content?: (google.cloud.recommender.v1.IRecommendationContent|null); /** Recommendation stateInfo. */ - public stateInfo?: (google.cloud.recommender.v1beta1.IRecommendationStateInfo|null); + public stateInfo?: (google.cloud.recommender.v1.IRecommendationStateInfo|null); /** Recommendation etag. */ public etag: string; @@ -98,23 +98,23 @@ export namespace google { * @param [properties] Properties to set * @returns Recommendation instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IRecommendation): google.cloud.recommender.v1beta1.Recommendation; + public static create(properties?: google.cloud.recommender.v1.IRecommendation): google.cloud.recommender.v1.Recommendation; /** - * Encodes the specified Recommendation message. Does not implicitly {@link google.cloud.recommender.v1beta1.Recommendation.verify|verify} messages. + * Encodes the specified Recommendation message. Does not implicitly {@link google.cloud.recommender.v1.Recommendation.verify|verify} messages. * @param message Recommendation message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IRecommendation, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IRecommendation, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Recommendation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.Recommendation.verify|verify} messages. + * Encodes the specified Recommendation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Recommendation.verify|verify} messages. * @param message Recommendation message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IRecommendation, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IRecommendation, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a Recommendation message from the specified reader or buffer. @@ -124,7 +124,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.Recommendation; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.Recommendation; /** * Decodes a Recommendation message from the specified reader or buffer, length delimited. @@ -133,7 +133,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.Recommendation; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.Recommendation; /** * Verifies a Recommendation message. @@ -147,7 +147,7 @@ export namespace google { * @param object Plain object * @returns Recommendation */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.Recommendation; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.Recommendation; /** * Creates a plain object from a Recommendation message. Also converts values to other types if specified. @@ -155,7 +155,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.Recommendation, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.Recommendation, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this Recommendation to JSON. @@ -168,7 +168,7 @@ export namespace google { interface IRecommendationContent { /** RecommendationContent operationGroups */ - operationGroups?: (google.cloud.recommender.v1beta1.IOperationGroup[]|null); + operationGroups?: (google.cloud.recommender.v1.IOperationGroup[]|null); } /** Represents a RecommendationContent. */ @@ -178,33 +178,33 @@ export namespace google { * Constructs a new RecommendationContent. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IRecommendationContent); + constructor(properties?: google.cloud.recommender.v1.IRecommendationContent); /** RecommendationContent operationGroups. */ - public operationGroups: google.cloud.recommender.v1beta1.IOperationGroup[]; + public operationGroups: google.cloud.recommender.v1.IOperationGroup[]; /** * Creates a new RecommendationContent instance using the specified properties. * @param [properties] Properties to set * @returns RecommendationContent instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IRecommendationContent): google.cloud.recommender.v1beta1.RecommendationContent; + public static create(properties?: google.cloud.recommender.v1.IRecommendationContent): google.cloud.recommender.v1.RecommendationContent; /** - * Encodes the specified RecommendationContent message. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationContent.verify|verify} messages. + * Encodes the specified RecommendationContent message. Does not implicitly {@link google.cloud.recommender.v1.RecommendationContent.verify|verify} messages. * @param message RecommendationContent message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IRecommendationContent, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IRecommendationContent, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified RecommendationContent message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationContent.verify|verify} messages. + * Encodes the specified RecommendationContent message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.RecommendationContent.verify|verify} messages. * @param message RecommendationContent message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IRecommendationContent, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IRecommendationContent, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a RecommendationContent message from the specified reader or buffer. @@ -214,7 +214,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.RecommendationContent; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.RecommendationContent; /** * Decodes a RecommendationContent message from the specified reader or buffer, length delimited. @@ -223,7 +223,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.RecommendationContent; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.RecommendationContent; /** * Verifies a RecommendationContent message. @@ -237,7 +237,7 @@ export namespace google { * @param object Plain object * @returns RecommendationContent */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.RecommendationContent; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.RecommendationContent; /** * Creates a plain object from a RecommendationContent message. Also converts values to other types if specified. @@ -245,7 +245,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.RecommendationContent, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.RecommendationContent, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this RecommendationContent to JSON. @@ -258,7 +258,7 @@ export namespace google { interface IOperationGroup { /** OperationGroup operations */ - operations?: (google.cloud.recommender.v1beta1.IOperation[]|null); + operations?: (google.cloud.recommender.v1.IOperation[]|null); } /** Represents an OperationGroup. */ @@ -268,33 +268,33 @@ export namespace google { * Constructs a new OperationGroup. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IOperationGroup); + constructor(properties?: google.cloud.recommender.v1.IOperationGroup); /** OperationGroup operations. */ - public operations: google.cloud.recommender.v1beta1.IOperation[]; + public operations: google.cloud.recommender.v1.IOperation[]; /** * Creates a new OperationGroup instance using the specified properties. * @param [properties] Properties to set * @returns OperationGroup instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IOperationGroup): google.cloud.recommender.v1beta1.OperationGroup; + public static create(properties?: google.cloud.recommender.v1.IOperationGroup): google.cloud.recommender.v1.OperationGroup; /** - * Encodes the specified OperationGroup message. Does not implicitly {@link google.cloud.recommender.v1beta1.OperationGroup.verify|verify} messages. + * Encodes the specified OperationGroup message. Does not implicitly {@link google.cloud.recommender.v1.OperationGroup.verify|verify} messages. * @param message OperationGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IOperationGroup, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IOperationGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified OperationGroup message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.OperationGroup.verify|verify} messages. + * Encodes the specified OperationGroup message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.OperationGroup.verify|verify} messages. * @param message OperationGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IOperationGroup, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IOperationGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes an OperationGroup message from the specified reader or buffer. @@ -304,7 +304,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.OperationGroup; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.OperationGroup; /** * Decodes an OperationGroup message from the specified reader or buffer, length delimited. @@ -313,7 +313,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.OperationGroup; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.OperationGroup; /** * Verifies an OperationGroup message. @@ -327,7 +327,7 @@ export namespace google { * @param object Plain object * @returns OperationGroup */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.OperationGroup; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.OperationGroup; /** * Creates a plain object from an OperationGroup message. Also converts values to other types if specified. @@ -335,7 +335,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.OperationGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.OperationGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this OperationGroup to JSON. @@ -369,13 +369,13 @@ export namespace google { value?: (google.protobuf.IValue|null); /** Operation valueMatcher */ - valueMatcher?: (google.cloud.recommender.v1beta1.IValueMatcher|null); + valueMatcher?: (google.cloud.recommender.v1.IValueMatcher|null); /** Operation pathFilters */ pathFilters?: ({ [k: string]: google.protobuf.IValue }|null); /** Operation pathValueMatchers */ - pathValueMatchers?: ({ [k: string]: google.cloud.recommender.v1beta1.IValueMatcher }|null); + pathValueMatchers?: ({ [k: string]: google.cloud.recommender.v1.IValueMatcher }|null); } /** Represents an Operation. */ @@ -385,7 +385,7 @@ export namespace google { * Constructs a new Operation. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IOperation); + constructor(properties?: google.cloud.recommender.v1.IOperation); /** Operation action. */ public action: string; @@ -409,13 +409,13 @@ export namespace google { public value?: (google.protobuf.IValue|null); /** Operation valueMatcher. */ - public valueMatcher?: (google.cloud.recommender.v1beta1.IValueMatcher|null); + public valueMatcher?: (google.cloud.recommender.v1.IValueMatcher|null); /** Operation pathFilters. */ public pathFilters: { [k: string]: google.protobuf.IValue }; /** Operation pathValueMatchers. */ - public pathValueMatchers: { [k: string]: google.cloud.recommender.v1beta1.IValueMatcher }; + public pathValueMatchers: { [k: string]: google.cloud.recommender.v1.IValueMatcher }; /** Operation pathValue. */ public pathValue?: ("value"|"valueMatcher"); @@ -425,23 +425,23 @@ export namespace google { * @param [properties] Properties to set * @returns Operation instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IOperation): google.cloud.recommender.v1beta1.Operation; + public static create(properties?: google.cloud.recommender.v1.IOperation): google.cloud.recommender.v1.Operation; /** - * Encodes the specified Operation message. Does not implicitly {@link google.cloud.recommender.v1beta1.Operation.verify|verify} messages. + * Encodes the specified Operation message. Does not implicitly {@link google.cloud.recommender.v1.Operation.verify|verify} messages. * @param message Operation message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IOperation, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IOperation, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.Operation.verify|verify} messages. + * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Operation.verify|verify} messages. * @param message Operation message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IOperation, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IOperation, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes an Operation message from the specified reader or buffer. @@ -451,7 +451,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.Operation; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.Operation; /** * Decodes an Operation message from the specified reader or buffer, length delimited. @@ -460,7 +460,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.Operation; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.Operation; /** * Verifies an Operation message. @@ -474,7 +474,7 @@ export namespace google { * @param object Plain object * @returns Operation */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.Operation; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.Operation; /** * Creates a plain object from an Operation message. Also converts values to other types if specified. @@ -482,7 +482,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.Operation, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.Operation, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this Operation to JSON. @@ -505,7 +505,7 @@ export namespace google { * Constructs a new ValueMatcher. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IValueMatcher); + constructor(properties?: google.cloud.recommender.v1.IValueMatcher); /** ValueMatcher matchesPattern. */ public matchesPattern: string; @@ -518,23 +518,23 @@ export namespace google { * @param [properties] Properties to set * @returns ValueMatcher instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IValueMatcher): google.cloud.recommender.v1beta1.ValueMatcher; + public static create(properties?: google.cloud.recommender.v1.IValueMatcher): google.cloud.recommender.v1.ValueMatcher; /** - * Encodes the specified ValueMatcher message. Does not implicitly {@link google.cloud.recommender.v1beta1.ValueMatcher.verify|verify} messages. + * Encodes the specified ValueMatcher message. Does not implicitly {@link google.cloud.recommender.v1.ValueMatcher.verify|verify} messages. * @param message ValueMatcher message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IValueMatcher, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IValueMatcher, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ValueMatcher message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.ValueMatcher.verify|verify} messages. + * Encodes the specified ValueMatcher message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.ValueMatcher.verify|verify} messages. * @param message ValueMatcher message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IValueMatcher, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IValueMatcher, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a ValueMatcher message from the specified reader or buffer. @@ -544,7 +544,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.ValueMatcher; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.ValueMatcher; /** * Decodes a ValueMatcher message from the specified reader or buffer, length delimited. @@ -553,7 +553,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.ValueMatcher; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.ValueMatcher; /** * Verifies a ValueMatcher message. @@ -567,7 +567,7 @@ export namespace google { * @param object Plain object * @returns ValueMatcher */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.ValueMatcher; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.ValueMatcher; /** * Creates a plain object from a ValueMatcher message. Also converts values to other types if specified. @@ -575,7 +575,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.ValueMatcher, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.ValueMatcher, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this ValueMatcher to JSON. @@ -601,7 +601,7 @@ export namespace google { * Constructs a new CostProjection. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.ICostProjection); + constructor(properties?: google.cloud.recommender.v1.ICostProjection); /** CostProjection cost. */ public cost?: (google.type.IMoney|null); @@ -614,23 +614,23 @@ export namespace google { * @param [properties] Properties to set * @returns CostProjection instance */ - public static create(properties?: google.cloud.recommender.v1beta1.ICostProjection): google.cloud.recommender.v1beta1.CostProjection; + public static create(properties?: google.cloud.recommender.v1.ICostProjection): google.cloud.recommender.v1.CostProjection; /** - * Encodes the specified CostProjection message. Does not implicitly {@link google.cloud.recommender.v1beta1.CostProjection.verify|verify} messages. + * Encodes the specified CostProjection message. Does not implicitly {@link google.cloud.recommender.v1.CostProjection.verify|verify} messages. * @param message CostProjection message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.ICostProjection, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.ICostProjection, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CostProjection message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.CostProjection.verify|verify} messages. + * Encodes the specified CostProjection message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.CostProjection.verify|verify} messages. * @param message CostProjection message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.ICostProjection, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.ICostProjection, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a CostProjection message from the specified reader or buffer. @@ -640,7 +640,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.CostProjection; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.CostProjection; /** * Decodes a CostProjection message from the specified reader or buffer, length delimited. @@ -649,7 +649,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.CostProjection; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.CostProjection; /** * Verifies a CostProjection message. @@ -663,7 +663,7 @@ export namespace google { * @param object Plain object * @returns CostProjection */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.CostProjection; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.CostProjection; /** * Creates a plain object from a CostProjection message. Also converts values to other types if specified. @@ -671,7 +671,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.CostProjection, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.CostProjection, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this CostProjection to JSON. @@ -684,10 +684,10 @@ export namespace google { interface IImpact { /** Impact category */ - category?: (google.cloud.recommender.v1beta1.Impact.Category|null); + category?: (google.cloud.recommender.v1.Impact.Category|null); /** Impact costProjection */ - costProjection?: (google.cloud.recommender.v1beta1.ICostProjection|null); + costProjection?: (google.cloud.recommender.v1.ICostProjection|null); } /** Represents an Impact. */ @@ -697,13 +697,13 @@ export namespace google { * Constructs a new Impact. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IImpact); + constructor(properties?: google.cloud.recommender.v1.IImpact); /** Impact category. */ - public category: google.cloud.recommender.v1beta1.Impact.Category; + public category: google.cloud.recommender.v1.Impact.Category; /** Impact costProjection. */ - public costProjection?: (google.cloud.recommender.v1beta1.ICostProjection|null); + public costProjection?: (google.cloud.recommender.v1.ICostProjection|null); /** Impact projection. */ public projection?: "costProjection"; @@ -713,23 +713,23 @@ export namespace google { * @param [properties] Properties to set * @returns Impact instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IImpact): google.cloud.recommender.v1beta1.Impact; + public static create(properties?: google.cloud.recommender.v1.IImpact): google.cloud.recommender.v1.Impact; /** - * Encodes the specified Impact message. Does not implicitly {@link google.cloud.recommender.v1beta1.Impact.verify|verify} messages. + * Encodes the specified Impact message. Does not implicitly {@link google.cloud.recommender.v1.Impact.verify|verify} messages. * @param message Impact message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IImpact, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IImpact, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Impact message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.Impact.verify|verify} messages. + * Encodes the specified Impact message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Impact.verify|verify} messages. * @param message Impact message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IImpact, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IImpact, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes an Impact message from the specified reader or buffer. @@ -739,7 +739,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.Impact; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.Impact; /** * Decodes an Impact message from the specified reader or buffer, length delimited. @@ -748,7 +748,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.Impact; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.Impact; /** * Verifies an Impact message. @@ -762,7 +762,7 @@ export namespace google { * @param object Plain object * @returns Impact */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.Impact; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.Impact; /** * Creates a plain object from an Impact message. Also converts values to other types if specified. @@ -770,7 +770,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.Impact, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.Impact, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this Impact to JSON. @@ -795,7 +795,7 @@ export namespace google { interface IRecommendationStateInfo { /** RecommendationStateInfo state */ - state?: (google.cloud.recommender.v1beta1.RecommendationStateInfo.State|null); + state?: (google.cloud.recommender.v1.RecommendationStateInfo.State|null); /** RecommendationStateInfo stateMetadata */ stateMetadata?: ({ [k: string]: string }|null); @@ -808,10 +808,10 @@ export namespace google { * Constructs a new RecommendationStateInfo. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IRecommendationStateInfo); + constructor(properties?: google.cloud.recommender.v1.IRecommendationStateInfo); /** RecommendationStateInfo state. */ - public state: google.cloud.recommender.v1beta1.RecommendationStateInfo.State; + public state: google.cloud.recommender.v1.RecommendationStateInfo.State; /** RecommendationStateInfo stateMetadata. */ public stateMetadata: { [k: string]: string }; @@ -821,23 +821,23 @@ export namespace google { * @param [properties] Properties to set * @returns RecommendationStateInfo instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IRecommendationStateInfo): google.cloud.recommender.v1beta1.RecommendationStateInfo; + public static create(properties?: google.cloud.recommender.v1.IRecommendationStateInfo): google.cloud.recommender.v1.RecommendationStateInfo; /** - * Encodes the specified RecommendationStateInfo message. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationStateInfo.verify|verify} messages. + * Encodes the specified RecommendationStateInfo message. Does not implicitly {@link google.cloud.recommender.v1.RecommendationStateInfo.verify|verify} messages. * @param message RecommendationStateInfo message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IRecommendationStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IRecommendationStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified RecommendationStateInfo message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationStateInfo.verify|verify} messages. + * Encodes the specified RecommendationStateInfo message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.RecommendationStateInfo.verify|verify} messages. * @param message RecommendationStateInfo message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IRecommendationStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IRecommendationStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a RecommendationStateInfo message from the specified reader or buffer. @@ -847,7 +847,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.RecommendationStateInfo; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.RecommendationStateInfo; /** * Decodes a RecommendationStateInfo message from the specified reader or buffer, length delimited. @@ -856,7 +856,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.RecommendationStateInfo; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.RecommendationStateInfo; /** * Verifies a RecommendationStateInfo message. @@ -870,7 +870,7 @@ export namespace google { * @param object Plain object * @returns RecommendationStateInfo */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.RecommendationStateInfo; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.RecommendationStateInfo; /** * Creates a plain object from a RecommendationStateInfo message. Also converts values to other types if specified. @@ -878,7 +878,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.RecommendationStateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.RecommendationStateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this RecommendationStateInfo to JSON. @@ -925,108 +925,108 @@ export namespace google { * @param request ListRecommendationsRequest message or plain object * @param callback Node-style callback called with the error, if any, and ListRecommendationsResponse */ - public listRecommendations(request: google.cloud.recommender.v1beta1.IListRecommendationsRequest, callback: google.cloud.recommender.v1beta1.Recommender.ListRecommendationsCallback): void; + public listRecommendations(request: google.cloud.recommender.v1.IListRecommendationsRequest, callback: google.cloud.recommender.v1.Recommender.ListRecommendationsCallback): void; /** * Calls ListRecommendations. * @param request ListRecommendationsRequest message or plain object * @returns Promise */ - public listRecommendations(request: google.cloud.recommender.v1beta1.IListRecommendationsRequest): Promise; + public listRecommendations(request: google.cloud.recommender.v1.IListRecommendationsRequest): Promise; /** * Calls GetRecommendation. * @param request GetRecommendationRequest message or plain object * @param callback Node-style callback called with the error, if any, and Recommendation */ - public getRecommendation(request: google.cloud.recommender.v1beta1.IGetRecommendationRequest, callback: google.cloud.recommender.v1beta1.Recommender.GetRecommendationCallback): void; + public getRecommendation(request: google.cloud.recommender.v1.IGetRecommendationRequest, callback: google.cloud.recommender.v1.Recommender.GetRecommendationCallback): void; /** * Calls GetRecommendation. * @param request GetRecommendationRequest message or plain object * @returns Promise */ - public getRecommendation(request: google.cloud.recommender.v1beta1.IGetRecommendationRequest): Promise; + public getRecommendation(request: google.cloud.recommender.v1.IGetRecommendationRequest): Promise; /** * Calls MarkRecommendationClaimed. * @param request MarkRecommendationClaimedRequest message or plain object * @param callback Node-style callback called with the error, if any, and Recommendation */ - public markRecommendationClaimed(request: google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest, callback: google.cloud.recommender.v1beta1.Recommender.MarkRecommendationClaimedCallback): void; + public markRecommendationClaimed(request: google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, callback: google.cloud.recommender.v1.Recommender.MarkRecommendationClaimedCallback): void; /** * Calls MarkRecommendationClaimed. * @param request MarkRecommendationClaimedRequest message or plain object * @returns Promise */ - public markRecommendationClaimed(request: google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest): Promise; + public markRecommendationClaimed(request: google.cloud.recommender.v1.IMarkRecommendationClaimedRequest): Promise; /** * Calls MarkRecommendationSucceeded. * @param request MarkRecommendationSucceededRequest message or plain object * @param callback Node-style callback called with the error, if any, and Recommendation */ - public markRecommendationSucceeded(request: google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest, callback: google.cloud.recommender.v1beta1.Recommender.MarkRecommendationSucceededCallback): void; + public markRecommendationSucceeded(request: google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, callback: google.cloud.recommender.v1.Recommender.MarkRecommendationSucceededCallback): void; /** * Calls MarkRecommendationSucceeded. * @param request MarkRecommendationSucceededRequest message or plain object * @returns Promise */ - public markRecommendationSucceeded(request: google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest): Promise; + public markRecommendationSucceeded(request: google.cloud.recommender.v1.IMarkRecommendationSucceededRequest): Promise; /** * Calls MarkRecommendationFailed. * @param request MarkRecommendationFailedRequest message or plain object * @param callback Node-style callback called with the error, if any, and Recommendation */ - public markRecommendationFailed(request: google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest, callback: google.cloud.recommender.v1beta1.Recommender.MarkRecommendationFailedCallback): void; + public markRecommendationFailed(request: google.cloud.recommender.v1.IMarkRecommendationFailedRequest, callback: google.cloud.recommender.v1.Recommender.MarkRecommendationFailedCallback): void; /** * Calls MarkRecommendationFailed. * @param request MarkRecommendationFailedRequest message or plain object * @returns Promise */ - public markRecommendationFailed(request: google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest): Promise; + public markRecommendationFailed(request: google.cloud.recommender.v1.IMarkRecommendationFailedRequest): Promise; } namespace Recommender { /** - * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#listRecommendations}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender#listRecommendations}. * @param error Error, if any * @param [response] ListRecommendationsResponse */ - type ListRecommendationsCallback = (error: (Error|null), response?: google.cloud.recommender.v1beta1.ListRecommendationsResponse) => void; + type ListRecommendationsCallback = (error: (Error|null), response?: google.cloud.recommender.v1.ListRecommendationsResponse) => void; /** - * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#getRecommendation}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender#getRecommendation}. * @param error Error, if any * @param [response] Recommendation */ - type GetRecommendationCallback = (error: (Error|null), response?: google.cloud.recommender.v1beta1.Recommendation) => void; + type GetRecommendationCallback = (error: (Error|null), response?: google.cloud.recommender.v1.Recommendation) => void; /** - * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#markRecommendationClaimed}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationClaimed}. * @param error Error, if any * @param [response] Recommendation */ - type MarkRecommendationClaimedCallback = (error: (Error|null), response?: google.cloud.recommender.v1beta1.Recommendation) => void; + type MarkRecommendationClaimedCallback = (error: (Error|null), response?: google.cloud.recommender.v1.Recommendation) => void; /** - * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#markRecommendationSucceeded}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationSucceeded}. * @param error Error, if any * @param [response] Recommendation */ - type MarkRecommendationSucceededCallback = (error: (Error|null), response?: google.cloud.recommender.v1beta1.Recommendation) => void; + type MarkRecommendationSucceededCallback = (error: (Error|null), response?: google.cloud.recommender.v1.Recommendation) => void; /** - * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#markRecommendationFailed}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationFailed}. * @param error Error, if any * @param [response] Recommendation */ - type MarkRecommendationFailedCallback = (error: (Error|null), response?: google.cloud.recommender.v1beta1.Recommendation) => void; + type MarkRecommendationFailedCallback = (error: (Error|null), response?: google.cloud.recommender.v1.Recommendation) => void; } /** Properties of a ListRecommendationsRequest. */ @@ -1052,7 +1052,7 @@ export namespace google { * Constructs a new ListRecommendationsRequest. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IListRecommendationsRequest); + constructor(properties?: google.cloud.recommender.v1.IListRecommendationsRequest); /** ListRecommendationsRequest parent. */ public parent: string; @@ -1071,23 +1071,23 @@ export namespace google { * @param [properties] Properties to set * @returns ListRecommendationsRequest instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IListRecommendationsRequest): google.cloud.recommender.v1beta1.ListRecommendationsRequest; + public static create(properties?: google.cloud.recommender.v1.IListRecommendationsRequest): google.cloud.recommender.v1.ListRecommendationsRequest; /** - * Encodes the specified ListRecommendationsRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsRequest.verify|verify} messages. + * Encodes the specified ListRecommendationsRequest message. Does not implicitly {@link google.cloud.recommender.v1.ListRecommendationsRequest.verify|verify} messages. * @param message ListRecommendationsRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IListRecommendationsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IListRecommendationsRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ListRecommendationsRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsRequest.verify|verify} messages. + * Encodes the specified ListRecommendationsRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.ListRecommendationsRequest.verify|verify} messages. * @param message ListRecommendationsRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IListRecommendationsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IListRecommendationsRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a ListRecommendationsRequest message from the specified reader or buffer. @@ -1097,7 +1097,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.ListRecommendationsRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.ListRecommendationsRequest; /** * Decodes a ListRecommendationsRequest message from the specified reader or buffer, length delimited. @@ -1106,7 +1106,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.ListRecommendationsRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.ListRecommendationsRequest; /** * Verifies a ListRecommendationsRequest message. @@ -1120,7 +1120,7 @@ export namespace google { * @param object Plain object * @returns ListRecommendationsRequest */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.ListRecommendationsRequest; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.ListRecommendationsRequest; /** * Creates a plain object from a ListRecommendationsRequest message. Also converts values to other types if specified. @@ -1128,7 +1128,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.ListRecommendationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.ListRecommendationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this ListRecommendationsRequest to JSON. @@ -1141,7 +1141,7 @@ export namespace google { interface IListRecommendationsResponse { /** ListRecommendationsResponse recommendations */ - recommendations?: (google.cloud.recommender.v1beta1.IRecommendation[]|null); + recommendations?: (google.cloud.recommender.v1.IRecommendation[]|null); /** ListRecommendationsResponse nextPageToken */ nextPageToken?: (string|null); @@ -1154,10 +1154,10 @@ export namespace google { * Constructs a new ListRecommendationsResponse. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IListRecommendationsResponse); + constructor(properties?: google.cloud.recommender.v1.IListRecommendationsResponse); /** ListRecommendationsResponse recommendations. */ - public recommendations: google.cloud.recommender.v1beta1.IRecommendation[]; + public recommendations: google.cloud.recommender.v1.IRecommendation[]; /** ListRecommendationsResponse nextPageToken. */ public nextPageToken: string; @@ -1167,23 +1167,23 @@ export namespace google { * @param [properties] Properties to set * @returns ListRecommendationsResponse instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IListRecommendationsResponse): google.cloud.recommender.v1beta1.ListRecommendationsResponse; + public static create(properties?: google.cloud.recommender.v1.IListRecommendationsResponse): google.cloud.recommender.v1.ListRecommendationsResponse; /** - * Encodes the specified ListRecommendationsResponse message. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsResponse.verify|verify} messages. + * Encodes the specified ListRecommendationsResponse message. Does not implicitly {@link google.cloud.recommender.v1.ListRecommendationsResponse.verify|verify} messages. * @param message ListRecommendationsResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IListRecommendationsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IListRecommendationsResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ListRecommendationsResponse message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsResponse.verify|verify} messages. + * Encodes the specified ListRecommendationsResponse message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.ListRecommendationsResponse.verify|verify} messages. * @param message ListRecommendationsResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IListRecommendationsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IListRecommendationsResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a ListRecommendationsResponse message from the specified reader or buffer. @@ -1193,7 +1193,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.ListRecommendationsResponse; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.ListRecommendationsResponse; /** * Decodes a ListRecommendationsResponse message from the specified reader or buffer, length delimited. @@ -1202,7 +1202,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.ListRecommendationsResponse; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.ListRecommendationsResponse; /** * Verifies a ListRecommendationsResponse message. @@ -1216,7 +1216,7 @@ export namespace google { * @param object Plain object * @returns ListRecommendationsResponse */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.ListRecommendationsResponse; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.ListRecommendationsResponse; /** * Creates a plain object from a ListRecommendationsResponse message. Also converts values to other types if specified. @@ -1224,7 +1224,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.ListRecommendationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.ListRecommendationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this ListRecommendationsResponse to JSON. @@ -1247,7 +1247,7 @@ export namespace google { * Constructs a new GetRecommendationRequest. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IGetRecommendationRequest); + constructor(properties?: google.cloud.recommender.v1.IGetRecommendationRequest); /** GetRecommendationRequest name. */ public name: string; @@ -1257,23 +1257,23 @@ export namespace google { * @param [properties] Properties to set * @returns GetRecommendationRequest instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IGetRecommendationRequest): google.cloud.recommender.v1beta1.GetRecommendationRequest; + public static create(properties?: google.cloud.recommender.v1.IGetRecommendationRequest): google.cloud.recommender.v1.GetRecommendationRequest; /** - * Encodes the specified GetRecommendationRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.GetRecommendationRequest.verify|verify} messages. + * Encodes the specified GetRecommendationRequest message. Does not implicitly {@link google.cloud.recommender.v1.GetRecommendationRequest.verify|verify} messages. * @param message GetRecommendationRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IGetRecommendationRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IGetRecommendationRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified GetRecommendationRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.GetRecommendationRequest.verify|verify} messages. + * Encodes the specified GetRecommendationRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.GetRecommendationRequest.verify|verify} messages. * @param message GetRecommendationRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IGetRecommendationRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IGetRecommendationRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a GetRecommendationRequest message from the specified reader or buffer. @@ -1283,7 +1283,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.GetRecommendationRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.GetRecommendationRequest; /** * Decodes a GetRecommendationRequest message from the specified reader or buffer, length delimited. @@ -1292,7 +1292,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.GetRecommendationRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.GetRecommendationRequest; /** * Verifies a GetRecommendationRequest message. @@ -1306,7 +1306,7 @@ export namespace google { * @param object Plain object * @returns GetRecommendationRequest */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.GetRecommendationRequest; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.GetRecommendationRequest; /** * Creates a plain object from a GetRecommendationRequest message. Also converts values to other types if specified. @@ -1314,7 +1314,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.GetRecommendationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.GetRecommendationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this GetRecommendationRequest to JSON. @@ -1343,7 +1343,7 @@ export namespace google { * Constructs a new MarkRecommendationClaimedRequest. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest); + constructor(properties?: google.cloud.recommender.v1.IMarkRecommendationClaimedRequest); /** MarkRecommendationClaimedRequest name. */ public name: string; @@ -1359,23 +1359,23 @@ export namespace google { * @param [properties] Properties to set * @returns MarkRecommendationClaimedRequest instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest): google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest; + public static create(properties?: google.cloud.recommender.v1.IMarkRecommendationClaimedRequest): google.cloud.recommender.v1.MarkRecommendationClaimedRequest; /** - * Encodes the specified MarkRecommendationClaimedRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest.verify|verify} messages. + * Encodes the specified MarkRecommendationClaimedRequest message. Does not implicitly {@link google.cloud.recommender.v1.MarkRecommendationClaimedRequest.verify|verify} messages. * @param message MarkRecommendationClaimedRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MarkRecommendationClaimedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest.verify|verify} messages. + * Encodes the specified MarkRecommendationClaimedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.MarkRecommendationClaimedRequest.verify|verify} messages. * @param message MarkRecommendationClaimedRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a MarkRecommendationClaimedRequest message from the specified reader or buffer. @@ -1385,7 +1385,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.MarkRecommendationClaimedRequest; /** * Decodes a MarkRecommendationClaimedRequest message from the specified reader or buffer, length delimited. @@ -1394,7 +1394,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.MarkRecommendationClaimedRequest; /** * Verifies a MarkRecommendationClaimedRequest message. @@ -1408,7 +1408,7 @@ export namespace google { * @param object Plain object * @returns MarkRecommendationClaimedRequest */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.MarkRecommendationClaimedRequest; /** * Creates a plain object from a MarkRecommendationClaimedRequest message. Also converts values to other types if specified. @@ -1416,7 +1416,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.MarkRecommendationClaimedRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this MarkRecommendationClaimedRequest to JSON. @@ -1445,7 +1445,7 @@ export namespace google { * Constructs a new MarkRecommendationSucceededRequest. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest); + constructor(properties?: google.cloud.recommender.v1.IMarkRecommendationSucceededRequest); /** MarkRecommendationSucceededRequest name. */ public name: string; @@ -1461,23 +1461,23 @@ export namespace google { * @param [properties] Properties to set * @returns MarkRecommendationSucceededRequest instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest): google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest; + public static create(properties?: google.cloud.recommender.v1.IMarkRecommendationSucceededRequest): google.cloud.recommender.v1.MarkRecommendationSucceededRequest; /** - * Encodes the specified MarkRecommendationSucceededRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest.verify|verify} messages. + * Encodes the specified MarkRecommendationSucceededRequest message. Does not implicitly {@link google.cloud.recommender.v1.MarkRecommendationSucceededRequest.verify|verify} messages. * @param message MarkRecommendationSucceededRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MarkRecommendationSucceededRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest.verify|verify} messages. + * Encodes the specified MarkRecommendationSucceededRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.MarkRecommendationSucceededRequest.verify|verify} messages. * @param message MarkRecommendationSucceededRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a MarkRecommendationSucceededRequest message from the specified reader or buffer. @@ -1487,7 +1487,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.MarkRecommendationSucceededRequest; /** * Decodes a MarkRecommendationSucceededRequest message from the specified reader or buffer, length delimited. @@ -1496,7 +1496,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.MarkRecommendationSucceededRequest; /** * Verifies a MarkRecommendationSucceededRequest message. @@ -1510,7 +1510,7 @@ export namespace google { * @param object Plain object * @returns MarkRecommendationSucceededRequest */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.MarkRecommendationSucceededRequest; /** * Creates a plain object from a MarkRecommendationSucceededRequest message. Also converts values to other types if specified. @@ -1518,7 +1518,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.MarkRecommendationSucceededRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this MarkRecommendationSucceededRequest to JSON. @@ -1547,7 +1547,7 @@ export namespace google { * Constructs a new MarkRecommendationFailedRequest. * @param [properties] Properties to set */ - constructor(properties?: google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest); + constructor(properties?: google.cloud.recommender.v1.IMarkRecommendationFailedRequest); /** MarkRecommendationFailedRequest name. */ public name: string; @@ -1563,23 +1563,23 @@ export namespace google { * @param [properties] Properties to set * @returns MarkRecommendationFailedRequest instance */ - public static create(properties?: google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest): google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest; + public static create(properties?: google.cloud.recommender.v1.IMarkRecommendationFailedRequest): google.cloud.recommender.v1.MarkRecommendationFailedRequest; /** - * Encodes the specified MarkRecommendationFailedRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest.verify|verify} messages. + * Encodes the specified MarkRecommendationFailedRequest message. Does not implicitly {@link google.cloud.recommender.v1.MarkRecommendationFailedRequest.verify|verify} messages. * @param message MarkRecommendationFailedRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.cloud.recommender.v1.IMarkRecommendationFailedRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MarkRecommendationFailedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest.verify|verify} messages. + * Encodes the specified MarkRecommendationFailedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.MarkRecommendationFailedRequest.verify|verify} messages. * @param message MarkRecommendationFailedRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.cloud.recommender.v1.IMarkRecommendationFailedRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a MarkRecommendationFailedRequest message from the specified reader or buffer. @@ -1589,7 +1589,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.MarkRecommendationFailedRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recommender.v1.MarkRecommendationFailedRequest; /** * Decodes a MarkRecommendationFailedRequest message from the specified reader or buffer, length delimited. @@ -1598,7 +1598,7 @@ export namespace google { * @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.cloud.recommender.v1beta1.MarkRecommendationFailedRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recommender.v1.MarkRecommendationFailedRequest; /** * Verifies a MarkRecommendationFailedRequest message. @@ -1612,7 +1612,7 @@ export namespace google { * @param object Plain object * @returns MarkRecommendationFailedRequest */ - public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest; + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.MarkRecommendationFailedRequest; /** * Creates a plain object from a MarkRecommendationFailedRequest message. Also converts values to other types if specified. @@ -1620,7 +1620,7 @@ export namespace google { * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.cloud.recommender.v1.MarkRecommendationFailedRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** * Converts this MarkRecommendationFailedRequest to JSON. diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index af0d8aaeaa7..bfd2de0c152 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -57,39 +57,39 @@ */ var recommender = {}; - recommender.v1beta1 = (function() { + recommender.v1 = (function() { /** - * Namespace v1beta1. + * Namespace v1. * @memberof google.cloud.recommender * @namespace */ - var v1beta1 = {}; + var v1 = {}; - v1beta1.Recommendation = (function() { + v1.Recommendation = (function() { /** * Properties of a Recommendation. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IRecommendation * @property {string|null} [name] Recommendation name * @property {string|null} [description] Recommendation description * @property {string|null} [recommenderSubtype] Recommendation recommenderSubtype * @property {google.protobuf.ITimestamp|null} [lastRefreshTime] Recommendation lastRefreshTime - * @property {google.cloud.recommender.v1beta1.IImpact|null} [primaryImpact] Recommendation primaryImpact - * @property {Array.|null} [additionalImpact] Recommendation additionalImpact - * @property {google.cloud.recommender.v1beta1.IRecommendationContent|null} [content] Recommendation content - * @property {google.cloud.recommender.v1beta1.IRecommendationStateInfo|null} [stateInfo] Recommendation stateInfo + * @property {google.cloud.recommender.v1.IImpact|null} [primaryImpact] Recommendation primaryImpact + * @property {Array.|null} [additionalImpact] Recommendation additionalImpact + * @property {google.cloud.recommender.v1.IRecommendationContent|null} [content] Recommendation content + * @property {google.cloud.recommender.v1.IRecommendationStateInfo|null} [stateInfo] Recommendation stateInfo * @property {string|null} [etag] Recommendation etag */ /** * Constructs a new Recommendation. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents a Recommendation. * @implements IRecommendation * @constructor - * @param {google.cloud.recommender.v1beta1.IRecommendation=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IRecommendation=} [properties] Properties to set */ function Recommendation(properties) { this.additionalImpact = []; @@ -102,7 +102,7 @@ /** * Recommendation name. * @member {string} name - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @instance */ Recommendation.prototype.name = ""; @@ -110,7 +110,7 @@ /** * Recommendation description. * @member {string} description - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @instance */ Recommendation.prototype.description = ""; @@ -118,7 +118,7 @@ /** * Recommendation recommenderSubtype. * @member {string} recommenderSubtype - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @instance */ Recommendation.prototype.recommenderSubtype = ""; @@ -126,39 +126,39 @@ /** * Recommendation lastRefreshTime. * @member {google.protobuf.ITimestamp|null|undefined} lastRefreshTime - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @instance */ Recommendation.prototype.lastRefreshTime = null; /** * Recommendation primaryImpact. - * @member {google.cloud.recommender.v1beta1.IImpact|null|undefined} primaryImpact - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @member {google.cloud.recommender.v1.IImpact|null|undefined} primaryImpact + * @memberof google.cloud.recommender.v1.Recommendation * @instance */ Recommendation.prototype.primaryImpact = null; /** * Recommendation additionalImpact. - * @member {Array.} additionalImpact - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @member {Array.} additionalImpact + * @memberof google.cloud.recommender.v1.Recommendation * @instance */ Recommendation.prototype.additionalImpact = $util.emptyArray; /** * Recommendation content. - * @member {google.cloud.recommender.v1beta1.IRecommendationContent|null|undefined} content - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @member {google.cloud.recommender.v1.IRecommendationContent|null|undefined} content + * @memberof google.cloud.recommender.v1.Recommendation * @instance */ Recommendation.prototype.content = null; /** * Recommendation stateInfo. - * @member {google.cloud.recommender.v1beta1.IRecommendationStateInfo|null|undefined} stateInfo - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @member {google.cloud.recommender.v1.IRecommendationStateInfo|null|undefined} stateInfo + * @memberof google.cloud.recommender.v1.Recommendation * @instance */ Recommendation.prototype.stateInfo = null; @@ -166,7 +166,7 @@ /** * Recommendation etag. * @member {string} etag - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @instance */ Recommendation.prototype.etag = ""; @@ -174,21 +174,21 @@ /** * Creates a new Recommendation instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @static - * @param {google.cloud.recommender.v1beta1.IRecommendation=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.Recommendation} Recommendation instance + * @param {google.cloud.recommender.v1.IRecommendation=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.Recommendation} Recommendation instance */ Recommendation.create = function create(properties) { return new Recommendation(properties); }; /** - * Encodes the specified Recommendation message. Does not implicitly {@link google.cloud.recommender.v1beta1.Recommendation.verify|verify} messages. + * Encodes the specified Recommendation message. Does not implicitly {@link google.cloud.recommender.v1.Recommendation.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @static - * @param {google.cloud.recommender.v1beta1.IRecommendation} message Recommendation message or plain object to encode + * @param {google.cloud.recommender.v1.IRecommendation} message Recommendation message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -202,14 +202,14 @@ if (message.lastRefreshTime != null && message.hasOwnProperty("lastRefreshTime")) $root.google.protobuf.Timestamp.encode(message.lastRefreshTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); if (message.primaryImpact != null && message.hasOwnProperty("primaryImpact")) - $root.google.cloud.recommender.v1beta1.Impact.encode(message.primaryImpact, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + $root.google.cloud.recommender.v1.Impact.encode(message.primaryImpact, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); if (message.additionalImpact != null && message.additionalImpact.length) for (var i = 0; i < message.additionalImpact.length; ++i) - $root.google.cloud.recommender.v1beta1.Impact.encode(message.additionalImpact[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + $root.google.cloud.recommender.v1.Impact.encode(message.additionalImpact[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); if (message.content != null && message.hasOwnProperty("content")) - $root.google.cloud.recommender.v1beta1.RecommendationContent.encode(message.content, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + $root.google.cloud.recommender.v1.RecommendationContent.encode(message.content, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) - $root.google.cloud.recommender.v1beta1.RecommendationStateInfo.encode(message.stateInfo, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.cloud.recommender.v1.RecommendationStateInfo.encode(message.stateInfo, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); if (message.etag != null && message.hasOwnProperty("etag")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.etag); if (message.recommenderSubtype != null && message.hasOwnProperty("recommenderSubtype")) @@ -218,11 +218,11 @@ }; /** - * Encodes the specified Recommendation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.Recommendation.verify|verify} messages. + * Encodes the specified Recommendation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Recommendation.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @static - * @param {google.cloud.recommender.v1beta1.IRecommendation} message Recommendation message or plain object to encode + * @param {google.cloud.recommender.v1.IRecommendation} message Recommendation message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -233,18 +233,18 @@ /** * Decodes a Recommendation message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.Recommendation} Recommendation + * @returns {google.cloud.recommender.v1.Recommendation} Recommendation * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ Recommendation.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.Recommendation(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Recommendation(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -261,18 +261,18 @@ message.lastRefreshTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); break; case 5: - message.primaryImpact = $root.google.cloud.recommender.v1beta1.Impact.decode(reader, reader.uint32()); + message.primaryImpact = $root.google.cloud.recommender.v1.Impact.decode(reader, reader.uint32()); break; case 6: if (!(message.additionalImpact && message.additionalImpact.length)) message.additionalImpact = []; - message.additionalImpact.push($root.google.cloud.recommender.v1beta1.Impact.decode(reader, reader.uint32())); + message.additionalImpact.push($root.google.cloud.recommender.v1.Impact.decode(reader, reader.uint32())); break; case 7: - message.content = $root.google.cloud.recommender.v1beta1.RecommendationContent.decode(reader, reader.uint32()); + message.content = $root.google.cloud.recommender.v1.RecommendationContent.decode(reader, reader.uint32()); break; case 10: - message.stateInfo = $root.google.cloud.recommender.v1beta1.RecommendationStateInfo.decode(reader, reader.uint32()); + message.stateInfo = $root.google.cloud.recommender.v1.RecommendationStateInfo.decode(reader, reader.uint32()); break; case 11: message.etag = reader.string(); @@ -288,10 +288,10 @@ /** * Decodes a Recommendation message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.Recommendation} Recommendation + * @returns {google.cloud.recommender.v1.Recommendation} Recommendation * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -304,7 +304,7 @@ /** * Verifies a Recommendation message. * @function verify - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -327,7 +327,7 @@ return "lastRefreshTime." + error; } if (message.primaryImpact != null && message.hasOwnProperty("primaryImpact")) { - var error = $root.google.cloud.recommender.v1beta1.Impact.verify(message.primaryImpact); + var error = $root.google.cloud.recommender.v1.Impact.verify(message.primaryImpact); if (error) return "primaryImpact." + error; } @@ -335,18 +335,18 @@ if (!Array.isArray(message.additionalImpact)) return "additionalImpact: array expected"; for (var i = 0; i < message.additionalImpact.length; ++i) { - var error = $root.google.cloud.recommender.v1beta1.Impact.verify(message.additionalImpact[i]); + var error = $root.google.cloud.recommender.v1.Impact.verify(message.additionalImpact[i]); if (error) return "additionalImpact." + error; } } if (message.content != null && message.hasOwnProperty("content")) { - var error = $root.google.cloud.recommender.v1beta1.RecommendationContent.verify(message.content); + var error = $root.google.cloud.recommender.v1.RecommendationContent.verify(message.content); if (error) return "content." + error; } if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) { - var error = $root.google.cloud.recommender.v1beta1.RecommendationStateInfo.verify(message.stateInfo); + var error = $root.google.cloud.recommender.v1.RecommendationStateInfo.verify(message.stateInfo); if (error) return "stateInfo." + error; } @@ -359,15 +359,15 @@ /** * Creates a Recommendation message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.Recommendation} Recommendation + * @returns {google.cloud.recommender.v1.Recommendation} Recommendation */ Recommendation.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.Recommendation) + if (object instanceof $root.google.cloud.recommender.v1.Recommendation) return object; - var message = new $root.google.cloud.recommender.v1beta1.Recommendation(); + var message = new $root.google.cloud.recommender.v1.Recommendation(); if (object.name != null) message.name = String(object.name); if (object.description != null) @@ -376,33 +376,33 @@ message.recommenderSubtype = String(object.recommenderSubtype); if (object.lastRefreshTime != null) { if (typeof object.lastRefreshTime !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.Recommendation.lastRefreshTime: object expected"); + throw TypeError(".google.cloud.recommender.v1.Recommendation.lastRefreshTime: object expected"); message.lastRefreshTime = $root.google.protobuf.Timestamp.fromObject(object.lastRefreshTime); } if (object.primaryImpact != null) { if (typeof object.primaryImpact !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.Recommendation.primaryImpact: object expected"); - message.primaryImpact = $root.google.cloud.recommender.v1beta1.Impact.fromObject(object.primaryImpact); + throw TypeError(".google.cloud.recommender.v1.Recommendation.primaryImpact: object expected"); + message.primaryImpact = $root.google.cloud.recommender.v1.Impact.fromObject(object.primaryImpact); } if (object.additionalImpact) { if (!Array.isArray(object.additionalImpact)) - throw TypeError(".google.cloud.recommender.v1beta1.Recommendation.additionalImpact: array expected"); + throw TypeError(".google.cloud.recommender.v1.Recommendation.additionalImpact: array expected"); message.additionalImpact = []; for (var i = 0; i < object.additionalImpact.length; ++i) { if (typeof object.additionalImpact[i] !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.Recommendation.additionalImpact: object expected"); - message.additionalImpact[i] = $root.google.cloud.recommender.v1beta1.Impact.fromObject(object.additionalImpact[i]); + throw TypeError(".google.cloud.recommender.v1.Recommendation.additionalImpact: object expected"); + message.additionalImpact[i] = $root.google.cloud.recommender.v1.Impact.fromObject(object.additionalImpact[i]); } } if (object.content != null) { if (typeof object.content !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.Recommendation.content: object expected"); - message.content = $root.google.cloud.recommender.v1beta1.RecommendationContent.fromObject(object.content); + throw TypeError(".google.cloud.recommender.v1.Recommendation.content: object expected"); + message.content = $root.google.cloud.recommender.v1.RecommendationContent.fromObject(object.content); } if (object.stateInfo != null) { if (typeof object.stateInfo !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.Recommendation.stateInfo: object expected"); - message.stateInfo = $root.google.cloud.recommender.v1beta1.RecommendationStateInfo.fromObject(object.stateInfo); + throw TypeError(".google.cloud.recommender.v1.Recommendation.stateInfo: object expected"); + message.stateInfo = $root.google.cloud.recommender.v1.RecommendationStateInfo.fromObject(object.stateInfo); } if (object.etag != null) message.etag = String(object.etag); @@ -412,9 +412,9 @@ /** * Creates a plain object from a Recommendation message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @static - * @param {google.cloud.recommender.v1beta1.Recommendation} message Recommendation + * @param {google.cloud.recommender.v1.Recommendation} message Recommendation * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -441,16 +441,16 @@ if (message.lastRefreshTime != null && message.hasOwnProperty("lastRefreshTime")) object.lastRefreshTime = $root.google.protobuf.Timestamp.toObject(message.lastRefreshTime, options); if (message.primaryImpact != null && message.hasOwnProperty("primaryImpact")) - object.primaryImpact = $root.google.cloud.recommender.v1beta1.Impact.toObject(message.primaryImpact, options); + object.primaryImpact = $root.google.cloud.recommender.v1.Impact.toObject(message.primaryImpact, options); if (message.additionalImpact && message.additionalImpact.length) { object.additionalImpact = []; for (var j = 0; j < message.additionalImpact.length; ++j) - object.additionalImpact[j] = $root.google.cloud.recommender.v1beta1.Impact.toObject(message.additionalImpact[j], options); + object.additionalImpact[j] = $root.google.cloud.recommender.v1.Impact.toObject(message.additionalImpact[j], options); } if (message.content != null && message.hasOwnProperty("content")) - object.content = $root.google.cloud.recommender.v1beta1.RecommendationContent.toObject(message.content, options); + object.content = $root.google.cloud.recommender.v1.RecommendationContent.toObject(message.content, options); if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) - object.stateInfo = $root.google.cloud.recommender.v1beta1.RecommendationStateInfo.toObject(message.stateInfo, options); + object.stateInfo = $root.google.cloud.recommender.v1.RecommendationStateInfo.toObject(message.stateInfo, options); if (message.etag != null && message.hasOwnProperty("etag")) object.etag = message.etag; if (message.recommenderSubtype != null && message.hasOwnProperty("recommenderSubtype")) @@ -461,7 +461,7 @@ /** * Converts this Recommendation to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.Recommendation + * @memberof google.cloud.recommender.v1.Recommendation * @instance * @returns {Object.} JSON object */ @@ -472,22 +472,22 @@ return Recommendation; })(); - v1beta1.RecommendationContent = (function() { + v1.RecommendationContent = (function() { /** * Properties of a RecommendationContent. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IRecommendationContent - * @property {Array.|null} [operationGroups] RecommendationContent operationGroups + * @property {Array.|null} [operationGroups] RecommendationContent operationGroups */ /** * Constructs a new RecommendationContent. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents a RecommendationContent. * @implements IRecommendationContent * @constructor - * @param {google.cloud.recommender.v1beta1.IRecommendationContent=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IRecommendationContent=} [properties] Properties to set */ function RecommendationContent(properties) { this.operationGroups = []; @@ -499,8 +499,8 @@ /** * RecommendationContent operationGroups. - * @member {Array.} operationGroups - * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @member {Array.} operationGroups + * @memberof google.cloud.recommender.v1.RecommendationContent * @instance */ RecommendationContent.prototype.operationGroups = $util.emptyArray; @@ -508,21 +508,21 @@ /** * Creates a new RecommendationContent instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @memberof google.cloud.recommender.v1.RecommendationContent * @static - * @param {google.cloud.recommender.v1beta1.IRecommendationContent=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.RecommendationContent} RecommendationContent instance + * @param {google.cloud.recommender.v1.IRecommendationContent=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.RecommendationContent} RecommendationContent instance */ RecommendationContent.create = function create(properties) { return new RecommendationContent(properties); }; /** - * Encodes the specified RecommendationContent message. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationContent.verify|verify} messages. + * Encodes the specified RecommendationContent message. Does not implicitly {@link google.cloud.recommender.v1.RecommendationContent.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @memberof google.cloud.recommender.v1.RecommendationContent * @static - * @param {google.cloud.recommender.v1beta1.IRecommendationContent} message RecommendationContent message or plain object to encode + * @param {google.cloud.recommender.v1.IRecommendationContent} message RecommendationContent message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -531,16 +531,16 @@ writer = $Writer.create(); if (message.operationGroups != null && message.operationGroups.length) for (var i = 0; i < message.operationGroups.length; ++i) - $root.google.cloud.recommender.v1beta1.OperationGroup.encode(message.operationGroups[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.cloud.recommender.v1.OperationGroup.encode(message.operationGroups[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified RecommendationContent message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationContent.verify|verify} messages. + * Encodes the specified RecommendationContent message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.RecommendationContent.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @memberof google.cloud.recommender.v1.RecommendationContent * @static - * @param {google.cloud.recommender.v1beta1.IRecommendationContent} message RecommendationContent message or plain object to encode + * @param {google.cloud.recommender.v1.IRecommendationContent} message RecommendationContent message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -551,25 +551,25 @@ /** * Decodes a RecommendationContent message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @memberof google.cloud.recommender.v1.RecommendationContent * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.RecommendationContent} RecommendationContent + * @returns {google.cloud.recommender.v1.RecommendationContent} RecommendationContent * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ RecommendationContent.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.RecommendationContent(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.RecommendationContent(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 2: if (!(message.operationGroups && message.operationGroups.length)) message.operationGroups = []; - message.operationGroups.push($root.google.cloud.recommender.v1beta1.OperationGroup.decode(reader, reader.uint32())); + message.operationGroups.push($root.google.cloud.recommender.v1.OperationGroup.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -582,10 +582,10 @@ /** * Decodes a RecommendationContent message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @memberof google.cloud.recommender.v1.RecommendationContent * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.RecommendationContent} RecommendationContent + * @returns {google.cloud.recommender.v1.RecommendationContent} RecommendationContent * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -598,7 +598,7 @@ /** * Verifies a RecommendationContent message. * @function verify - * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @memberof google.cloud.recommender.v1.RecommendationContent * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -610,7 +610,7 @@ if (!Array.isArray(message.operationGroups)) return "operationGroups: array expected"; for (var i = 0; i < message.operationGroups.length; ++i) { - var error = $root.google.cloud.recommender.v1beta1.OperationGroup.verify(message.operationGroups[i]); + var error = $root.google.cloud.recommender.v1.OperationGroup.verify(message.operationGroups[i]); if (error) return "operationGroups." + error; } @@ -621,23 +621,23 @@ /** * Creates a RecommendationContent message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @memberof google.cloud.recommender.v1.RecommendationContent * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.RecommendationContent} RecommendationContent + * @returns {google.cloud.recommender.v1.RecommendationContent} RecommendationContent */ RecommendationContent.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.RecommendationContent) + if (object instanceof $root.google.cloud.recommender.v1.RecommendationContent) return object; - var message = new $root.google.cloud.recommender.v1beta1.RecommendationContent(); + var message = new $root.google.cloud.recommender.v1.RecommendationContent(); if (object.operationGroups) { if (!Array.isArray(object.operationGroups)) - throw TypeError(".google.cloud.recommender.v1beta1.RecommendationContent.operationGroups: array expected"); + throw TypeError(".google.cloud.recommender.v1.RecommendationContent.operationGroups: array expected"); message.operationGroups = []; for (var i = 0; i < object.operationGroups.length; ++i) { if (typeof object.operationGroups[i] !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.RecommendationContent.operationGroups: object expected"); - message.operationGroups[i] = $root.google.cloud.recommender.v1beta1.OperationGroup.fromObject(object.operationGroups[i]); + throw TypeError(".google.cloud.recommender.v1.RecommendationContent.operationGroups: object expected"); + message.operationGroups[i] = $root.google.cloud.recommender.v1.OperationGroup.fromObject(object.operationGroups[i]); } } return message; @@ -646,9 +646,9 @@ /** * Creates a plain object from a RecommendationContent message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @memberof google.cloud.recommender.v1.RecommendationContent * @static - * @param {google.cloud.recommender.v1beta1.RecommendationContent} message RecommendationContent + * @param {google.cloud.recommender.v1.RecommendationContent} message RecommendationContent * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -661,7 +661,7 @@ if (message.operationGroups && message.operationGroups.length) { object.operationGroups = []; for (var j = 0; j < message.operationGroups.length; ++j) - object.operationGroups[j] = $root.google.cloud.recommender.v1beta1.OperationGroup.toObject(message.operationGroups[j], options); + object.operationGroups[j] = $root.google.cloud.recommender.v1.OperationGroup.toObject(message.operationGroups[j], options); } return object; }; @@ -669,7 +669,7 @@ /** * Converts this RecommendationContent to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.RecommendationContent + * @memberof google.cloud.recommender.v1.RecommendationContent * @instance * @returns {Object.} JSON object */ @@ -680,22 +680,22 @@ return RecommendationContent; })(); - v1beta1.OperationGroup = (function() { + v1.OperationGroup = (function() { /** * Properties of an OperationGroup. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IOperationGroup - * @property {Array.|null} [operations] OperationGroup operations + * @property {Array.|null} [operations] OperationGroup operations */ /** * Constructs a new OperationGroup. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents an OperationGroup. * @implements IOperationGroup * @constructor - * @param {google.cloud.recommender.v1beta1.IOperationGroup=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IOperationGroup=} [properties] Properties to set */ function OperationGroup(properties) { this.operations = []; @@ -707,8 +707,8 @@ /** * OperationGroup operations. - * @member {Array.} operations - * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @member {Array.} operations + * @memberof google.cloud.recommender.v1.OperationGroup * @instance */ OperationGroup.prototype.operations = $util.emptyArray; @@ -716,21 +716,21 @@ /** * Creates a new OperationGroup instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @memberof google.cloud.recommender.v1.OperationGroup * @static - * @param {google.cloud.recommender.v1beta1.IOperationGroup=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.OperationGroup} OperationGroup instance + * @param {google.cloud.recommender.v1.IOperationGroup=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.OperationGroup} OperationGroup instance */ OperationGroup.create = function create(properties) { return new OperationGroup(properties); }; /** - * Encodes the specified OperationGroup message. Does not implicitly {@link google.cloud.recommender.v1beta1.OperationGroup.verify|verify} messages. + * Encodes the specified OperationGroup message. Does not implicitly {@link google.cloud.recommender.v1.OperationGroup.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @memberof google.cloud.recommender.v1.OperationGroup * @static - * @param {google.cloud.recommender.v1beta1.IOperationGroup} message OperationGroup message or plain object to encode + * @param {google.cloud.recommender.v1.IOperationGroup} message OperationGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -739,16 +739,16 @@ writer = $Writer.create(); if (message.operations != null && message.operations.length) for (var i = 0; i < message.operations.length; ++i) - $root.google.cloud.recommender.v1beta1.Operation.encode(message.operations[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.recommender.v1.Operation.encode(message.operations[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified OperationGroup message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.OperationGroup.verify|verify} messages. + * Encodes the specified OperationGroup message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.OperationGroup.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @memberof google.cloud.recommender.v1.OperationGroup * @static - * @param {google.cloud.recommender.v1beta1.IOperationGroup} message OperationGroup message or plain object to encode + * @param {google.cloud.recommender.v1.IOperationGroup} message OperationGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -759,25 +759,25 @@ /** * Decodes an OperationGroup message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @memberof google.cloud.recommender.v1.OperationGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.OperationGroup} OperationGroup + * @returns {google.cloud.recommender.v1.OperationGroup} OperationGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ OperationGroup.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.OperationGroup(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.OperationGroup(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: if (!(message.operations && message.operations.length)) message.operations = []; - message.operations.push($root.google.cloud.recommender.v1beta1.Operation.decode(reader, reader.uint32())); + message.operations.push($root.google.cloud.recommender.v1.Operation.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -790,10 +790,10 @@ /** * Decodes an OperationGroup message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @memberof google.cloud.recommender.v1.OperationGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.OperationGroup} OperationGroup + * @returns {google.cloud.recommender.v1.OperationGroup} OperationGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -806,7 +806,7 @@ /** * Verifies an OperationGroup message. * @function verify - * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @memberof google.cloud.recommender.v1.OperationGroup * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -818,7 +818,7 @@ if (!Array.isArray(message.operations)) return "operations: array expected"; for (var i = 0; i < message.operations.length; ++i) { - var error = $root.google.cloud.recommender.v1beta1.Operation.verify(message.operations[i]); + var error = $root.google.cloud.recommender.v1.Operation.verify(message.operations[i]); if (error) return "operations." + error; } @@ -829,23 +829,23 @@ /** * Creates an OperationGroup message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @memberof google.cloud.recommender.v1.OperationGroup * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.OperationGroup} OperationGroup + * @returns {google.cloud.recommender.v1.OperationGroup} OperationGroup */ OperationGroup.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.OperationGroup) + if (object instanceof $root.google.cloud.recommender.v1.OperationGroup) return object; - var message = new $root.google.cloud.recommender.v1beta1.OperationGroup(); + var message = new $root.google.cloud.recommender.v1.OperationGroup(); if (object.operations) { if (!Array.isArray(object.operations)) - throw TypeError(".google.cloud.recommender.v1beta1.OperationGroup.operations: array expected"); + throw TypeError(".google.cloud.recommender.v1.OperationGroup.operations: array expected"); message.operations = []; for (var i = 0; i < object.operations.length; ++i) { if (typeof object.operations[i] !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.OperationGroup.operations: object expected"); - message.operations[i] = $root.google.cloud.recommender.v1beta1.Operation.fromObject(object.operations[i]); + throw TypeError(".google.cloud.recommender.v1.OperationGroup.operations: object expected"); + message.operations[i] = $root.google.cloud.recommender.v1.Operation.fromObject(object.operations[i]); } } return message; @@ -854,9 +854,9 @@ /** * Creates a plain object from an OperationGroup message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @memberof google.cloud.recommender.v1.OperationGroup * @static - * @param {google.cloud.recommender.v1beta1.OperationGroup} message OperationGroup + * @param {google.cloud.recommender.v1.OperationGroup} message OperationGroup * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -869,7 +869,7 @@ if (message.operations && message.operations.length) { object.operations = []; for (var j = 0; j < message.operations.length; ++j) - object.operations[j] = $root.google.cloud.recommender.v1beta1.Operation.toObject(message.operations[j], options); + object.operations[j] = $root.google.cloud.recommender.v1.Operation.toObject(message.operations[j], options); } return object; }; @@ -877,7 +877,7 @@ /** * Converts this OperationGroup to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.OperationGroup + * @memberof google.cloud.recommender.v1.OperationGroup * @instance * @returns {Object.} JSON object */ @@ -888,11 +888,11 @@ return OperationGroup; })(); - v1beta1.Operation = (function() { + v1.Operation = (function() { /** * Properties of an Operation. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IOperation * @property {string|null} [action] Operation action * @property {string|null} [resourceType] Operation resourceType @@ -901,18 +901,18 @@ * @property {string|null} [sourceResource] Operation sourceResource * @property {string|null} [sourcePath] Operation sourcePath * @property {google.protobuf.IValue|null} [value] Operation value - * @property {google.cloud.recommender.v1beta1.IValueMatcher|null} [valueMatcher] Operation valueMatcher + * @property {google.cloud.recommender.v1.IValueMatcher|null} [valueMatcher] Operation valueMatcher * @property {Object.|null} [pathFilters] Operation pathFilters - * @property {Object.|null} [pathValueMatchers] Operation pathValueMatchers + * @property {Object.|null} [pathValueMatchers] Operation pathValueMatchers */ /** * Constructs a new Operation. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents an Operation. * @implements IOperation * @constructor - * @param {google.cloud.recommender.v1beta1.IOperation=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IOperation=} [properties] Properties to set */ function Operation(properties) { this.pathFilters = {}; @@ -926,7 +926,7 @@ /** * Operation action. * @member {string} action - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @instance */ Operation.prototype.action = ""; @@ -934,7 +934,7 @@ /** * Operation resourceType. * @member {string} resourceType - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @instance */ Operation.prototype.resourceType = ""; @@ -942,7 +942,7 @@ /** * Operation resource. * @member {string} resource - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @instance */ Operation.prototype.resource = ""; @@ -950,7 +950,7 @@ /** * Operation path. * @member {string} path - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @instance */ Operation.prototype.path = ""; @@ -958,7 +958,7 @@ /** * Operation sourceResource. * @member {string} sourceResource - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @instance */ Operation.prototype.sourceResource = ""; @@ -966,7 +966,7 @@ /** * Operation sourcePath. * @member {string} sourcePath - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @instance */ Operation.prototype.sourcePath = ""; @@ -974,15 +974,15 @@ /** * Operation value. * @member {google.protobuf.IValue|null|undefined} value - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @instance */ Operation.prototype.value = null; /** * Operation valueMatcher. - * @member {google.cloud.recommender.v1beta1.IValueMatcher|null|undefined} valueMatcher - * @memberof google.cloud.recommender.v1beta1.Operation + * @member {google.cloud.recommender.v1.IValueMatcher|null|undefined} valueMatcher + * @memberof google.cloud.recommender.v1.Operation * @instance */ Operation.prototype.valueMatcher = null; @@ -990,15 +990,15 @@ /** * Operation pathFilters. * @member {Object.} pathFilters - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @instance */ Operation.prototype.pathFilters = $util.emptyObject; /** * Operation pathValueMatchers. - * @member {Object.} pathValueMatchers - * @memberof google.cloud.recommender.v1beta1.Operation + * @member {Object.} pathValueMatchers + * @memberof google.cloud.recommender.v1.Operation * @instance */ Operation.prototype.pathValueMatchers = $util.emptyObject; @@ -1009,7 +1009,7 @@ /** * Operation pathValue. * @member {"value"|"valueMatcher"|undefined} pathValue - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @instance */ Object.defineProperty(Operation.prototype, "pathValue", { @@ -1020,21 +1020,21 @@ /** * Creates a new Operation instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @static - * @param {google.cloud.recommender.v1beta1.IOperation=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.Operation} Operation instance + * @param {google.cloud.recommender.v1.IOperation=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.Operation} Operation instance */ Operation.create = function create(properties) { return new Operation(properties); }; /** - * Encodes the specified Operation message. Does not implicitly {@link google.cloud.recommender.v1beta1.Operation.verify|verify} messages. + * Encodes the specified Operation message. Does not implicitly {@link google.cloud.recommender.v1.Operation.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @static - * @param {google.cloud.recommender.v1beta1.IOperation} message Operation message or plain object to encode + * @param {google.cloud.recommender.v1.IOperation} message Operation message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -1061,21 +1061,21 @@ $root.google.protobuf.Value.encode(message.pathFilters[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); } if (message.valueMatcher != null && message.hasOwnProperty("valueMatcher")) - $root.google.cloud.recommender.v1beta1.ValueMatcher.encode(message.valueMatcher, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.cloud.recommender.v1.ValueMatcher.encode(message.valueMatcher, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); if (message.pathValueMatchers != null && message.hasOwnProperty("pathValueMatchers")) for (var keys = Object.keys(message.pathValueMatchers), i = 0; i < keys.length; ++i) { writer.uint32(/* id 11, wireType 2 =*/90).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); - $root.google.cloud.recommender.v1beta1.ValueMatcher.encode(message.pathValueMatchers[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); + $root.google.cloud.recommender.v1.ValueMatcher.encode(message.pathValueMatchers[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); } return writer; }; /** - * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.Operation.verify|verify} messages. + * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Operation.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @static - * @param {google.cloud.recommender.v1beta1.IOperation} message Operation message or plain object to encode + * @param {google.cloud.recommender.v1.IOperation} message Operation message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -1086,18 +1086,18 @@ /** * Decodes an Operation message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.Operation} Operation + * @returns {google.cloud.recommender.v1.Operation} Operation * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ Operation.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.Operation(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Operation(), key; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -1123,7 +1123,7 @@ message.value = $root.google.protobuf.Value.decode(reader, reader.uint32()); break; case 10: - message.valueMatcher = $root.google.cloud.recommender.v1beta1.ValueMatcher.decode(reader, reader.uint32()); + message.valueMatcher = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); break; case 8: reader.skip().pos++; @@ -1139,7 +1139,7 @@ message.pathValueMatchers = {}; key = reader.string(); reader.pos++; - message.pathValueMatchers[key] = $root.google.cloud.recommender.v1beta1.ValueMatcher.decode(reader, reader.uint32()); + message.pathValueMatchers[key] = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -1152,10 +1152,10 @@ /** * Decodes an Operation message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.Operation} Operation + * @returns {google.cloud.recommender.v1.Operation} Operation * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -1168,7 +1168,7 @@ /** * Verifies an Operation message. * @function verify - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -1208,7 +1208,7 @@ return "pathValue: multiple values"; properties.pathValue = 1; { - var error = $root.google.cloud.recommender.v1beta1.ValueMatcher.verify(message.valueMatcher); + var error = $root.google.cloud.recommender.v1.ValueMatcher.verify(message.valueMatcher); if (error) return "valueMatcher." + error; } @@ -1228,7 +1228,7 @@ return "pathValueMatchers: object expected"; var key = Object.keys(message.pathValueMatchers); for (var i = 0; i < key.length; ++i) { - var error = $root.google.cloud.recommender.v1beta1.ValueMatcher.verify(message.pathValueMatchers[key[i]]); + var error = $root.google.cloud.recommender.v1.ValueMatcher.verify(message.pathValueMatchers[key[i]]); if (error) return "pathValueMatchers." + error; } @@ -1239,15 +1239,15 @@ /** * Creates an Operation message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.Operation} Operation + * @returns {google.cloud.recommender.v1.Operation} Operation */ Operation.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.Operation) + if (object instanceof $root.google.cloud.recommender.v1.Operation) return object; - var message = new $root.google.cloud.recommender.v1beta1.Operation(); + var message = new $root.google.cloud.recommender.v1.Operation(); if (object.action != null) message.action = String(object.action); if (object.resourceType != null) @@ -1262,32 +1262,32 @@ message.sourcePath = String(object.sourcePath); if (object.value != null) { if (typeof object.value !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.Operation.value: object expected"); + throw TypeError(".google.cloud.recommender.v1.Operation.value: object expected"); message.value = $root.google.protobuf.Value.fromObject(object.value); } if (object.valueMatcher != null) { if (typeof object.valueMatcher !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.Operation.valueMatcher: object expected"); - message.valueMatcher = $root.google.cloud.recommender.v1beta1.ValueMatcher.fromObject(object.valueMatcher); + throw TypeError(".google.cloud.recommender.v1.Operation.valueMatcher: object expected"); + message.valueMatcher = $root.google.cloud.recommender.v1.ValueMatcher.fromObject(object.valueMatcher); } if (object.pathFilters) { if (typeof object.pathFilters !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.Operation.pathFilters: object expected"); + throw TypeError(".google.cloud.recommender.v1.Operation.pathFilters: object expected"); message.pathFilters = {}; for (var keys = Object.keys(object.pathFilters), i = 0; i < keys.length; ++i) { if (typeof object.pathFilters[keys[i]] !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.Operation.pathFilters: object expected"); + throw TypeError(".google.cloud.recommender.v1.Operation.pathFilters: object expected"); message.pathFilters[keys[i]] = $root.google.protobuf.Value.fromObject(object.pathFilters[keys[i]]); } } if (object.pathValueMatchers) { if (typeof object.pathValueMatchers !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.Operation.pathValueMatchers: object expected"); + throw TypeError(".google.cloud.recommender.v1.Operation.pathValueMatchers: object expected"); message.pathValueMatchers = {}; for (var keys = Object.keys(object.pathValueMatchers), i = 0; i < keys.length; ++i) { if (typeof object.pathValueMatchers[keys[i]] !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.Operation.pathValueMatchers: object expected"); - message.pathValueMatchers[keys[i]] = $root.google.cloud.recommender.v1beta1.ValueMatcher.fromObject(object.pathValueMatchers[keys[i]]); + throw TypeError(".google.cloud.recommender.v1.Operation.pathValueMatchers: object expected"); + message.pathValueMatchers[keys[i]] = $root.google.cloud.recommender.v1.ValueMatcher.fromObject(object.pathValueMatchers[keys[i]]); } } return message; @@ -1296,9 +1296,9 @@ /** * Creates a plain object from an Operation message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @static - * @param {google.cloud.recommender.v1beta1.Operation} message Operation + * @param {google.cloud.recommender.v1.Operation} message Operation * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -1342,14 +1342,14 @@ object.pathFilters[keys2[j]] = $root.google.protobuf.Value.toObject(message.pathFilters[keys2[j]], options); } if (message.valueMatcher != null && message.hasOwnProperty("valueMatcher")) { - object.valueMatcher = $root.google.cloud.recommender.v1beta1.ValueMatcher.toObject(message.valueMatcher, options); + object.valueMatcher = $root.google.cloud.recommender.v1.ValueMatcher.toObject(message.valueMatcher, options); if (options.oneofs) object.pathValue = "valueMatcher"; } if (message.pathValueMatchers && (keys2 = Object.keys(message.pathValueMatchers)).length) { object.pathValueMatchers = {}; for (var j = 0; j < keys2.length; ++j) - object.pathValueMatchers[keys2[j]] = $root.google.cloud.recommender.v1beta1.ValueMatcher.toObject(message.pathValueMatchers[keys2[j]], options); + object.pathValueMatchers[keys2[j]] = $root.google.cloud.recommender.v1.ValueMatcher.toObject(message.pathValueMatchers[keys2[j]], options); } return object; }; @@ -1357,7 +1357,7 @@ /** * Converts this Operation to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.Operation + * @memberof google.cloud.recommender.v1.Operation * @instance * @returns {Object.} JSON object */ @@ -1368,22 +1368,22 @@ return Operation; })(); - v1beta1.ValueMatcher = (function() { + v1.ValueMatcher = (function() { /** * Properties of a ValueMatcher. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IValueMatcher * @property {string|null} [matchesPattern] ValueMatcher matchesPattern */ /** * Constructs a new ValueMatcher. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents a ValueMatcher. * @implements IValueMatcher * @constructor - * @param {google.cloud.recommender.v1beta1.IValueMatcher=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IValueMatcher=} [properties] Properties to set */ function ValueMatcher(properties) { if (properties) @@ -1395,7 +1395,7 @@ /** * ValueMatcher matchesPattern. * @member {string} matchesPattern - * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @memberof google.cloud.recommender.v1.ValueMatcher * @instance */ ValueMatcher.prototype.matchesPattern = ""; @@ -1406,7 +1406,7 @@ /** * ValueMatcher matchVariant. * @member {"matchesPattern"|undefined} matchVariant - * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @memberof google.cloud.recommender.v1.ValueMatcher * @instance */ Object.defineProperty(ValueMatcher.prototype, "matchVariant", { @@ -1417,21 +1417,21 @@ /** * Creates a new ValueMatcher instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @memberof google.cloud.recommender.v1.ValueMatcher * @static - * @param {google.cloud.recommender.v1beta1.IValueMatcher=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.ValueMatcher} ValueMatcher instance + * @param {google.cloud.recommender.v1.IValueMatcher=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.ValueMatcher} ValueMatcher instance */ ValueMatcher.create = function create(properties) { return new ValueMatcher(properties); }; /** - * Encodes the specified ValueMatcher message. Does not implicitly {@link google.cloud.recommender.v1beta1.ValueMatcher.verify|verify} messages. + * Encodes the specified ValueMatcher message. Does not implicitly {@link google.cloud.recommender.v1.ValueMatcher.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @memberof google.cloud.recommender.v1.ValueMatcher * @static - * @param {google.cloud.recommender.v1beta1.IValueMatcher} message ValueMatcher message or plain object to encode + * @param {google.cloud.recommender.v1.IValueMatcher} message ValueMatcher message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -1444,11 +1444,11 @@ }; /** - * Encodes the specified ValueMatcher message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.ValueMatcher.verify|verify} messages. + * Encodes the specified ValueMatcher message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.ValueMatcher.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @memberof google.cloud.recommender.v1.ValueMatcher * @static - * @param {google.cloud.recommender.v1beta1.IValueMatcher} message ValueMatcher message or plain object to encode + * @param {google.cloud.recommender.v1.IValueMatcher} message ValueMatcher message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -1459,18 +1459,18 @@ /** * Decodes a ValueMatcher message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @memberof google.cloud.recommender.v1.ValueMatcher * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.ValueMatcher} ValueMatcher + * @returns {google.cloud.recommender.v1.ValueMatcher} ValueMatcher * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ ValueMatcher.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.ValueMatcher(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.ValueMatcher(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -1488,10 +1488,10 @@ /** * Decodes a ValueMatcher message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @memberof google.cloud.recommender.v1.ValueMatcher * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.ValueMatcher} ValueMatcher + * @returns {google.cloud.recommender.v1.ValueMatcher} ValueMatcher * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -1504,7 +1504,7 @@ /** * Verifies a ValueMatcher message. * @function verify - * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @memberof google.cloud.recommender.v1.ValueMatcher * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -1524,15 +1524,15 @@ /** * Creates a ValueMatcher message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @memberof google.cloud.recommender.v1.ValueMatcher * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.ValueMatcher} ValueMatcher + * @returns {google.cloud.recommender.v1.ValueMatcher} ValueMatcher */ ValueMatcher.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.ValueMatcher) + if (object instanceof $root.google.cloud.recommender.v1.ValueMatcher) return object; - var message = new $root.google.cloud.recommender.v1beta1.ValueMatcher(); + var message = new $root.google.cloud.recommender.v1.ValueMatcher(); if (object.matchesPattern != null) message.matchesPattern = String(object.matchesPattern); return message; @@ -1541,9 +1541,9 @@ /** * Creates a plain object from a ValueMatcher message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @memberof google.cloud.recommender.v1.ValueMatcher * @static - * @param {google.cloud.recommender.v1beta1.ValueMatcher} message ValueMatcher + * @param {google.cloud.recommender.v1.ValueMatcher} message ValueMatcher * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -1562,7 +1562,7 @@ /** * Converts this ValueMatcher to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.ValueMatcher + * @memberof google.cloud.recommender.v1.ValueMatcher * @instance * @returns {Object.} JSON object */ @@ -1573,11 +1573,11 @@ return ValueMatcher; })(); - v1beta1.CostProjection = (function() { + v1.CostProjection = (function() { /** * Properties of a CostProjection. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface ICostProjection * @property {google.type.IMoney|null} [cost] CostProjection cost * @property {google.protobuf.IDuration|null} [duration] CostProjection duration @@ -1585,11 +1585,11 @@ /** * Constructs a new CostProjection. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents a CostProjection. * @implements ICostProjection * @constructor - * @param {google.cloud.recommender.v1beta1.ICostProjection=} [properties] Properties to set + * @param {google.cloud.recommender.v1.ICostProjection=} [properties] Properties to set */ function CostProjection(properties) { if (properties) @@ -1601,7 +1601,7 @@ /** * CostProjection cost. * @member {google.type.IMoney|null|undefined} cost - * @memberof google.cloud.recommender.v1beta1.CostProjection + * @memberof google.cloud.recommender.v1.CostProjection * @instance */ CostProjection.prototype.cost = null; @@ -1609,7 +1609,7 @@ /** * CostProjection duration. * @member {google.protobuf.IDuration|null|undefined} duration - * @memberof google.cloud.recommender.v1beta1.CostProjection + * @memberof google.cloud.recommender.v1.CostProjection * @instance */ CostProjection.prototype.duration = null; @@ -1617,21 +1617,21 @@ /** * Creates a new CostProjection instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.CostProjection + * @memberof google.cloud.recommender.v1.CostProjection * @static - * @param {google.cloud.recommender.v1beta1.ICostProjection=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.CostProjection} CostProjection instance + * @param {google.cloud.recommender.v1.ICostProjection=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.CostProjection} CostProjection instance */ CostProjection.create = function create(properties) { return new CostProjection(properties); }; /** - * Encodes the specified CostProjection message. Does not implicitly {@link google.cloud.recommender.v1beta1.CostProjection.verify|verify} messages. + * Encodes the specified CostProjection message. Does not implicitly {@link google.cloud.recommender.v1.CostProjection.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.CostProjection + * @memberof google.cloud.recommender.v1.CostProjection * @static - * @param {google.cloud.recommender.v1beta1.ICostProjection} message CostProjection message or plain object to encode + * @param {google.cloud.recommender.v1.ICostProjection} message CostProjection message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -1646,11 +1646,11 @@ }; /** - * Encodes the specified CostProjection message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.CostProjection.verify|verify} messages. + * Encodes the specified CostProjection message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.CostProjection.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.CostProjection + * @memberof google.cloud.recommender.v1.CostProjection * @static - * @param {google.cloud.recommender.v1beta1.ICostProjection} message CostProjection message or plain object to encode + * @param {google.cloud.recommender.v1.ICostProjection} message CostProjection message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -1661,18 +1661,18 @@ /** * Decodes a CostProjection message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.CostProjection + * @memberof google.cloud.recommender.v1.CostProjection * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.CostProjection} CostProjection + * @returns {google.cloud.recommender.v1.CostProjection} CostProjection * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ CostProjection.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.CostProjection(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.CostProjection(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -1693,10 +1693,10 @@ /** * Decodes a CostProjection message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.CostProjection + * @memberof google.cloud.recommender.v1.CostProjection * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.CostProjection} CostProjection + * @returns {google.cloud.recommender.v1.CostProjection} CostProjection * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -1709,7 +1709,7 @@ /** * Verifies a CostProjection message. * @function verify - * @memberof google.cloud.recommender.v1beta1.CostProjection + * @memberof google.cloud.recommender.v1.CostProjection * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -1733,23 +1733,23 @@ /** * Creates a CostProjection message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.CostProjection + * @memberof google.cloud.recommender.v1.CostProjection * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.CostProjection} CostProjection + * @returns {google.cloud.recommender.v1.CostProjection} CostProjection */ CostProjection.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.CostProjection) + if (object instanceof $root.google.cloud.recommender.v1.CostProjection) return object; - var message = new $root.google.cloud.recommender.v1beta1.CostProjection(); + var message = new $root.google.cloud.recommender.v1.CostProjection(); if (object.cost != null) { if (typeof object.cost !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.CostProjection.cost: object expected"); + throw TypeError(".google.cloud.recommender.v1.CostProjection.cost: object expected"); message.cost = $root.google.type.Money.fromObject(object.cost); } if (object.duration != null) { if (typeof object.duration !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.CostProjection.duration: object expected"); + throw TypeError(".google.cloud.recommender.v1.CostProjection.duration: object expected"); message.duration = $root.google.protobuf.Duration.fromObject(object.duration); } return message; @@ -1758,9 +1758,9 @@ /** * Creates a plain object from a CostProjection message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.CostProjection + * @memberof google.cloud.recommender.v1.CostProjection * @static - * @param {google.cloud.recommender.v1beta1.CostProjection} message CostProjection + * @param {google.cloud.recommender.v1.CostProjection} message CostProjection * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -1782,7 +1782,7 @@ /** * Converts this CostProjection to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.CostProjection + * @memberof google.cloud.recommender.v1.CostProjection * @instance * @returns {Object.} JSON object */ @@ -1793,23 +1793,23 @@ return CostProjection; })(); - v1beta1.Impact = (function() { + v1.Impact = (function() { /** * Properties of an Impact. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IImpact - * @property {google.cloud.recommender.v1beta1.Impact.Category|null} [category] Impact category - * @property {google.cloud.recommender.v1beta1.ICostProjection|null} [costProjection] Impact costProjection + * @property {google.cloud.recommender.v1.Impact.Category|null} [category] Impact category + * @property {google.cloud.recommender.v1.ICostProjection|null} [costProjection] Impact costProjection */ /** * Constructs a new Impact. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents an Impact. * @implements IImpact * @constructor - * @param {google.cloud.recommender.v1beta1.IImpact=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IImpact=} [properties] Properties to set */ function Impact(properties) { if (properties) @@ -1820,16 +1820,16 @@ /** * Impact category. - * @member {google.cloud.recommender.v1beta1.Impact.Category} category - * @memberof google.cloud.recommender.v1beta1.Impact + * @member {google.cloud.recommender.v1.Impact.Category} category + * @memberof google.cloud.recommender.v1.Impact * @instance */ Impact.prototype.category = 0; /** * Impact costProjection. - * @member {google.cloud.recommender.v1beta1.ICostProjection|null|undefined} costProjection - * @memberof google.cloud.recommender.v1beta1.Impact + * @member {google.cloud.recommender.v1.ICostProjection|null|undefined} costProjection + * @memberof google.cloud.recommender.v1.Impact * @instance */ Impact.prototype.costProjection = null; @@ -1840,7 +1840,7 @@ /** * Impact projection. * @member {"costProjection"|undefined} projection - * @memberof google.cloud.recommender.v1beta1.Impact + * @memberof google.cloud.recommender.v1.Impact * @instance */ Object.defineProperty(Impact.prototype, "projection", { @@ -1851,21 +1851,21 @@ /** * Creates a new Impact instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.Impact + * @memberof google.cloud.recommender.v1.Impact * @static - * @param {google.cloud.recommender.v1beta1.IImpact=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.Impact} Impact instance + * @param {google.cloud.recommender.v1.IImpact=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.Impact} Impact instance */ Impact.create = function create(properties) { return new Impact(properties); }; /** - * Encodes the specified Impact message. Does not implicitly {@link google.cloud.recommender.v1beta1.Impact.verify|verify} messages. + * Encodes the specified Impact message. Does not implicitly {@link google.cloud.recommender.v1.Impact.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.Impact + * @memberof google.cloud.recommender.v1.Impact * @static - * @param {google.cloud.recommender.v1beta1.IImpact} message Impact message or plain object to encode + * @param {google.cloud.recommender.v1.IImpact} message Impact message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -1875,16 +1875,16 @@ if (message.category != null && message.hasOwnProperty("category")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.category); if (message.costProjection != null && message.hasOwnProperty("costProjection")) - $root.google.cloud.recommender.v1beta1.CostProjection.encode(message.costProjection, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + $root.google.cloud.recommender.v1.CostProjection.encode(message.costProjection, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); return writer; }; /** - * Encodes the specified Impact message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.Impact.verify|verify} messages. + * Encodes the specified Impact message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Impact.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.Impact + * @memberof google.cloud.recommender.v1.Impact * @static - * @param {google.cloud.recommender.v1beta1.IImpact} message Impact message or plain object to encode + * @param {google.cloud.recommender.v1.IImpact} message Impact message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -1895,18 +1895,18 @@ /** * Decodes an Impact message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.Impact + * @memberof google.cloud.recommender.v1.Impact * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.Impact} Impact + * @returns {google.cloud.recommender.v1.Impact} Impact * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ Impact.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.Impact(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Impact(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -1914,7 +1914,7 @@ message.category = reader.int32(); break; case 100: - message.costProjection = $root.google.cloud.recommender.v1beta1.CostProjection.decode(reader, reader.uint32()); + message.costProjection = $root.google.cloud.recommender.v1.CostProjection.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -1927,10 +1927,10 @@ /** * Decodes an Impact message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.Impact + * @memberof google.cloud.recommender.v1.Impact * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.Impact} Impact + * @returns {google.cloud.recommender.v1.Impact} Impact * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -1943,7 +1943,7 @@ /** * Verifies an Impact message. * @function verify - * @memberof google.cloud.recommender.v1beta1.Impact + * @memberof google.cloud.recommender.v1.Impact * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -1966,7 +1966,7 @@ if (message.costProjection != null && message.hasOwnProperty("costProjection")) { properties.projection = 1; { - var error = $root.google.cloud.recommender.v1beta1.CostProjection.verify(message.costProjection); + var error = $root.google.cloud.recommender.v1.CostProjection.verify(message.costProjection); if (error) return "costProjection." + error; } @@ -1977,15 +1977,15 @@ /** * Creates an Impact message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.Impact + * @memberof google.cloud.recommender.v1.Impact * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.Impact} Impact + * @returns {google.cloud.recommender.v1.Impact} Impact */ Impact.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.Impact) + if (object instanceof $root.google.cloud.recommender.v1.Impact) return object; - var message = new $root.google.cloud.recommender.v1beta1.Impact(); + var message = new $root.google.cloud.recommender.v1.Impact(); switch (object.category) { case "CATEGORY_UNSPECIFIED": case 0: @@ -2010,8 +2010,8 @@ } if (object.costProjection != null) { if (typeof object.costProjection !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.Impact.costProjection: object expected"); - message.costProjection = $root.google.cloud.recommender.v1beta1.CostProjection.fromObject(object.costProjection); + throw TypeError(".google.cloud.recommender.v1.Impact.costProjection: object expected"); + message.costProjection = $root.google.cloud.recommender.v1.CostProjection.fromObject(object.costProjection); } return message; }; @@ -2019,9 +2019,9 @@ /** * Creates a plain object from an Impact message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.Impact + * @memberof google.cloud.recommender.v1.Impact * @static - * @param {google.cloud.recommender.v1beta1.Impact} message Impact + * @param {google.cloud.recommender.v1.Impact} message Impact * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -2032,9 +2032,9 @@ if (options.defaults) object.category = options.enums === String ? "CATEGORY_UNSPECIFIED" : 0; if (message.category != null && message.hasOwnProperty("category")) - object.category = options.enums === String ? $root.google.cloud.recommender.v1beta1.Impact.Category[message.category] : message.category; + object.category = options.enums === String ? $root.google.cloud.recommender.v1.Impact.Category[message.category] : message.category; if (message.costProjection != null && message.hasOwnProperty("costProjection")) { - object.costProjection = $root.google.cloud.recommender.v1beta1.CostProjection.toObject(message.costProjection, options); + object.costProjection = $root.google.cloud.recommender.v1.CostProjection.toObject(message.costProjection, options); if (options.oneofs) object.projection = "costProjection"; } @@ -2044,7 +2044,7 @@ /** * Converts this Impact to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.Impact + * @memberof google.cloud.recommender.v1.Impact * @instance * @returns {Object.} JSON object */ @@ -2054,7 +2054,7 @@ /** * Category enum. - * @name google.cloud.recommender.v1beta1.Impact.Category + * @name google.cloud.recommender.v1.Impact.Category * @enum {string} * @property {number} CATEGORY_UNSPECIFIED=0 CATEGORY_UNSPECIFIED value * @property {number} COST=1 COST value @@ -2075,23 +2075,23 @@ return Impact; })(); - v1beta1.RecommendationStateInfo = (function() { + v1.RecommendationStateInfo = (function() { /** * Properties of a RecommendationStateInfo. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IRecommendationStateInfo - * @property {google.cloud.recommender.v1beta1.RecommendationStateInfo.State|null} [state] RecommendationStateInfo state + * @property {google.cloud.recommender.v1.RecommendationStateInfo.State|null} [state] RecommendationStateInfo state * @property {Object.|null} [stateMetadata] RecommendationStateInfo stateMetadata */ /** * Constructs a new RecommendationStateInfo. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents a RecommendationStateInfo. * @implements IRecommendationStateInfo * @constructor - * @param {google.cloud.recommender.v1beta1.IRecommendationStateInfo=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IRecommendationStateInfo=} [properties] Properties to set */ function RecommendationStateInfo(properties) { this.stateMetadata = {}; @@ -2103,8 +2103,8 @@ /** * RecommendationStateInfo state. - * @member {google.cloud.recommender.v1beta1.RecommendationStateInfo.State} state - * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @member {google.cloud.recommender.v1.RecommendationStateInfo.State} state + * @memberof google.cloud.recommender.v1.RecommendationStateInfo * @instance */ RecommendationStateInfo.prototype.state = 0; @@ -2112,7 +2112,7 @@ /** * RecommendationStateInfo stateMetadata. * @member {Object.} stateMetadata - * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.RecommendationStateInfo * @instance */ RecommendationStateInfo.prototype.stateMetadata = $util.emptyObject; @@ -2120,21 +2120,21 @@ /** * Creates a new RecommendationStateInfo instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.RecommendationStateInfo * @static - * @param {google.cloud.recommender.v1beta1.IRecommendationStateInfo=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.RecommendationStateInfo} RecommendationStateInfo instance + * @param {google.cloud.recommender.v1.IRecommendationStateInfo=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.RecommendationStateInfo} RecommendationStateInfo instance */ RecommendationStateInfo.create = function create(properties) { return new RecommendationStateInfo(properties); }; /** - * Encodes the specified RecommendationStateInfo message. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationStateInfo.verify|verify} messages. + * Encodes the specified RecommendationStateInfo message. Does not implicitly {@link google.cloud.recommender.v1.RecommendationStateInfo.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.RecommendationStateInfo * @static - * @param {google.cloud.recommender.v1beta1.IRecommendationStateInfo} message RecommendationStateInfo message or plain object to encode + * @param {google.cloud.recommender.v1.IRecommendationStateInfo} message RecommendationStateInfo message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -2150,11 +2150,11 @@ }; /** - * Encodes the specified RecommendationStateInfo message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.RecommendationStateInfo.verify|verify} messages. + * Encodes the specified RecommendationStateInfo message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.RecommendationStateInfo.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.RecommendationStateInfo * @static - * @param {google.cloud.recommender.v1beta1.IRecommendationStateInfo} message RecommendationStateInfo message or plain object to encode + * @param {google.cloud.recommender.v1.IRecommendationStateInfo} message RecommendationStateInfo message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -2165,18 +2165,18 @@ /** * Decodes a RecommendationStateInfo message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.RecommendationStateInfo * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.RecommendationStateInfo} RecommendationStateInfo + * @returns {google.cloud.recommender.v1.RecommendationStateInfo} RecommendationStateInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ RecommendationStateInfo.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.RecommendationStateInfo(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.RecommendationStateInfo(), key; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -2202,10 +2202,10 @@ /** * Decodes a RecommendationStateInfo message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.RecommendationStateInfo * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.RecommendationStateInfo} RecommendationStateInfo + * @returns {google.cloud.recommender.v1.RecommendationStateInfo} RecommendationStateInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -2218,7 +2218,7 @@ /** * Verifies a RecommendationStateInfo message. * @function verify - * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.RecommendationStateInfo * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -2252,15 +2252,15 @@ /** * Creates a RecommendationStateInfo message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.RecommendationStateInfo * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.RecommendationStateInfo} RecommendationStateInfo + * @returns {google.cloud.recommender.v1.RecommendationStateInfo} RecommendationStateInfo */ RecommendationStateInfo.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.RecommendationStateInfo) + if (object instanceof $root.google.cloud.recommender.v1.RecommendationStateInfo) return object; - var message = new $root.google.cloud.recommender.v1beta1.RecommendationStateInfo(); + var message = new $root.google.cloud.recommender.v1.RecommendationStateInfo(); switch (object.state) { case "STATE_UNSPECIFIED": case 0: @@ -2289,7 +2289,7 @@ } if (object.stateMetadata) { if (typeof object.stateMetadata !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.RecommendationStateInfo.stateMetadata: object expected"); + throw TypeError(".google.cloud.recommender.v1.RecommendationStateInfo.stateMetadata: object expected"); message.stateMetadata = {}; for (var keys = Object.keys(object.stateMetadata), i = 0; i < keys.length; ++i) message.stateMetadata[keys[i]] = String(object.stateMetadata[keys[i]]); @@ -2300,9 +2300,9 @@ /** * Creates a plain object from a RecommendationStateInfo message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.RecommendationStateInfo * @static - * @param {google.cloud.recommender.v1beta1.RecommendationStateInfo} message RecommendationStateInfo + * @param {google.cloud.recommender.v1.RecommendationStateInfo} message RecommendationStateInfo * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -2315,7 +2315,7 @@ if (options.defaults) object.state = options.enums === String ? "STATE_UNSPECIFIED" : 0; if (message.state != null && message.hasOwnProperty("state")) - object.state = options.enums === String ? $root.google.cloud.recommender.v1beta1.RecommendationStateInfo.State[message.state] : message.state; + object.state = options.enums === String ? $root.google.cloud.recommender.v1.RecommendationStateInfo.State[message.state] : message.state; var keys2; if (message.stateMetadata && (keys2 = Object.keys(message.stateMetadata)).length) { object.stateMetadata = {}; @@ -2328,7 +2328,7 @@ /** * Converts this RecommendationStateInfo to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.RecommendationStateInfo * @instance * @returns {Object.} JSON object */ @@ -2338,7 +2338,7 @@ /** * State enum. - * @name google.cloud.recommender.v1beta1.RecommendationStateInfo.State + * @name google.cloud.recommender.v1.RecommendationStateInfo.State * @enum {string} * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value * @property {number} ACTIVE=1 ACTIVE value @@ -2361,11 +2361,11 @@ return RecommendationStateInfo; })(); - v1beta1.Recommender = (function() { + v1.Recommender = (function() { /** * Constructs a new Recommender service. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents a Recommender * @extends $protobuf.rpc.Service * @constructor @@ -2382,7 +2382,7 @@ /** * Creates new Recommender service using the specified rpc implementation. * @function create - * @memberof google.cloud.recommender.v1beta1.Recommender + * @memberof google.cloud.recommender.v1.Recommender * @static * @param {$protobuf.RPCImpl} rpcImpl RPC implementation * @param {boolean} [requestDelimited=false] Whether requests are length-delimited @@ -2394,178 +2394,178 @@ }; /** - * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#listRecommendations}. - * @memberof google.cloud.recommender.v1beta1.Recommender + * Callback as used by {@link google.cloud.recommender.v1.Recommender#listRecommendations}. + * @memberof google.cloud.recommender.v1.Recommender * @typedef ListRecommendationsCallback * @type {function} * @param {Error|null} error Error, if any - * @param {google.cloud.recommender.v1beta1.ListRecommendationsResponse} [response] ListRecommendationsResponse + * @param {google.cloud.recommender.v1.ListRecommendationsResponse} [response] ListRecommendationsResponse */ /** * Calls ListRecommendations. * @function listRecommendations - * @memberof google.cloud.recommender.v1beta1.Recommender + * @memberof google.cloud.recommender.v1.Recommender * @instance - * @param {google.cloud.recommender.v1beta1.IListRecommendationsRequest} request ListRecommendationsRequest message or plain object - * @param {google.cloud.recommender.v1beta1.Recommender.ListRecommendationsCallback} callback Node-style callback called with the error, if any, and ListRecommendationsResponse + * @param {google.cloud.recommender.v1.IListRecommendationsRequest} request ListRecommendationsRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.ListRecommendationsCallback} callback Node-style callback called with the error, if any, and ListRecommendationsResponse * @returns {undefined} * @variation 1 */ Object.defineProperty(Recommender.prototype.listRecommendations = function listRecommendations(request, callback) { - return this.rpcCall(listRecommendations, $root.google.cloud.recommender.v1beta1.ListRecommendationsRequest, $root.google.cloud.recommender.v1beta1.ListRecommendationsResponse, request, callback); + return this.rpcCall(listRecommendations, $root.google.cloud.recommender.v1.ListRecommendationsRequest, $root.google.cloud.recommender.v1.ListRecommendationsResponse, request, callback); }, "name", { value: "ListRecommendations" }); /** * Calls ListRecommendations. * @function listRecommendations - * @memberof google.cloud.recommender.v1beta1.Recommender + * @memberof google.cloud.recommender.v1.Recommender * @instance - * @param {google.cloud.recommender.v1beta1.IListRecommendationsRequest} request ListRecommendationsRequest message or plain object - * @returns {Promise} Promise + * @param {google.cloud.recommender.v1.IListRecommendationsRequest} request ListRecommendationsRequest message or plain object + * @returns {Promise} Promise * @variation 2 */ /** - * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#getRecommendation}. - * @memberof google.cloud.recommender.v1beta1.Recommender + * Callback as used by {@link google.cloud.recommender.v1.Recommender#getRecommendation}. + * @memberof google.cloud.recommender.v1.Recommender * @typedef GetRecommendationCallback * @type {function} * @param {Error|null} error Error, if any - * @param {google.cloud.recommender.v1beta1.Recommendation} [response] Recommendation + * @param {google.cloud.recommender.v1.Recommendation} [response] Recommendation */ /** * Calls GetRecommendation. * @function getRecommendation - * @memberof google.cloud.recommender.v1beta1.Recommender + * @memberof google.cloud.recommender.v1.Recommender * @instance - * @param {google.cloud.recommender.v1beta1.IGetRecommendationRequest} request GetRecommendationRequest message or plain object - * @param {google.cloud.recommender.v1beta1.Recommender.GetRecommendationCallback} callback Node-style callback called with the error, if any, and Recommendation + * @param {google.cloud.recommender.v1.IGetRecommendationRequest} request GetRecommendationRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.GetRecommendationCallback} callback Node-style callback called with the error, if any, and Recommendation * @returns {undefined} * @variation 1 */ Object.defineProperty(Recommender.prototype.getRecommendation = function getRecommendation(request, callback) { - return this.rpcCall(getRecommendation, $root.google.cloud.recommender.v1beta1.GetRecommendationRequest, $root.google.cloud.recommender.v1beta1.Recommendation, request, callback); + return this.rpcCall(getRecommendation, $root.google.cloud.recommender.v1.GetRecommendationRequest, $root.google.cloud.recommender.v1.Recommendation, request, callback); }, "name", { value: "GetRecommendation" }); /** * Calls GetRecommendation. * @function getRecommendation - * @memberof google.cloud.recommender.v1beta1.Recommender + * @memberof google.cloud.recommender.v1.Recommender * @instance - * @param {google.cloud.recommender.v1beta1.IGetRecommendationRequest} request GetRecommendationRequest message or plain object - * @returns {Promise} Promise + * @param {google.cloud.recommender.v1.IGetRecommendationRequest} request GetRecommendationRequest message or plain object + * @returns {Promise} Promise * @variation 2 */ /** - * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#markRecommendationClaimed}. - * @memberof google.cloud.recommender.v1beta1.Recommender + * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationClaimed}. + * @memberof google.cloud.recommender.v1.Recommender * @typedef MarkRecommendationClaimedCallback * @type {function} * @param {Error|null} error Error, if any - * @param {google.cloud.recommender.v1beta1.Recommendation} [response] Recommendation + * @param {google.cloud.recommender.v1.Recommendation} [response] Recommendation */ /** * Calls MarkRecommendationClaimed. * @function markRecommendationClaimed - * @memberof google.cloud.recommender.v1beta1.Recommender + * @memberof google.cloud.recommender.v1.Recommender * @instance - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest} request MarkRecommendationClaimedRequest message or plain object - * @param {google.cloud.recommender.v1beta1.Recommender.MarkRecommendationClaimedCallback} callback Node-style callback called with the error, if any, and Recommendation + * @param {google.cloud.recommender.v1.IMarkRecommendationClaimedRequest} request MarkRecommendationClaimedRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.MarkRecommendationClaimedCallback} callback Node-style callback called with the error, if any, and Recommendation * @returns {undefined} * @variation 1 */ Object.defineProperty(Recommender.prototype.markRecommendationClaimed = function markRecommendationClaimed(request, callback) { - return this.rpcCall(markRecommendationClaimed, $root.google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest, $root.google.cloud.recommender.v1beta1.Recommendation, request, callback); + return this.rpcCall(markRecommendationClaimed, $root.google.cloud.recommender.v1.MarkRecommendationClaimedRequest, $root.google.cloud.recommender.v1.Recommendation, request, callback); }, "name", { value: "MarkRecommendationClaimed" }); /** * Calls MarkRecommendationClaimed. * @function markRecommendationClaimed - * @memberof google.cloud.recommender.v1beta1.Recommender + * @memberof google.cloud.recommender.v1.Recommender * @instance - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest} request MarkRecommendationClaimedRequest message or plain object - * @returns {Promise} Promise + * @param {google.cloud.recommender.v1.IMarkRecommendationClaimedRequest} request MarkRecommendationClaimedRequest message or plain object + * @returns {Promise} Promise * @variation 2 */ /** - * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#markRecommendationSucceeded}. - * @memberof google.cloud.recommender.v1beta1.Recommender + * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationSucceeded}. + * @memberof google.cloud.recommender.v1.Recommender * @typedef MarkRecommendationSucceededCallback * @type {function} * @param {Error|null} error Error, if any - * @param {google.cloud.recommender.v1beta1.Recommendation} [response] Recommendation + * @param {google.cloud.recommender.v1.Recommendation} [response] Recommendation */ /** * Calls MarkRecommendationSucceeded. * @function markRecommendationSucceeded - * @memberof google.cloud.recommender.v1beta1.Recommender + * @memberof google.cloud.recommender.v1.Recommender * @instance - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest} request MarkRecommendationSucceededRequest message or plain object - * @param {google.cloud.recommender.v1beta1.Recommender.MarkRecommendationSucceededCallback} callback Node-style callback called with the error, if any, and Recommendation + * @param {google.cloud.recommender.v1.IMarkRecommendationSucceededRequest} request MarkRecommendationSucceededRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.MarkRecommendationSucceededCallback} callback Node-style callback called with the error, if any, and Recommendation * @returns {undefined} * @variation 1 */ Object.defineProperty(Recommender.prototype.markRecommendationSucceeded = function markRecommendationSucceeded(request, callback) { - return this.rpcCall(markRecommendationSucceeded, $root.google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest, $root.google.cloud.recommender.v1beta1.Recommendation, request, callback); + return this.rpcCall(markRecommendationSucceeded, $root.google.cloud.recommender.v1.MarkRecommendationSucceededRequest, $root.google.cloud.recommender.v1.Recommendation, request, callback); }, "name", { value: "MarkRecommendationSucceeded" }); /** * Calls MarkRecommendationSucceeded. * @function markRecommendationSucceeded - * @memberof google.cloud.recommender.v1beta1.Recommender + * @memberof google.cloud.recommender.v1.Recommender * @instance - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest} request MarkRecommendationSucceededRequest message or plain object - * @returns {Promise} Promise + * @param {google.cloud.recommender.v1.IMarkRecommendationSucceededRequest} request MarkRecommendationSucceededRequest message or plain object + * @returns {Promise} Promise * @variation 2 */ /** - * Callback as used by {@link google.cloud.recommender.v1beta1.Recommender#markRecommendationFailed}. - * @memberof google.cloud.recommender.v1beta1.Recommender + * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationFailed}. + * @memberof google.cloud.recommender.v1.Recommender * @typedef MarkRecommendationFailedCallback * @type {function} * @param {Error|null} error Error, if any - * @param {google.cloud.recommender.v1beta1.Recommendation} [response] Recommendation + * @param {google.cloud.recommender.v1.Recommendation} [response] Recommendation */ /** * Calls MarkRecommendationFailed. * @function markRecommendationFailed - * @memberof google.cloud.recommender.v1beta1.Recommender + * @memberof google.cloud.recommender.v1.Recommender * @instance - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest} request MarkRecommendationFailedRequest message or plain object - * @param {google.cloud.recommender.v1beta1.Recommender.MarkRecommendationFailedCallback} callback Node-style callback called with the error, if any, and Recommendation + * @param {google.cloud.recommender.v1.IMarkRecommendationFailedRequest} request MarkRecommendationFailedRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.MarkRecommendationFailedCallback} callback Node-style callback called with the error, if any, and Recommendation * @returns {undefined} * @variation 1 */ Object.defineProperty(Recommender.prototype.markRecommendationFailed = function markRecommendationFailed(request, callback) { - return this.rpcCall(markRecommendationFailed, $root.google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest, $root.google.cloud.recommender.v1beta1.Recommendation, request, callback); + return this.rpcCall(markRecommendationFailed, $root.google.cloud.recommender.v1.MarkRecommendationFailedRequest, $root.google.cloud.recommender.v1.Recommendation, request, callback); }, "name", { value: "MarkRecommendationFailed" }); /** * Calls MarkRecommendationFailed. * @function markRecommendationFailed - * @memberof google.cloud.recommender.v1beta1.Recommender + * @memberof google.cloud.recommender.v1.Recommender * @instance - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest} request MarkRecommendationFailedRequest message or plain object - * @returns {Promise} Promise + * @param {google.cloud.recommender.v1.IMarkRecommendationFailedRequest} request MarkRecommendationFailedRequest message or plain object + * @returns {Promise} Promise * @variation 2 */ return Recommender; })(); - v1beta1.ListRecommendationsRequest = (function() { + v1.ListRecommendationsRequest = (function() { /** * Properties of a ListRecommendationsRequest. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IListRecommendationsRequest * @property {string|null} [parent] ListRecommendationsRequest parent * @property {number|null} [pageSize] ListRecommendationsRequest pageSize @@ -2575,11 +2575,11 @@ /** * Constructs a new ListRecommendationsRequest. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents a ListRecommendationsRequest. * @implements IListRecommendationsRequest * @constructor - * @param {google.cloud.recommender.v1beta1.IListRecommendationsRequest=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IListRecommendationsRequest=} [properties] Properties to set */ function ListRecommendationsRequest(properties) { if (properties) @@ -2591,7 +2591,7 @@ /** * ListRecommendationsRequest parent. * @member {string} parent - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @instance */ ListRecommendationsRequest.prototype.parent = ""; @@ -2599,7 +2599,7 @@ /** * ListRecommendationsRequest pageSize. * @member {number} pageSize - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @instance */ ListRecommendationsRequest.prototype.pageSize = 0; @@ -2607,7 +2607,7 @@ /** * ListRecommendationsRequest pageToken. * @member {string} pageToken - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @instance */ ListRecommendationsRequest.prototype.pageToken = ""; @@ -2615,7 +2615,7 @@ /** * ListRecommendationsRequest filter. * @member {string} filter - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @instance */ ListRecommendationsRequest.prototype.filter = ""; @@ -2623,21 +2623,21 @@ /** * Creates a new ListRecommendationsRequest instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @static - * @param {google.cloud.recommender.v1beta1.IListRecommendationsRequest=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.ListRecommendationsRequest} ListRecommendationsRequest instance + * @param {google.cloud.recommender.v1.IListRecommendationsRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.ListRecommendationsRequest} ListRecommendationsRequest instance */ ListRecommendationsRequest.create = function create(properties) { return new ListRecommendationsRequest(properties); }; /** - * Encodes the specified ListRecommendationsRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsRequest.verify|verify} messages. + * Encodes the specified ListRecommendationsRequest message. Does not implicitly {@link google.cloud.recommender.v1.ListRecommendationsRequest.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @static - * @param {google.cloud.recommender.v1beta1.IListRecommendationsRequest} message ListRecommendationsRequest message or plain object to encode + * @param {google.cloud.recommender.v1.IListRecommendationsRequest} message ListRecommendationsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -2656,11 +2656,11 @@ }; /** - * Encodes the specified ListRecommendationsRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsRequest.verify|verify} messages. + * Encodes the specified ListRecommendationsRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.ListRecommendationsRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @static - * @param {google.cloud.recommender.v1beta1.IListRecommendationsRequest} message ListRecommendationsRequest message or plain object to encode + * @param {google.cloud.recommender.v1.IListRecommendationsRequest} message ListRecommendationsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -2671,18 +2671,18 @@ /** * Decodes a ListRecommendationsRequest message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.ListRecommendationsRequest} ListRecommendationsRequest + * @returns {google.cloud.recommender.v1.ListRecommendationsRequest} ListRecommendationsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ ListRecommendationsRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.ListRecommendationsRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.ListRecommendationsRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -2709,10 +2709,10 @@ /** * Decodes a ListRecommendationsRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.ListRecommendationsRequest} ListRecommendationsRequest + * @returns {google.cloud.recommender.v1.ListRecommendationsRequest} ListRecommendationsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -2725,7 +2725,7 @@ /** * Verifies a ListRecommendationsRequest message. * @function verify - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -2751,15 +2751,15 @@ /** * Creates a ListRecommendationsRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.ListRecommendationsRequest} ListRecommendationsRequest + * @returns {google.cloud.recommender.v1.ListRecommendationsRequest} ListRecommendationsRequest */ ListRecommendationsRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.ListRecommendationsRequest) + if (object instanceof $root.google.cloud.recommender.v1.ListRecommendationsRequest) return object; - var message = new $root.google.cloud.recommender.v1beta1.ListRecommendationsRequest(); + var message = new $root.google.cloud.recommender.v1.ListRecommendationsRequest(); if (object.parent != null) message.parent = String(object.parent); if (object.pageSize != null) @@ -2774,9 +2774,9 @@ /** * Creates a plain object from a ListRecommendationsRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @static - * @param {google.cloud.recommender.v1beta1.ListRecommendationsRequest} message ListRecommendationsRequest + * @param {google.cloud.recommender.v1.ListRecommendationsRequest} message ListRecommendationsRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -2804,7 +2804,7 @@ /** * Converts this ListRecommendationsRequest to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsRequest + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest * @instance * @returns {Object.} JSON object */ @@ -2815,23 +2815,23 @@ return ListRecommendationsRequest; })(); - v1beta1.ListRecommendationsResponse = (function() { + v1.ListRecommendationsResponse = (function() { /** * Properties of a ListRecommendationsResponse. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IListRecommendationsResponse - * @property {Array.|null} [recommendations] ListRecommendationsResponse recommendations + * @property {Array.|null} [recommendations] ListRecommendationsResponse recommendations * @property {string|null} [nextPageToken] ListRecommendationsResponse nextPageToken */ /** * Constructs a new ListRecommendationsResponse. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents a ListRecommendationsResponse. * @implements IListRecommendationsResponse * @constructor - * @param {google.cloud.recommender.v1beta1.IListRecommendationsResponse=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IListRecommendationsResponse=} [properties] Properties to set */ function ListRecommendationsResponse(properties) { this.recommendations = []; @@ -2843,8 +2843,8 @@ /** * ListRecommendationsResponse recommendations. - * @member {Array.} recommendations - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @member {Array.} recommendations + * @memberof google.cloud.recommender.v1.ListRecommendationsResponse * @instance */ ListRecommendationsResponse.prototype.recommendations = $util.emptyArray; @@ -2852,7 +2852,7 @@ /** * ListRecommendationsResponse nextPageToken. * @member {string} nextPageToken - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @memberof google.cloud.recommender.v1.ListRecommendationsResponse * @instance */ ListRecommendationsResponse.prototype.nextPageToken = ""; @@ -2860,21 +2860,21 @@ /** * Creates a new ListRecommendationsResponse instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @memberof google.cloud.recommender.v1.ListRecommendationsResponse * @static - * @param {google.cloud.recommender.v1beta1.IListRecommendationsResponse=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.ListRecommendationsResponse} ListRecommendationsResponse instance + * @param {google.cloud.recommender.v1.IListRecommendationsResponse=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.ListRecommendationsResponse} ListRecommendationsResponse instance */ ListRecommendationsResponse.create = function create(properties) { return new ListRecommendationsResponse(properties); }; /** - * Encodes the specified ListRecommendationsResponse message. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsResponse.verify|verify} messages. + * Encodes the specified ListRecommendationsResponse message. Does not implicitly {@link google.cloud.recommender.v1.ListRecommendationsResponse.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @memberof google.cloud.recommender.v1.ListRecommendationsResponse * @static - * @param {google.cloud.recommender.v1beta1.IListRecommendationsResponse} message ListRecommendationsResponse message or plain object to encode + * @param {google.cloud.recommender.v1.IListRecommendationsResponse} message ListRecommendationsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -2883,18 +2883,18 @@ writer = $Writer.create(); if (message.recommendations != null && message.recommendations.length) for (var i = 0; i < message.recommendations.length; ++i) - $root.google.cloud.recommender.v1beta1.Recommendation.encode(message.recommendations[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.cloud.recommender.v1.Recommendation.encode(message.recommendations[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); return writer; }; /** - * Encodes the specified ListRecommendationsResponse message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.ListRecommendationsResponse.verify|verify} messages. + * Encodes the specified ListRecommendationsResponse message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.ListRecommendationsResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @memberof google.cloud.recommender.v1.ListRecommendationsResponse * @static - * @param {google.cloud.recommender.v1beta1.IListRecommendationsResponse} message ListRecommendationsResponse message or plain object to encode + * @param {google.cloud.recommender.v1.IListRecommendationsResponse} message ListRecommendationsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -2905,25 +2905,25 @@ /** * Decodes a ListRecommendationsResponse message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @memberof google.cloud.recommender.v1.ListRecommendationsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.ListRecommendationsResponse} ListRecommendationsResponse + * @returns {google.cloud.recommender.v1.ListRecommendationsResponse} ListRecommendationsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ ListRecommendationsResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.ListRecommendationsResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.ListRecommendationsResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: if (!(message.recommendations && message.recommendations.length)) message.recommendations = []; - message.recommendations.push($root.google.cloud.recommender.v1beta1.Recommendation.decode(reader, reader.uint32())); + message.recommendations.push($root.google.cloud.recommender.v1.Recommendation.decode(reader, reader.uint32())); break; case 2: message.nextPageToken = reader.string(); @@ -2939,10 +2939,10 @@ /** * Decodes a ListRecommendationsResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @memberof google.cloud.recommender.v1.ListRecommendationsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.ListRecommendationsResponse} ListRecommendationsResponse + * @returns {google.cloud.recommender.v1.ListRecommendationsResponse} ListRecommendationsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -2955,7 +2955,7 @@ /** * Verifies a ListRecommendationsResponse message. * @function verify - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @memberof google.cloud.recommender.v1.ListRecommendationsResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -2967,7 +2967,7 @@ if (!Array.isArray(message.recommendations)) return "recommendations: array expected"; for (var i = 0; i < message.recommendations.length; ++i) { - var error = $root.google.cloud.recommender.v1beta1.Recommendation.verify(message.recommendations[i]); + var error = $root.google.cloud.recommender.v1.Recommendation.verify(message.recommendations[i]); if (error) return "recommendations." + error; } @@ -2981,23 +2981,23 @@ /** * Creates a ListRecommendationsResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @memberof google.cloud.recommender.v1.ListRecommendationsResponse * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.ListRecommendationsResponse} ListRecommendationsResponse + * @returns {google.cloud.recommender.v1.ListRecommendationsResponse} ListRecommendationsResponse */ ListRecommendationsResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.ListRecommendationsResponse) + if (object instanceof $root.google.cloud.recommender.v1.ListRecommendationsResponse) return object; - var message = new $root.google.cloud.recommender.v1beta1.ListRecommendationsResponse(); + var message = new $root.google.cloud.recommender.v1.ListRecommendationsResponse(); if (object.recommendations) { if (!Array.isArray(object.recommendations)) - throw TypeError(".google.cloud.recommender.v1beta1.ListRecommendationsResponse.recommendations: array expected"); + throw TypeError(".google.cloud.recommender.v1.ListRecommendationsResponse.recommendations: array expected"); message.recommendations = []; for (var i = 0; i < object.recommendations.length; ++i) { if (typeof object.recommendations[i] !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.ListRecommendationsResponse.recommendations: object expected"); - message.recommendations[i] = $root.google.cloud.recommender.v1beta1.Recommendation.fromObject(object.recommendations[i]); + throw TypeError(".google.cloud.recommender.v1.ListRecommendationsResponse.recommendations: object expected"); + message.recommendations[i] = $root.google.cloud.recommender.v1.Recommendation.fromObject(object.recommendations[i]); } } if (object.nextPageToken != null) @@ -3008,9 +3008,9 @@ /** * Creates a plain object from a ListRecommendationsResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @memberof google.cloud.recommender.v1.ListRecommendationsResponse * @static - * @param {google.cloud.recommender.v1beta1.ListRecommendationsResponse} message ListRecommendationsResponse + * @param {google.cloud.recommender.v1.ListRecommendationsResponse} message ListRecommendationsResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -3025,7 +3025,7 @@ if (message.recommendations && message.recommendations.length) { object.recommendations = []; for (var j = 0; j < message.recommendations.length; ++j) - object.recommendations[j] = $root.google.cloud.recommender.v1beta1.Recommendation.toObject(message.recommendations[j], options); + object.recommendations[j] = $root.google.cloud.recommender.v1.Recommendation.toObject(message.recommendations[j], options); } if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) object.nextPageToken = message.nextPageToken; @@ -3035,7 +3035,7 @@ /** * Converts this ListRecommendationsResponse to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.ListRecommendationsResponse + * @memberof google.cloud.recommender.v1.ListRecommendationsResponse * @instance * @returns {Object.} JSON object */ @@ -3046,22 +3046,22 @@ return ListRecommendationsResponse; })(); - v1beta1.GetRecommendationRequest = (function() { + v1.GetRecommendationRequest = (function() { /** * Properties of a GetRecommendationRequest. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IGetRecommendationRequest * @property {string|null} [name] GetRecommendationRequest name */ /** * Constructs a new GetRecommendationRequest. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents a GetRecommendationRequest. * @implements IGetRecommendationRequest * @constructor - * @param {google.cloud.recommender.v1beta1.IGetRecommendationRequest=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IGetRecommendationRequest=} [properties] Properties to set */ function GetRecommendationRequest(properties) { if (properties) @@ -3073,7 +3073,7 @@ /** * GetRecommendationRequest name. * @member {string} name - * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @memberof google.cloud.recommender.v1.GetRecommendationRequest * @instance */ GetRecommendationRequest.prototype.name = ""; @@ -3081,21 +3081,21 @@ /** * Creates a new GetRecommendationRequest instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @memberof google.cloud.recommender.v1.GetRecommendationRequest * @static - * @param {google.cloud.recommender.v1beta1.IGetRecommendationRequest=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.GetRecommendationRequest} GetRecommendationRequest instance + * @param {google.cloud.recommender.v1.IGetRecommendationRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.GetRecommendationRequest} GetRecommendationRequest instance */ GetRecommendationRequest.create = function create(properties) { return new GetRecommendationRequest(properties); }; /** - * Encodes the specified GetRecommendationRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.GetRecommendationRequest.verify|verify} messages. + * Encodes the specified GetRecommendationRequest message. Does not implicitly {@link google.cloud.recommender.v1.GetRecommendationRequest.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @memberof google.cloud.recommender.v1.GetRecommendationRequest * @static - * @param {google.cloud.recommender.v1beta1.IGetRecommendationRequest} message GetRecommendationRequest message or plain object to encode + * @param {google.cloud.recommender.v1.IGetRecommendationRequest} message GetRecommendationRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -3108,11 +3108,11 @@ }; /** - * Encodes the specified GetRecommendationRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.GetRecommendationRequest.verify|verify} messages. + * Encodes the specified GetRecommendationRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.GetRecommendationRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @memberof google.cloud.recommender.v1.GetRecommendationRequest * @static - * @param {google.cloud.recommender.v1beta1.IGetRecommendationRequest} message GetRecommendationRequest message or plain object to encode + * @param {google.cloud.recommender.v1.IGetRecommendationRequest} message GetRecommendationRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -3123,18 +3123,18 @@ /** * Decodes a GetRecommendationRequest message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @memberof google.cloud.recommender.v1.GetRecommendationRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.GetRecommendationRequest} GetRecommendationRequest + * @returns {google.cloud.recommender.v1.GetRecommendationRequest} GetRecommendationRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ GetRecommendationRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.GetRecommendationRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.GetRecommendationRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -3152,10 +3152,10 @@ /** * Decodes a GetRecommendationRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @memberof google.cloud.recommender.v1.GetRecommendationRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.GetRecommendationRequest} GetRecommendationRequest + * @returns {google.cloud.recommender.v1.GetRecommendationRequest} GetRecommendationRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -3168,7 +3168,7 @@ /** * Verifies a GetRecommendationRequest message. * @function verify - * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @memberof google.cloud.recommender.v1.GetRecommendationRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -3185,15 +3185,15 @@ /** * Creates a GetRecommendationRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @memberof google.cloud.recommender.v1.GetRecommendationRequest * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.GetRecommendationRequest} GetRecommendationRequest + * @returns {google.cloud.recommender.v1.GetRecommendationRequest} GetRecommendationRequest */ GetRecommendationRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.GetRecommendationRequest) + if (object instanceof $root.google.cloud.recommender.v1.GetRecommendationRequest) return object; - var message = new $root.google.cloud.recommender.v1beta1.GetRecommendationRequest(); + var message = new $root.google.cloud.recommender.v1.GetRecommendationRequest(); if (object.name != null) message.name = String(object.name); return message; @@ -3202,9 +3202,9 @@ /** * Creates a plain object from a GetRecommendationRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @memberof google.cloud.recommender.v1.GetRecommendationRequest * @static - * @param {google.cloud.recommender.v1beta1.GetRecommendationRequest} message GetRecommendationRequest + * @param {google.cloud.recommender.v1.GetRecommendationRequest} message GetRecommendationRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -3222,7 +3222,7 @@ /** * Converts this GetRecommendationRequest to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.GetRecommendationRequest + * @memberof google.cloud.recommender.v1.GetRecommendationRequest * @instance * @returns {Object.} JSON object */ @@ -3233,11 +3233,11 @@ return GetRecommendationRequest; })(); - v1beta1.MarkRecommendationClaimedRequest = (function() { + v1.MarkRecommendationClaimedRequest = (function() { /** * Properties of a MarkRecommendationClaimedRequest. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IMarkRecommendationClaimedRequest * @property {string|null} [name] MarkRecommendationClaimedRequest name * @property {Object.|null} [stateMetadata] MarkRecommendationClaimedRequest stateMetadata @@ -3246,11 +3246,11 @@ /** * Constructs a new MarkRecommendationClaimedRequest. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents a MarkRecommendationClaimedRequest. * @implements IMarkRecommendationClaimedRequest * @constructor - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IMarkRecommendationClaimedRequest=} [properties] Properties to set */ function MarkRecommendationClaimedRequest(properties) { this.stateMetadata = {}; @@ -3263,7 +3263,7 @@ /** * MarkRecommendationClaimedRequest name. * @member {string} name - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest * @instance */ MarkRecommendationClaimedRequest.prototype.name = ""; @@ -3271,7 +3271,7 @@ /** * MarkRecommendationClaimedRequest stateMetadata. * @member {Object.} stateMetadata - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest * @instance */ MarkRecommendationClaimedRequest.prototype.stateMetadata = $util.emptyObject; @@ -3279,7 +3279,7 @@ /** * MarkRecommendationClaimedRequest etag. * @member {string} etag - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest * @instance */ MarkRecommendationClaimedRequest.prototype.etag = ""; @@ -3287,21 +3287,21 @@ /** * Creates a new MarkRecommendationClaimedRequest instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest * @static - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest} MarkRecommendationClaimedRequest instance + * @param {google.cloud.recommender.v1.IMarkRecommendationClaimedRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.MarkRecommendationClaimedRequest} MarkRecommendationClaimedRequest instance */ MarkRecommendationClaimedRequest.create = function create(properties) { return new MarkRecommendationClaimedRequest(properties); }; /** - * Encodes the specified MarkRecommendationClaimedRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest.verify|verify} messages. + * Encodes the specified MarkRecommendationClaimedRequest message. Does not implicitly {@link google.cloud.recommender.v1.MarkRecommendationClaimedRequest.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest * @static - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest} message MarkRecommendationClaimedRequest message or plain object to encode + * @param {google.cloud.recommender.v1.IMarkRecommendationClaimedRequest} message MarkRecommendationClaimedRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -3319,11 +3319,11 @@ }; /** - * Encodes the specified MarkRecommendationClaimedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest.verify|verify} messages. + * Encodes the specified MarkRecommendationClaimedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.MarkRecommendationClaimedRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest * @static - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest} message MarkRecommendationClaimedRequest message or plain object to encode + * @param {google.cloud.recommender.v1.IMarkRecommendationClaimedRequest} message MarkRecommendationClaimedRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -3334,18 +3334,18 @@ /** * Decodes a MarkRecommendationClaimedRequest message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest} MarkRecommendationClaimedRequest + * @returns {google.cloud.recommender.v1.MarkRecommendationClaimedRequest} MarkRecommendationClaimedRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ MarkRecommendationClaimedRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.MarkRecommendationClaimedRequest(), key; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -3374,10 +3374,10 @@ /** * Decodes a MarkRecommendationClaimedRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest} MarkRecommendationClaimedRequest + * @returns {google.cloud.recommender.v1.MarkRecommendationClaimedRequest} MarkRecommendationClaimedRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -3390,7 +3390,7 @@ /** * Verifies a MarkRecommendationClaimedRequest message. * @function verify - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -3418,20 +3418,20 @@ /** * Creates a MarkRecommendationClaimedRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest} MarkRecommendationClaimedRequest + * @returns {google.cloud.recommender.v1.MarkRecommendationClaimedRequest} MarkRecommendationClaimedRequest */ MarkRecommendationClaimedRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest) + if (object instanceof $root.google.cloud.recommender.v1.MarkRecommendationClaimedRequest) return object; - var message = new $root.google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest(); + var message = new $root.google.cloud.recommender.v1.MarkRecommendationClaimedRequest(); if (object.name != null) message.name = String(object.name); if (object.stateMetadata) { if (typeof object.stateMetadata !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest.stateMetadata: object expected"); + throw TypeError(".google.cloud.recommender.v1.MarkRecommendationClaimedRequest.stateMetadata: object expected"); message.stateMetadata = {}; for (var keys = Object.keys(object.stateMetadata), i = 0; i < keys.length; ++i) message.stateMetadata[keys[i]] = String(object.stateMetadata[keys[i]]); @@ -3444,9 +3444,9 @@ /** * Creates a plain object from a MarkRecommendationClaimedRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest * @static - * @param {google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest} message MarkRecommendationClaimedRequest + * @param {google.cloud.recommender.v1.MarkRecommendationClaimedRequest} message MarkRecommendationClaimedRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -3476,7 +3476,7 @@ /** * Converts this MarkRecommendationClaimedRequest to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationClaimedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest * @instance * @returns {Object.} JSON object */ @@ -3487,11 +3487,11 @@ return MarkRecommendationClaimedRequest; })(); - v1beta1.MarkRecommendationSucceededRequest = (function() { + v1.MarkRecommendationSucceededRequest = (function() { /** * Properties of a MarkRecommendationSucceededRequest. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IMarkRecommendationSucceededRequest * @property {string|null} [name] MarkRecommendationSucceededRequest name * @property {Object.|null} [stateMetadata] MarkRecommendationSucceededRequest stateMetadata @@ -3500,11 +3500,11 @@ /** * Constructs a new MarkRecommendationSucceededRequest. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents a MarkRecommendationSucceededRequest. * @implements IMarkRecommendationSucceededRequest * @constructor - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IMarkRecommendationSucceededRequest=} [properties] Properties to set */ function MarkRecommendationSucceededRequest(properties) { this.stateMetadata = {}; @@ -3517,7 +3517,7 @@ /** * MarkRecommendationSucceededRequest name. * @member {string} name - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest * @instance */ MarkRecommendationSucceededRequest.prototype.name = ""; @@ -3525,7 +3525,7 @@ /** * MarkRecommendationSucceededRequest stateMetadata. * @member {Object.} stateMetadata - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest * @instance */ MarkRecommendationSucceededRequest.prototype.stateMetadata = $util.emptyObject; @@ -3533,7 +3533,7 @@ /** * MarkRecommendationSucceededRequest etag. * @member {string} etag - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest * @instance */ MarkRecommendationSucceededRequest.prototype.etag = ""; @@ -3541,21 +3541,21 @@ /** * Creates a new MarkRecommendationSucceededRequest instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest * @static - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest} MarkRecommendationSucceededRequest instance + * @param {google.cloud.recommender.v1.IMarkRecommendationSucceededRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.MarkRecommendationSucceededRequest} MarkRecommendationSucceededRequest instance */ MarkRecommendationSucceededRequest.create = function create(properties) { return new MarkRecommendationSucceededRequest(properties); }; /** - * Encodes the specified MarkRecommendationSucceededRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest.verify|verify} messages. + * Encodes the specified MarkRecommendationSucceededRequest message. Does not implicitly {@link google.cloud.recommender.v1.MarkRecommendationSucceededRequest.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest * @static - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest} message MarkRecommendationSucceededRequest message or plain object to encode + * @param {google.cloud.recommender.v1.IMarkRecommendationSucceededRequest} message MarkRecommendationSucceededRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -3573,11 +3573,11 @@ }; /** - * Encodes the specified MarkRecommendationSucceededRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest.verify|verify} messages. + * Encodes the specified MarkRecommendationSucceededRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.MarkRecommendationSucceededRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest * @static - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest} message MarkRecommendationSucceededRequest message or plain object to encode + * @param {google.cloud.recommender.v1.IMarkRecommendationSucceededRequest} message MarkRecommendationSucceededRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -3588,18 +3588,18 @@ /** * Decodes a MarkRecommendationSucceededRequest message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest} MarkRecommendationSucceededRequest + * @returns {google.cloud.recommender.v1.MarkRecommendationSucceededRequest} MarkRecommendationSucceededRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ MarkRecommendationSucceededRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.MarkRecommendationSucceededRequest(), key; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -3628,10 +3628,10 @@ /** * Decodes a MarkRecommendationSucceededRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest} MarkRecommendationSucceededRequest + * @returns {google.cloud.recommender.v1.MarkRecommendationSucceededRequest} MarkRecommendationSucceededRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -3644,7 +3644,7 @@ /** * Verifies a MarkRecommendationSucceededRequest message. * @function verify - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -3672,20 +3672,20 @@ /** * Creates a MarkRecommendationSucceededRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest} MarkRecommendationSucceededRequest + * @returns {google.cloud.recommender.v1.MarkRecommendationSucceededRequest} MarkRecommendationSucceededRequest */ MarkRecommendationSucceededRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest) + if (object instanceof $root.google.cloud.recommender.v1.MarkRecommendationSucceededRequest) return object; - var message = new $root.google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest(); + var message = new $root.google.cloud.recommender.v1.MarkRecommendationSucceededRequest(); if (object.name != null) message.name = String(object.name); if (object.stateMetadata) { if (typeof object.stateMetadata !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest.stateMetadata: object expected"); + throw TypeError(".google.cloud.recommender.v1.MarkRecommendationSucceededRequest.stateMetadata: object expected"); message.stateMetadata = {}; for (var keys = Object.keys(object.stateMetadata), i = 0; i < keys.length; ++i) message.stateMetadata[keys[i]] = String(object.stateMetadata[keys[i]]); @@ -3698,9 +3698,9 @@ /** * Creates a plain object from a MarkRecommendationSucceededRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest * @static - * @param {google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest} message MarkRecommendationSucceededRequest + * @param {google.cloud.recommender.v1.MarkRecommendationSucceededRequest} message MarkRecommendationSucceededRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -3730,7 +3730,7 @@ /** * Converts this MarkRecommendationSucceededRequest to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationSucceededRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest * @instance * @returns {Object.} JSON object */ @@ -3741,11 +3741,11 @@ return MarkRecommendationSucceededRequest; })(); - v1beta1.MarkRecommendationFailedRequest = (function() { + v1.MarkRecommendationFailedRequest = (function() { /** * Properties of a MarkRecommendationFailedRequest. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @interface IMarkRecommendationFailedRequest * @property {string|null} [name] MarkRecommendationFailedRequest name * @property {Object.|null} [stateMetadata] MarkRecommendationFailedRequest stateMetadata @@ -3754,11 +3754,11 @@ /** * Constructs a new MarkRecommendationFailedRequest. - * @memberof google.cloud.recommender.v1beta1 + * @memberof google.cloud.recommender.v1 * @classdesc Represents a MarkRecommendationFailedRequest. * @implements IMarkRecommendationFailedRequest * @constructor - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IMarkRecommendationFailedRequest=} [properties] Properties to set */ function MarkRecommendationFailedRequest(properties) { this.stateMetadata = {}; @@ -3771,7 +3771,7 @@ /** * MarkRecommendationFailedRequest name. * @member {string} name - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest * @instance */ MarkRecommendationFailedRequest.prototype.name = ""; @@ -3779,7 +3779,7 @@ /** * MarkRecommendationFailedRequest stateMetadata. * @member {Object.} stateMetadata - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest * @instance */ MarkRecommendationFailedRequest.prototype.stateMetadata = $util.emptyObject; @@ -3787,7 +3787,7 @@ /** * MarkRecommendationFailedRequest etag. * @member {string} etag - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest * @instance */ MarkRecommendationFailedRequest.prototype.etag = ""; @@ -3795,21 +3795,21 @@ /** * Creates a new MarkRecommendationFailedRequest instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest * @static - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest=} [properties] Properties to set - * @returns {google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest} MarkRecommendationFailedRequest instance + * @param {google.cloud.recommender.v1.IMarkRecommendationFailedRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.MarkRecommendationFailedRequest} MarkRecommendationFailedRequest instance */ MarkRecommendationFailedRequest.create = function create(properties) { return new MarkRecommendationFailedRequest(properties); }; /** - * Encodes the specified MarkRecommendationFailedRequest message. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest.verify|verify} messages. + * Encodes the specified MarkRecommendationFailedRequest message. Does not implicitly {@link google.cloud.recommender.v1.MarkRecommendationFailedRequest.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest * @static - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest} message MarkRecommendationFailedRequest message or plain object to encode + * @param {google.cloud.recommender.v1.IMarkRecommendationFailedRequest} message MarkRecommendationFailedRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -3827,11 +3827,11 @@ }; /** - * Encodes the specified MarkRecommendationFailedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest.verify|verify} messages. + * Encodes the specified MarkRecommendationFailedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.MarkRecommendationFailedRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest * @static - * @param {google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest} message MarkRecommendationFailedRequest message or plain object to encode + * @param {google.cloud.recommender.v1.IMarkRecommendationFailedRequest} message MarkRecommendationFailedRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ @@ -3842,18 +3842,18 @@ /** * Decodes a MarkRecommendationFailedRequest message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest} MarkRecommendationFailedRequest + * @returns {google.cloud.recommender.v1.MarkRecommendationFailedRequest} MarkRecommendationFailedRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ MarkRecommendationFailedRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.MarkRecommendationFailedRequest(), key; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -3882,10 +3882,10 @@ /** * Decodes a MarkRecommendationFailedRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest} MarkRecommendationFailedRequest + * @returns {google.cloud.recommender.v1.MarkRecommendationFailedRequest} MarkRecommendationFailedRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ @@ -3898,7 +3898,7 @@ /** * Verifies a MarkRecommendationFailedRequest message. * @function verify - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not @@ -3926,20 +3926,20 @@ /** * Creates a MarkRecommendationFailedRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest} MarkRecommendationFailedRequest + * @returns {google.cloud.recommender.v1.MarkRecommendationFailedRequest} MarkRecommendationFailedRequest */ MarkRecommendationFailedRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest) + if (object instanceof $root.google.cloud.recommender.v1.MarkRecommendationFailedRequest) return object; - var message = new $root.google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest(); + var message = new $root.google.cloud.recommender.v1.MarkRecommendationFailedRequest(); if (object.name != null) message.name = String(object.name); if (object.stateMetadata) { if (typeof object.stateMetadata !== "object") - throw TypeError(".google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest.stateMetadata: object expected"); + throw TypeError(".google.cloud.recommender.v1.MarkRecommendationFailedRequest.stateMetadata: object expected"); message.stateMetadata = {}; for (var keys = Object.keys(object.stateMetadata), i = 0; i < keys.length; ++i) message.stateMetadata[keys[i]] = String(object.stateMetadata[keys[i]]); @@ -3952,9 +3952,9 @@ /** * Creates a plain object from a MarkRecommendationFailedRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest * @static - * @param {google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest} message MarkRecommendationFailedRequest + * @param {google.cloud.recommender.v1.MarkRecommendationFailedRequest} message MarkRecommendationFailedRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ @@ -3984,7 +3984,7 @@ /** * Converts this MarkRecommendationFailedRequest to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1beta1.MarkRecommendationFailedRequest + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest * @instance * @returns {Object.} JSON object */ @@ -3995,7 +3995,7 @@ return MarkRecommendationFailedRequest; })(); - return v1beta1; + return v1; })(); return recommender; diff --git a/packages/google-cloud-recommender/protos/protos.json b/packages/google-cloud-recommender/protos/protos.json index 5d651b4ebac..14ab3627e46 100644 --- a/packages/google-cloud-recommender/protos/protos.json +++ b/packages/google-cloud-recommender/protos/protos.json @@ -6,12 +6,12 @@ "nested": { "recommender": { "nested": { - "v1beta1": { + "v1": { "options": { - "csharp_namespace": "Google.Cloud.Recommender.V1Beta1", - "go_package": "google.golang.org/genproto/googleapis/cloud/recommender/v1beta1;recommender", + "csharp_namespace": "Google.Cloud.Recommender.V1", + "go_package": "google.golang.org/genproto/googleapis/cloud/recommender/v1;recommender", "java_multiple_files": true, - "java_package": "com.google.cloud.recommender.v1beta1", + "java_package": "com.google.cloud.recommender.v1", "objc_class_prefix": "CREC", "(google.api.resource_definition).type": "recommender.googleapis.com/Recommender", "(google.api.resource_definition).pattern": "projects/{project}/locations/{location}/recommenders/{recommender}", @@ -227,7 +227,7 @@ "requestType": "ListRecommendationsRequest", "responseType": "ListRecommendationsResponse", "options": { - "(google.api.http).get": "/v1beta1/{parent=projects/*/locations/*/recommenders/*}/recommendations", + "(google.api.http).get": "/v1/{parent=projects/*/locations/*/recommenders/*}/recommendations", "(google.api.method_signature)": "parent,filter" } }, @@ -235,7 +235,7 @@ "requestType": "GetRecommendationRequest", "responseType": "Recommendation", "options": { - "(google.api.http).get": "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}", + "(google.api.http).get": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}", "(google.api.method_signature)": "name" } }, @@ -243,7 +243,7 @@ "requestType": "MarkRecommendationClaimedRequest", "responseType": "Recommendation", "options": { - "(google.api.http).post": "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed", + "(google.api.http).post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed", "(google.api.http).body": "*", "(google.api.method_signature)": "name,state_metadata,etag" } @@ -252,7 +252,7 @@ "requestType": "MarkRecommendationSucceededRequest", "responseType": "Recommendation", "options": { - "(google.api.http).post": "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", + "(google.api.http).post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", "(google.api.http).body": "*", "(google.api.method_signature)": "name,state_metadata,etag" } @@ -261,7 +261,7 @@ "requestType": "MarkRecommendationFailedRequest", "responseType": "Recommendation", "options": { - "(google.api.http).post": "/v1beta1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed", + "(google.api.http).post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed", "(google.api.http).body": "*", "(google.api.method_signature)": "name,state_metadata,etag" } diff --git a/packages/google-cloud-recommender/src/index.ts b/packages/google-cloud-recommender/src/index.ts index f1f340524fc..36a23589c52 100644 --- a/packages/google-cloud-recommender/src/index.ts +++ b/packages/google-cloud-recommender/src/index.ts @@ -16,9 +16,9 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -import * as v1beta1 from './v1beta1'; -const RecommenderClient = v1beta1.RecommenderClient; -export {v1beta1, RecommenderClient}; +import * as v1 from './v1'; +const RecommenderClient = v1.RecommenderClient; +export {v1, RecommenderClient}; // For compatibility with JavaScript libraries we need to provide this default export: // tslint:disable-next-line no-default-export -export default {v1beta1, RecommenderClient}; +export default {v1, RecommenderClient}; diff --git a/packages/google-cloud-recommender/src/v1beta1/index.ts b/packages/google-cloud-recommender/src/v1/index.ts similarity index 100% rename from packages/google-cloud-recommender/src/v1beta1/index.ts rename to packages/google-cloud-recommender/src/v1/index.ts diff --git a/packages/google-cloud-recommender/src/v1beta1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts similarity index 79% rename from packages/google-cloud-recommender/src/v1beta1/recommender_client.ts rename to packages/google-cloud-recommender/src/v1/recommender_client.ts index fc8c98e5c5d..dc88969b785 100644 --- a/packages/google-cloud-recommender/src/v1beta1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -35,12 +35,12 @@ import * as gapicConfig from './recommender_client_config.json'; const version = require('../../../package.json').version; /** - * Provides insights and recommendations for cloud customers for various - * categories like performance optimization, cost savings, reliability, feature - * discovery, etc. Insights and recommendations are generated automatically - * based on analysis of user resources, configuration and monitoring metrics. + * Provides recommendations for cloud customers for various categories like + * performance optimization, cost savings, reliability, feature discovery, etc. + * These recommendations are generated automatically based on analysis of user + * resources, configuration and monitoring metrics. * @class - * @memberof v1beta1 + * @memberof v1 */ export class RecommenderClient { private _descriptors: Descriptors = {page: {}, stream: {}, longrunning: {}}; @@ -166,7 +166,7 @@ export class RecommenderClient { // Put together the default options sent with requests. const defaults = gaxGrpc.constructSettings( - 'google.cloud.recommender.v1beta1.Recommender', + 'google.cloud.recommender.v1.Recommender', gapicConfig as gax.ClientConfig, opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')} @@ -178,14 +178,14 @@ export class RecommenderClient { this._innerApiCalls = {}; // Put together the "service stub" for - // google.cloud.recommender.v1beta1.Recommender. + // google.cloud.recommender.v1.Recommender. this.recommenderStub = gaxGrpc.createStub( opts.fallback ? (protos as protobuf.Root).lookupService( - 'google.cloud.recommender.v1beta1.Recommender' + 'google.cloud.recommender.v1.Recommender' ) : // tslint:disable-next-line no-any - (protos as any).google.cloud.recommender.v1beta1.Recommender, + (protos as any).google.cloud.recommender.v1.Recommender, opts ) as Promise<{[method: string]: Function}>; @@ -281,24 +281,24 @@ export class RecommenderClient { // -- Service calls -- // ------------------- getRecommendation( - request: protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest, + request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest, options?: gax.CallOptions ): Promise< [ - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + protosTypes.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest + | protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest | undefined ), {} | undefined ] >; getRecommendation( - request: protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest, + request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest, options: gax.CallOptions, callback: Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, - | protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest + protosTypes.google.cloud.recommender.v1.IRecommendation, + | protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest | undefined, {} | undefined > @@ -314,30 +314,30 @@ export class RecommenderClient { * @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 [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation}. + * The first element of the array is an object representing [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. * The promise has a method named "cancel" which cancels the ongoing API call. */ getRecommendation( - request: protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest, + request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest, optionsOrCallback?: | gax.CallOptions | Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, - | protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest + protosTypes.google.cloud.recommender.v1.IRecommendation, + | protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest | undefined, {} | undefined >, callback?: Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, - | protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest + protosTypes.google.cloud.recommender.v1.IRecommendation, + | protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest | undefined, {} | undefined > ): Promise< [ - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + protosTypes.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest + | protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest | undefined ), {} | undefined @@ -362,36 +362,36 @@ export class RecommenderClient { return this._innerApiCalls.getRecommendation(request, options, callback); } markRecommendationClaimed( - request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest, + request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, options?: gax.CallOptions ): Promise< [ - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + protosTypes.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest | undefined ), {} | undefined ] >; markRecommendationClaimed( - request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest, + request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, options: gax.CallOptions, callback: Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest + protosTypes.google.cloud.recommender.v1.IRecommendation, + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest | undefined, {} | undefined > ): void; /** - * Marks the Recommendation State as Claimed. Users can use this method to + * Mark the Recommendation State as Claimed. Users can use this method to * indicate to the Recommender API that they are starting to apply the * recommendation themselves. This stops the recommendation content from being - * updated. Associated insights are frozen and placed in the ACCEPTED state. + * updated. * - * MarkRecommendationClaimed can be applied to recommendations in CLAIMED or - * ACTIVE state. + * MarkRecommendationClaimed can be applied to recommendations in CLAIMED, + * SUCCEEDED, FAILED, or ACTIVE state. * * Requires the recommender.*.update IAM permission for the specified * recommender. @@ -410,30 +410,30 @@ export class RecommenderClient { * @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 [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation}. + * The first element of the array is an object representing [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. * The promise has a method named "cancel" which cancels the ongoing API call. */ markRecommendationClaimed( - request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest, + request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, optionsOrCallback?: | gax.CallOptions | Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest + protosTypes.google.cloud.recommender.v1.IRecommendation, + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest | undefined, {} | undefined >, callback?: Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest + protosTypes.google.cloud.recommender.v1.IRecommendation, + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest | undefined, {} | undefined > ): Promise< [ - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + protosTypes.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest | undefined ), {} | undefined @@ -462,34 +462,33 @@ export class RecommenderClient { ); } markRecommendationSucceeded( - request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest, + request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, options?: gax.CallOptions ): Promise< [ - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + protosTypes.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest | undefined ), {} | undefined ] >; markRecommendationSucceeded( - request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest, + request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, options: gax.CallOptions, callback: Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest + protosTypes.google.cloud.recommender.v1.IRecommendation, + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest | undefined, {} | undefined > ): void; /** - * Marks the Recommendation State as Succeeded. Users can use this method to + * Mark the Recommendation State as Succeeded. Users can use this method to * indicate to the Recommender API that they have applied the recommendation * themselves, and the operation was successful. This stops the recommendation - * content from being updated. Associated insights are frozen and placed in - * the ACCEPTED state. + * content from being updated. * * MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, * CLAIMED, SUCCEEDED, or FAILED state. @@ -511,30 +510,30 @@ export class RecommenderClient { * @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 [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation}. + * The first element of the array is an object representing [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. * The promise has a method named "cancel" which cancels the ongoing API call. */ markRecommendationSucceeded( - request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest, + request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, optionsOrCallback?: | gax.CallOptions | Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest + protosTypes.google.cloud.recommender.v1.IRecommendation, + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest | undefined, {} | undefined >, callback?: Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest + protosTypes.google.cloud.recommender.v1.IRecommendation, + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest | undefined, {} | undefined > ): Promise< [ - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + protosTypes.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest | undefined ), {} | undefined @@ -563,34 +562,33 @@ export class RecommenderClient { ); } markRecommendationFailed( - request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest, + request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, options?: gax.CallOptions ): Promise< [ - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + protosTypes.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest | undefined ), {} | undefined ] >; markRecommendationFailed( - request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest, + request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, options: gax.CallOptions, callback: Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest + protosTypes.google.cloud.recommender.v1.IRecommendation, + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest | undefined, {} | undefined > ): void; /** - * Marks the Recommendation State as Failed. Users can use this method to + * Mark the Recommendation State as Failed. Users can use this method to * indicate to the Recommender API that they have applied the recommendation * themselves, and the operation failed. This stops the recommendation content - * from being updated. Associated insights are frozen and placed in the - * ACCEPTED state. + * from being updated. * * MarkRecommendationFailed can be applied to recommendations in ACTIVE, * CLAIMED, SUCCEEDED, or FAILED state. @@ -612,30 +610,30 @@ export class RecommenderClient { * @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 [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation}. + * The first element of the array is an object representing [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. * The promise has a method named "cancel" which cancels the ongoing API call. */ markRecommendationFailed( - request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest, + request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, optionsOrCallback?: | gax.CallOptions | Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest + protosTypes.google.cloud.recommender.v1.IRecommendation, + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest | undefined, {} | undefined >, callback?: Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest + protosTypes.google.cloud.recommender.v1.IRecommendation, + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest | undefined, {} | undefined > ): Promise< [ - protosTypes.google.cloud.recommender.v1beta1.IRecommendation, + protosTypes.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest + | protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest | undefined ), {} | undefined @@ -665,22 +663,22 @@ export class RecommenderClient { } listRecommendations( - request: protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest, + request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest, options?: gax.CallOptions ): Promise< [ - protosTypes.google.cloud.recommender.v1beta1.IRecommendation[], - protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest | null, - protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsResponse + protosTypes.google.cloud.recommender.v1.IRecommendation[], + protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest | null, + protosTypes.google.cloud.recommender.v1.IListRecommendationsResponse ] >; listRecommendations( - request: protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest, + request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest, options: gax.CallOptions, callback: Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation[], - protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest | null, - protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsResponse + protosTypes.google.cloud.recommender.v1.IRecommendation[], + protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest | null, + protosTypes.google.cloud.recommender.v1.IListRecommendationsResponse > ): void; /** @@ -714,40 +712,40 @@ export class RecommenderClient { * @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 [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation}. + * The first element of the array is Array of [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. * The client library support 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. * * When autoPaginate: false is specified through options, the array has three elements. - * The first element is Array of [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation} that corresponds to + * The first element is Array of [Recommendation]{@link google.cloud.recommender.v1.Recommendation} that corresponds to * the one page received from the API server. - * If the second element is not null it contains the request object of type [ListRecommendationsRequest]{@link google.cloud.recommender.v1beta1.ListRecommendationsRequest} + * If the second element is not null it contains the request object of type [ListRecommendationsRequest]{@link google.cloud.recommender.v1.ListRecommendationsRequest} * that can be used to obtain the next page of the results. * If it is null, the next page does not exist. * The third element contains the raw response received from the API server. Its type is - * [ListRecommendationsResponse]{@link google.cloud.recommender.v1beta1.ListRecommendationsResponse}. + * [ListRecommendationsResponse]{@link google.cloud.recommender.v1.ListRecommendationsResponse}. * * The promise has a method named "cancel" which cancels the ongoing API call. */ listRecommendations( - request: protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest, + request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest, optionsOrCallback?: | gax.CallOptions | Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation[], - protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest | null, - protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsResponse + protosTypes.google.cloud.recommender.v1.IRecommendation[], + protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest | null, + protosTypes.google.cloud.recommender.v1.IListRecommendationsResponse >, callback?: Callback< - protosTypes.google.cloud.recommender.v1beta1.IRecommendation[], - protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest | null, - protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsResponse + protosTypes.google.cloud.recommender.v1.IRecommendation[], + protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest | null, + protosTypes.google.cloud.recommender.v1.IListRecommendationsResponse > ): Promise< [ - protosTypes.google.cloud.recommender.v1beta1.IRecommendation[], - protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest | null, - protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsResponse + protosTypes.google.cloud.recommender.v1.IRecommendation[], + protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest | null, + protosTypes.google.cloud.recommender.v1.IListRecommendationsResponse ] > | void { request = request || {}; @@ -809,10 +807,10 @@ export class RecommenderClient { * @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 [Recommendation]{@link google.cloud.recommender.v1beta1.Recommendation} on 'data' event. + * An object stream which emits an object representing [Recommendation]{@link google.cloud.recommender.v1.Recommendation} on 'data' event. */ listRecommendationsStream( - request?: protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest, + request?: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest, options?: gax.CallOptions | {} ): Transform { request = request || {}; diff --git a/packages/google-cloud-recommender/src/v1beta1/recommender_client_config.json b/packages/google-cloud-recommender/src/v1/recommender_client_config.json similarity index 96% rename from packages/google-cloud-recommender/src/v1beta1/recommender_client_config.json rename to packages/google-cloud-recommender/src/v1/recommender_client_config.json index eb64a13d570..8cb8a1d116d 100644 --- a/packages/google-cloud-recommender/src/v1beta1/recommender_client_config.json +++ b/packages/google-cloud-recommender/src/v1/recommender_client_config.json @@ -1,6 +1,6 @@ { "interfaces": { - "google.cloud.recommender.v1beta1.Recommender": { + "google.cloud.recommender.v1.Recommender": { "retry_codes": { "non_idempotent": [], "idempotent": [ diff --git a/packages/google-cloud-recommender/src/v1/recommender_proto_list.json b/packages/google-cloud-recommender/src/v1/recommender_proto_list.json new file mode 100644 index 00000000000..f1045a2bf13 --- /dev/null +++ b/packages/google-cloud-recommender/src/v1/recommender_proto_list.json @@ -0,0 +1,4 @@ +[ + "../../protos/google/cloud/recommender/v1/recommendation.proto", + "../../protos/google/cloud/recommender/v1/recommender_service.proto" +] diff --git a/packages/google-cloud-recommender/src/v1beta1/recommender_proto_list.json b/packages/google-cloud-recommender/src/v1beta1/recommender_proto_list.json deleted file mode 100644 index a4ee7d0492f..00000000000 --- a/packages/google-cloud-recommender/src/v1beta1/recommender_proto_list.json +++ /dev/null @@ -1,4 +0,0 @@ -[ - "../../protos/google/cloud/recommender/v1beta1/recommendation.proto", - "../../protos/google/cloud/recommender/v1beta1/recommender_service.proto" -] diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index f1b690c1cd6..4c4013dbd57 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -1,12 +1,12 @@ { - "updateTime": "2020-01-15T12:28:55.787006Z", + "updateTime": "2020-01-22T23:48:02.573094Z", "sources": [ { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "d99df0d67057a233c711187e0689baa4f8e6333d", - "internalRef": "289709813" + "sha": "8d16f76de065f530d395a4c7eabbf766d6a120fd", + "internalRef": "291008516" } }, { @@ -22,10 +22,225 @@ "client": { "source": "googleapis", "apiName": "recommender", - "apiVersion": "v1beta1", + "apiVersion": "v1", "language": "typescript", "generator": "gapic-generator-typescript" } } + ], + "newFiles": [ + { + "path": ".eslintignore" + }, + { + "path": ".eslintrc.yml" + }, + { + "path": ".github/ISSUE_TEMPLATE/bug_report.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/feature_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/support_request.md" + }, + { + "path": ".github/PULL_REQUEST_TEMPLATE.md" + }, + { + "path": ".github/release-please.yml" + }, + { + "path": ".jsdoc.js" + }, + { + "path": ".kokoro/common.cfg" + }, + { + "path": ".kokoro/continuous/node10/common.cfg" + }, + { + "path": ".kokoro/continuous/node10/docs.cfg" + }, + { + "path": ".kokoro/continuous/node10/lint.cfg" + }, + { + "path": ".kokoro/continuous/node10/samples-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/system-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/test.cfg" + }, + { + "path": ".kokoro/continuous/node12/common.cfg" + }, + { + "path": ".kokoro/continuous/node12/test.cfg" + }, + { + "path": ".kokoro/continuous/node8/common.cfg" + }, + { + "path": ".kokoro/continuous/node8/test.cfg" + }, + { + "path": ".kokoro/docs.sh" + }, + { + "path": ".kokoro/lint.sh" + }, + { + "path": ".kokoro/presubmit/node10/common.cfg" + }, + { + "path": ".kokoro/presubmit/node10/docs.cfg" + }, + { + "path": ".kokoro/presubmit/node10/lint.cfg" + }, + { + "path": ".kokoro/presubmit/node10/samples-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/system-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/test.cfg" + }, + { + "path": ".kokoro/presubmit/node12/common.cfg" + }, + { + "path": ".kokoro/presubmit/node12/test.cfg" + }, + { + "path": ".kokoro/presubmit/node8/common.cfg" + }, + { + "path": ".kokoro/presubmit/node8/test.cfg" + }, + { + "path": ".kokoro/presubmit/windows/common.cfg" + }, + { + "path": ".kokoro/presubmit/windows/test.cfg" + }, + { + "path": ".kokoro/publish.sh" + }, + { + "path": ".kokoro/release/docs.cfg" + }, + { + "path": ".kokoro/release/docs.sh" + }, + { + "path": ".kokoro/release/publish.cfg" + }, + { + "path": ".kokoro/samples-test.sh" + }, + { + "path": ".kokoro/system-test.sh" + }, + { + "path": ".kokoro/test.bat" + }, + { + "path": ".kokoro/test.sh" + }, + { + "path": ".kokoro/trampoline.sh" + }, + { + "path": ".nycrc" + }, + { + "path": ".prettierignore" + }, + { + "path": ".prettierrc" + }, + { + "path": "CODE_OF_CONDUCT.md" + }, + { + "path": "CONTRIBUTING.md" + }, + { + "path": "LICENSE" + }, + { + "path": "README.md" + }, + { + "path": "codecov.yaml" + }, + { + "path": "linkinator.config.json" + }, + { + "path": "protos/google/cloud/common_resources.proto" + }, + { + "path": "protos/google/cloud/recommender/v1/recommendation.proto" + }, + { + "path": "protos/google/cloud/recommender/v1/recommender_service.proto" + }, + { + "path": "protos/protos.d.ts" + }, + { + "path": "protos/protos.js" + }, + { + "path": "protos/protos.json" + }, + { + "path": "renovate.json" + }, + { + "path": "samples/README.md" + }, + { + "path": "src/index.ts" + }, + { + "path": "src/v1/index.ts" + }, + { + "path": "src/v1/recommender_client.ts" + }, + { + "path": "src/v1/recommender_client_config.json" + }, + { + "path": "src/v1/recommender_proto_list.json" + }, + { + "path": "system-test/fixtures/sample/src/index.js" + }, + { + "path": "system-test/fixtures/sample/src/index.ts" + }, + { + "path": "system-test/install.ts" + }, + { + "path": "test/gapic-recommender-v1.ts" + }, + { + "path": "tsconfig.json" + }, + { + "path": "tslint.json" + }, + { + "path": "webpack.config.js" + } ] } \ No newline at end of file diff --git a/packages/google-cloud-recommender/synth.py b/packages/google-cloud-recommender/synth.py index 1bbfd839044..b56fb6fb74e 100644 --- a/packages/google-cloud-recommender/synth.py +++ b/packages/google-cloud-recommender/synth.py @@ -24,7 +24,7 @@ # Run the gapic generator gapic = gcp.GAPICMicrogenerator() name = 'recommender' -versions = ['v1beta1'] +versions = ['v1'] for version in versions: library = gapic.typescript_library( name, diff --git a/packages/google-cloud-recommender/test/gapic-recommender-v1beta1.ts b/packages/google-cloud-recommender/test/gapic-recommender-v1.ts similarity index 81% rename from packages/google-cloud-recommender/test/gapic-recommender-v1beta1.ts rename to packages/google-cloud-recommender/test/gapic-recommender-v1.ts index 67f7fdd4f7c..e0a09ea986a 100644 --- a/packages/google-cloud-recommender/test/gapic-recommender-v1beta1.ts +++ b/packages/google-cloud-recommender/test/gapic-recommender-v1.ts @@ -57,38 +57,38 @@ function mockSimpleGrpcMethod( } }; } -describe('v1beta1.RecommenderClient', () => { +describe('v1.RecommenderClient', () => { it('has servicePath', () => { - const servicePath = recommenderModule.v1beta1.RecommenderClient.servicePath; + const servicePath = recommenderModule.v1.RecommenderClient.servicePath; assert(servicePath); }); it('has apiEndpoint', () => { - const apiEndpoint = recommenderModule.v1beta1.RecommenderClient.apiEndpoint; + const apiEndpoint = recommenderModule.v1.RecommenderClient.apiEndpoint; assert(apiEndpoint); }); it('has port', () => { - const port = recommenderModule.v1beta1.RecommenderClient.port; + const port = recommenderModule.v1.RecommenderClient.port; assert(port); assert(typeof port === 'number'); }); it('should create a client with no option', () => { - const client = new recommenderModule.v1beta1.RecommenderClient(); + const client = new recommenderModule.v1.RecommenderClient(); assert(client); }); it('should create a client with gRPC fallback', () => { - const client = new recommenderModule.v1beta1.RecommenderClient({ + const client = new recommenderModule.v1.RecommenderClient({ fallback: true, }); assert(client); }); describe('getRecommendation', () => { it('invokes getRecommendation without error', done => { - const client = new recommenderModule.v1beta1.RecommenderClient({ + const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); // Mock request - const request: protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest = {}; + const request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest = {}; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -105,12 +105,12 @@ describe('v1beta1.RecommenderClient', () => { }); it('invokes getRecommendation with error', done => { - const client = new recommenderModule.v1beta1.RecommenderClient({ + const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); // Mock request - const request: protosTypes.google.cloud.recommender.v1beta1.IGetRecommendationRequest = {}; + const request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest = {}; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -129,12 +129,12 @@ describe('v1beta1.RecommenderClient', () => { }); describe('markRecommendationClaimed', () => { it('invokes markRecommendationClaimed without error', done => { - const client = new recommenderModule.v1beta1.RecommenderClient({ + const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); // Mock request - const request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest = {}; + const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest = {}; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -151,12 +151,12 @@ describe('v1beta1.RecommenderClient', () => { }); it('invokes markRecommendationClaimed with error', done => { - const client = new recommenderModule.v1beta1.RecommenderClient({ + const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); // Mock request - const request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationClaimedRequest = {}; + const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest = {}; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -178,12 +178,12 @@ describe('v1beta1.RecommenderClient', () => { }); describe('markRecommendationSucceeded', () => { it('invokes markRecommendationSucceeded without error', done => { - const client = new recommenderModule.v1beta1.RecommenderClient({ + const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); // Mock request - const request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest = {}; + const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest = {}; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -200,12 +200,12 @@ describe('v1beta1.RecommenderClient', () => { }); it('invokes markRecommendationSucceeded with error', done => { - const client = new recommenderModule.v1beta1.RecommenderClient({ + const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); // Mock request - const request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationSucceededRequest = {}; + const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest = {}; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -227,12 +227,12 @@ describe('v1beta1.RecommenderClient', () => { }); describe('markRecommendationFailed', () => { it('invokes markRecommendationFailed without error', done => { - const client = new recommenderModule.v1beta1.RecommenderClient({ + const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); // Mock request - const request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest = {}; + const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest = {}; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -249,12 +249,12 @@ describe('v1beta1.RecommenderClient', () => { }); it('invokes markRecommendationFailed with error', done => { - const client = new recommenderModule.v1beta1.RecommenderClient({ + const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); // Mock request - const request: protosTypes.google.cloud.recommender.v1beta1.IMarkRecommendationFailedRequest = {}; + const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest = {}; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -276,12 +276,12 @@ describe('v1beta1.RecommenderClient', () => { }); describe('listRecommendations', () => { it('invokes listRecommendations without error', done => { - const client = new recommenderModule.v1beta1.RecommenderClient({ + const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); // Mock request - const request: protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest = {}; + const request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest = {}; // Mock response const expectedResponse = {}; // Mock Grpc layer @@ -302,12 +302,12 @@ describe('v1beta1.RecommenderClient', () => { }); describe('listRecommendationsStream', () => { it('invokes listRecommendationsStream without error', done => { - const client = new recommenderModule.v1beta1.RecommenderClient({ + const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); // Mock request - const request: protosTypes.google.cloud.recommender.v1beta1.IListRecommendationsRequest = {}; + const request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest = {}; // Mock response const expectedResponse = {}; // Mock Grpc layer From 7eee11f66e3c2b540db0e4360460a8741277237f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2020 16:12:12 -0800 Subject: [PATCH 009/158] chore: release 2.0.0 (#9) --- packages/google-cloud-recommender/CHANGELOG.md | 11 +++++++++++ packages/google-cloud-recommender/package.json | 2 +- .../google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 348e9764f2d..a16dad72854 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [2.0.0](https://www.github.com/googleapis/nodejs-recommender/compare/v1.0.0...v2.0.0) (2020-01-22) + + +### ⚠ BREAKING CHANGES + +* upgrade to v1 client (#8) + +### Features + +* upgrade to v1 client ([#8](https://www.github.com/googleapis/nodejs-recommender/issues/8)) ([d31c634](https://www.github.com/googleapis/nodejs-recommender/commit/d31c634bffe0db521348d81180780d9da223d58d)) + ## 1.0.0 (2020-01-14) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index d75664eb1de..af0d8ce5ab9 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "1.0.0", + "version": "2.0.0", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index c5ba22587b4..d14818a26ca 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^1.0.0" + "@google-cloud/recommender": "^2.0.0" }, "devDependencies": { "c8": "^7.0.0", From fd25f14117d2458837cda8967d1b1ee0b5716422 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 23 Jan 2020 16:26:23 -0800 Subject: [PATCH 010/158] chore: clear synth.metadata --- .../google-cloud-recommender/synth.metadata | 246 ------------------ 1 file changed, 246 deletions(-) delete mode 100644 packages/google-cloud-recommender/synth.metadata diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata deleted file mode 100644 index 4c4013dbd57..00000000000 --- a/packages/google-cloud-recommender/synth.metadata +++ /dev/null @@ -1,246 +0,0 @@ -{ - "updateTime": "2020-01-22T23:48:02.573094Z", - "sources": [ - { - "git": { - "name": "googleapis", - "remote": "https://github.com/googleapis/googleapis.git", - "sha": "8d16f76de065f530d395a4c7eabbf766d6a120fd", - "internalRef": "291008516" - } - }, - { - "template": { - "name": "node_library", - "origin": "synthtool.gcp", - "version": "2019.10.17" - } - } - ], - "destinations": [ - { - "client": { - "source": "googleapis", - "apiName": "recommender", - "apiVersion": "v1", - "language": "typescript", - "generator": "gapic-generator-typescript" - } - } - ], - "newFiles": [ - { - "path": ".eslintignore" - }, - { - "path": ".eslintrc.yml" - }, - { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/support_request.md" - }, - { - "path": ".github/PULL_REQUEST_TEMPLATE.md" - }, - { - "path": ".github/release-please.yml" - }, - { - "path": ".jsdoc.js" - }, - { - "path": ".kokoro/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/docs.cfg" - }, - { - "path": ".kokoro/continuous/node10/lint.cfg" - }, - { - "path": ".kokoro/continuous/node10/samples-test.cfg" - }, - { - "path": ".kokoro/continuous/node10/system-test.cfg" - }, - { - "path": ".kokoro/continuous/node10/test.cfg" - }, - { - "path": ".kokoro/continuous/node12/common.cfg" - }, - { - "path": ".kokoro/continuous/node12/test.cfg" - }, - { - "path": ".kokoro/continuous/node8/common.cfg" - }, - { - "path": ".kokoro/continuous/node8/test.cfg" - }, - { - "path": ".kokoro/docs.sh" - }, - { - "path": ".kokoro/lint.sh" - }, - { - "path": ".kokoro/presubmit/node10/common.cfg" - }, - { - "path": ".kokoro/presubmit/node10/docs.cfg" - }, - { - "path": ".kokoro/presubmit/node10/lint.cfg" - }, - { - "path": ".kokoro/presubmit/node10/samples-test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/system-test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/test.cfg" - }, - { - "path": ".kokoro/presubmit/node12/common.cfg" - }, - { - "path": ".kokoro/presubmit/node12/test.cfg" - }, - { - "path": ".kokoro/presubmit/node8/common.cfg" - }, - { - "path": ".kokoro/presubmit/node8/test.cfg" - }, - { - "path": ".kokoro/presubmit/windows/common.cfg" - }, - { - "path": ".kokoro/presubmit/windows/test.cfg" - }, - { - "path": ".kokoro/publish.sh" - }, - { - "path": ".kokoro/release/docs.cfg" - }, - { - "path": ".kokoro/release/docs.sh" - }, - { - "path": ".kokoro/release/publish.cfg" - }, - { - "path": ".kokoro/samples-test.sh" - }, - { - "path": ".kokoro/system-test.sh" - }, - { - "path": ".kokoro/test.bat" - }, - { - "path": ".kokoro/test.sh" - }, - { - "path": ".kokoro/trampoline.sh" - }, - { - "path": ".nycrc" - }, - { - "path": ".prettierignore" - }, - { - "path": ".prettierrc" - }, - { - "path": "CODE_OF_CONDUCT.md" - }, - { - "path": "CONTRIBUTING.md" - }, - { - "path": "LICENSE" - }, - { - "path": "README.md" - }, - { - "path": "codecov.yaml" - }, - { - "path": "linkinator.config.json" - }, - { - "path": "protos/google/cloud/common_resources.proto" - }, - { - "path": "protos/google/cloud/recommender/v1/recommendation.proto" - }, - { - "path": "protos/google/cloud/recommender/v1/recommender_service.proto" - }, - { - "path": "protos/protos.d.ts" - }, - { - "path": "protos/protos.js" - }, - { - "path": "protos/protos.json" - }, - { - "path": "renovate.json" - }, - { - "path": "samples/README.md" - }, - { - "path": "src/index.ts" - }, - { - "path": "src/v1/index.ts" - }, - { - "path": "src/v1/recommender_client.ts" - }, - { - "path": "src/v1/recommender_client_config.json" - }, - { - "path": "src/v1/recommender_proto_list.json" - }, - { - "path": "system-test/fixtures/sample/src/index.js" - }, - { - "path": "system-test/fixtures/sample/src/index.ts" - }, - { - "path": "system-test/install.ts" - }, - { - "path": "test/gapic-recommender-v1.ts" - }, - { - "path": "tsconfig.json" - }, - { - "path": "tslint.json" - }, - { - "path": "webpack.config.js" - } - ] -} \ No newline at end of file From a924e2a0d04c804dc7bd1452a6f5e277d3de7e7f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 27 Jan 2020 16:17:26 -0800 Subject: [PATCH 011/158] chore: regenerate synth.metadata (#12) --- .../google-cloud-recommender/synth.metadata | 273 ++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 packages/google-cloud-recommender/synth.metadata diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata new file mode 100644 index 00000000000..179f226f6fd --- /dev/null +++ b/packages/google-cloud-recommender/synth.metadata @@ -0,0 +1,273 @@ +{ + "updateTime": "2020-01-24T12:29:59.385926Z", + "sources": [ + { + "git": { + "name": "googleapis", + "remote": "https://github.com/googleapis/googleapis.git", + "sha": "e26cab8afd19d396b929039dac5d874cf0b5336c", + "internalRef": "291240093" + } + }, + { + "template": { + "name": "node_library", + "origin": "synthtool.gcp", + "version": "2019.10.17" + } + } + ], + "destinations": [ + { + "client": { + "source": "googleapis", + "apiName": "recommender", + "apiVersion": "v1", + "language": "typescript", + "generator": "gapic-generator-typescript" + } + } + ], + "newFiles": [ + { + "path": ".eslintignore" + }, + { + "path": ".eslintrc.yml" + }, + { + "path": ".github/ISSUE_TEMPLATE/bug_report.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/feature_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/support_request.md" + }, + { + "path": ".github/PULL_REQUEST_TEMPLATE.md" + }, + { + "path": ".github/publish.yml" + }, + { + "path": ".github/release-please.yml" + }, + { + "path": ".gitignore" + }, + { + "path": ".jsdoc.js" + }, + { + "path": ".kokoro/common.cfg" + }, + { + "path": ".kokoro/continuous/node10/common.cfg" + }, + { + "path": ".kokoro/continuous/node10/docs.cfg" + }, + { + "path": ".kokoro/continuous/node10/lint.cfg" + }, + { + "path": ".kokoro/continuous/node10/samples-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/system-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/test.cfg" + }, + { + "path": ".kokoro/continuous/node12/common.cfg" + }, + { + "path": ".kokoro/continuous/node12/test.cfg" + }, + { + "path": ".kokoro/continuous/node8/common.cfg" + }, + { + "path": ".kokoro/continuous/node8/test.cfg" + }, + { + "path": ".kokoro/docs.sh" + }, + { + "path": ".kokoro/lint.sh" + }, + { + "path": ".kokoro/presubmit/node10/common.cfg" + }, + { + "path": ".kokoro/presubmit/node10/docs.cfg" + }, + { + "path": ".kokoro/presubmit/node10/lint.cfg" + }, + { + "path": ".kokoro/presubmit/node10/samples-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/system-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/test.cfg" + }, + { + "path": ".kokoro/presubmit/node12/common.cfg" + }, + { + "path": ".kokoro/presubmit/node12/test.cfg" + }, + { + "path": ".kokoro/presubmit/node8/common.cfg" + }, + { + "path": ".kokoro/presubmit/node8/test.cfg" + }, + { + "path": ".kokoro/presubmit/windows/common.cfg" + }, + { + "path": ".kokoro/presubmit/windows/test.cfg" + }, + { + "path": ".kokoro/publish.sh" + }, + { + "path": ".kokoro/release/docs.cfg" + }, + { + "path": ".kokoro/release/docs.sh" + }, + { + "path": ".kokoro/release/publish.cfg" + }, + { + "path": ".kokoro/samples-test.sh" + }, + { + "path": ".kokoro/system-test.sh" + }, + { + "path": ".kokoro/test.bat" + }, + { + "path": ".kokoro/test.sh" + }, + { + "path": ".kokoro/trampoline.sh" + }, + { + "path": ".nycrc" + }, + { + "path": ".prettierignore" + }, + { + "path": ".prettierrc" + }, + { + "path": ".repo-metadata.json" + }, + { + "path": "CHANGELOG.md" + }, + { + "path": "CODE_OF_CONDUCT.md" + }, + { + "path": "CONTRIBUTING.md" + }, + { + "path": "LICENSE" + }, + { + "path": "README.md" + }, + { + "path": "codecov.yaml" + }, + { + "path": "linkinator.config.json" + }, + { + "path": "package.json" + }, + { + "path": "protos/google/cloud/common_resources.proto" + }, + { + "path": "protos/google/cloud/recommender/v1/recommendation.proto" + }, + { + "path": "protos/google/cloud/recommender/v1/recommender_service.proto" + }, + { + "path": "protos/protos.d.ts" + }, + { + "path": "protos/protos.js" + }, + { + "path": "protos/protos.json" + }, + { + "path": "renovate.json" + }, + { + "path": "samples/README.md" + }, + { + "path": "samples/package.json" + }, + { + "path": "samples/quickstart.js" + }, + { + "path": "samples/test/quickstart.js" + }, + { + "path": "src/index.ts" + }, + { + "path": "src/v1/index.ts" + }, + { + "path": "src/v1/recommender_client.ts" + }, + { + "path": "src/v1/recommender_client_config.json" + }, + { + "path": "src/v1/recommender_proto_list.json" + }, + { + "path": "synth.py" + }, + { + "path": "system-test/fixtures/sample/src/index.js" + }, + { + "path": "system-test/fixtures/sample/src/index.ts" + }, + { + "path": "system-test/install.ts" + }, + { + "path": "test/gapic-recommender-v1.ts" + }, + { + "path": "tsconfig.json" + }, + { + "path": "tslint.json" + }, + { + "path": "webpack.config.js" + } + ] +} \ No newline at end of file From 95fdba49a04ee8657c23579b37ccd2d8212eea75 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 28 Jan 2020 14:29:50 -0800 Subject: [PATCH 012/158] fix: enum, bytes, and Long types now accept strings --- .../protos/protos.d.ts | 64 +++++++++---------- .../google-cloud-recommender/synth.metadata | 10 ++- 2 files changed, 39 insertions(+), 35 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index 0bf74bd5b59..e113116134a 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -684,7 +684,7 @@ export namespace google { interface IImpact { /** Impact category */ - category?: (google.cloud.recommender.v1.Impact.Category|null); + category?: (google.cloud.recommender.v1.Impact.Category|keyof typeof google.cloud.recommender.v1.Impact.Category|null); /** Impact costProjection */ costProjection?: (google.cloud.recommender.v1.ICostProjection|null); @@ -700,7 +700,7 @@ export namespace google { constructor(properties?: google.cloud.recommender.v1.IImpact); /** Impact category. */ - public category: google.cloud.recommender.v1.Impact.Category; + public category: (google.cloud.recommender.v1.Impact.Category|keyof typeof google.cloud.recommender.v1.Impact.Category); /** Impact costProjection. */ public costProjection?: (google.cloud.recommender.v1.ICostProjection|null); @@ -795,7 +795,7 @@ export namespace google { interface IRecommendationStateInfo { /** RecommendationStateInfo state */ - state?: (google.cloud.recommender.v1.RecommendationStateInfo.State|null); + state?: (google.cloud.recommender.v1.RecommendationStateInfo.State|keyof typeof google.cloud.recommender.v1.RecommendationStateInfo.State|null); /** RecommendationStateInfo stateMetadata */ stateMetadata?: ({ [k: string]: string }|null); @@ -811,7 +811,7 @@ export namespace google { constructor(properties?: google.cloud.recommender.v1.IRecommendationStateInfo); /** RecommendationStateInfo state. */ - public state: google.cloud.recommender.v1.RecommendationStateInfo.State; + public state: (google.cloud.recommender.v1.RecommendationStateInfo.State|keyof typeof google.cloud.recommender.v1.RecommendationStateInfo.State); /** RecommendationStateInfo stateMetadata. */ public stateMetadata: { [k: string]: string }; @@ -1648,7 +1648,7 @@ export namespace google { nameField?: (string|null); /** ResourceDescriptor history */ - history?: (google.api.ResourceDescriptor.History|null); + history?: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History|null); /** ResourceDescriptor plural */ plural?: (string|null); @@ -1676,7 +1676,7 @@ export namespace google { public nameField: string; /** ResourceDescriptor history. */ - public history: google.api.ResourceDescriptor.History; + public history: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History); /** ResourceDescriptor plural. */ public plural: string; @@ -2905,10 +2905,10 @@ export namespace google { number?: (number|null); /** FieldDescriptorProto label */ - label?: (google.protobuf.FieldDescriptorProto.Label|null); + label?: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label|null); /** FieldDescriptorProto type */ - type?: (google.protobuf.FieldDescriptorProto.Type|null); + type?: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type|null); /** FieldDescriptorProto typeName */ typeName?: (string|null); @@ -2945,10 +2945,10 @@ export namespace google { public number: number; /** FieldDescriptorProto label. */ - public label: google.protobuf.FieldDescriptorProto.Label; + public label: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label); /** FieldDescriptorProto type. */ - public type: google.protobuf.FieldDescriptorProto.Type; + public type: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type); /** FieldDescriptorProto typeName. */ public typeName: string; @@ -3723,7 +3723,7 @@ export namespace google { javaStringCheckUtf8?: (boolean|null); /** FileOptions optimizeFor */ - optimizeFor?: (google.protobuf.FileOptions.OptimizeMode|null); + optimizeFor?: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode|null); /** FileOptions goPackage */ goPackage?: (string|null); @@ -3799,7 +3799,7 @@ export namespace google { public javaStringCheckUtf8: boolean; /** FileOptions optimizeFor. */ - public optimizeFor: google.protobuf.FileOptions.OptimizeMode; + public optimizeFor: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode); /** FileOptions goPackage. */ public goPackage: string; @@ -4048,13 +4048,13 @@ export namespace google { interface IFieldOptions { /** FieldOptions ctype */ - ctype?: (google.protobuf.FieldOptions.CType|null); + ctype?: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType|null); /** FieldOptions packed */ packed?: (boolean|null); /** FieldOptions jstype */ - jstype?: (google.protobuf.FieldOptions.JSType|null); + jstype?: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType|null); /** FieldOptions lazy */ lazy?: (boolean|null); @@ -4085,13 +4085,13 @@ export namespace google { constructor(properties?: google.protobuf.IFieldOptions); /** FieldOptions ctype. */ - public ctype: google.protobuf.FieldOptions.CType; + public ctype: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType); /** FieldOptions packed. */ public packed: boolean; /** FieldOptions jstype. */ - public jstype: google.protobuf.FieldOptions.JSType; + public jstype: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType); /** FieldOptions lazy. */ public lazy: boolean; @@ -4590,7 +4590,7 @@ export namespace google { deprecated?: (boolean|null); /** MethodOptions idempotencyLevel */ - idempotencyLevel?: (google.protobuf.MethodOptions.IdempotencyLevel|null); + idempotencyLevel?: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel|null); /** MethodOptions uninterpretedOption */ uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); @@ -4615,7 +4615,7 @@ export namespace google { public deprecated: boolean; /** MethodOptions idempotencyLevel. */ - public idempotencyLevel: google.protobuf.MethodOptions.IdempotencyLevel; + public idempotencyLevel: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel); /** MethodOptions uninterpretedOption. */ public uninterpretedOption: google.protobuf.IUninterpretedOption[]; @@ -4711,16 +4711,16 @@ export namespace google { identifierValue?: (string|null); /** UninterpretedOption positiveIntValue */ - positiveIntValue?: (number|Long|null); + positiveIntValue?: (number|Long|string|null); /** UninterpretedOption negativeIntValue */ - negativeIntValue?: (number|Long|null); + negativeIntValue?: (number|Long|string|null); /** UninterpretedOption doubleValue */ doubleValue?: (number|null); /** UninterpretedOption stringValue */ - stringValue?: (Uint8Array|null); + stringValue?: (Uint8Array|string|null); /** UninterpretedOption aggregateValue */ aggregateValue?: (string|null); @@ -4742,16 +4742,16 @@ export namespace google { public identifierValue: string; /** UninterpretedOption positiveIntValue. */ - public positiveIntValue: (number|Long); + public positiveIntValue: (number|Long|string); /** UninterpretedOption negativeIntValue. */ - public negativeIntValue: (number|Long); + public negativeIntValue: (number|Long|string); /** UninterpretedOption doubleValue. */ public doubleValue: number; /** UninterpretedOption stringValue. */ - public stringValue: Uint8Array; + public stringValue: (Uint8Array|string); /** UninterpretedOption aggregateValue. */ public aggregateValue: string; @@ -5338,7 +5338,7 @@ export namespace google { interface IDuration { /** Duration seconds */ - seconds?: (number|Long|null); + seconds?: (number|Long|string|null); /** Duration nanos */ nanos?: (number|null); @@ -5354,7 +5354,7 @@ export namespace google { constructor(properties?: google.protobuf.IDuration); /** Duration seconds. */ - public seconds: (number|Long); + public seconds: (number|Long|string); /** Duration nanos. */ public nanos: number; @@ -5524,7 +5524,7 @@ export namespace google { interface IValue { /** Value nullValue */ - nullValue?: (google.protobuf.NullValue|null); + nullValue?: (google.protobuf.NullValue|keyof typeof google.protobuf.NullValue|null); /** Value numberValue */ numberValue?: (number|null); @@ -5552,7 +5552,7 @@ export namespace google { constructor(properties?: google.protobuf.IValue); /** Value nullValue. */ - public nullValue: google.protobuf.NullValue; + public nullValue: (google.protobuf.NullValue|keyof typeof google.protobuf.NullValue); /** Value numberValue. */ public numberValue: number; @@ -5742,7 +5742,7 @@ export namespace google { interface ITimestamp { /** Timestamp seconds */ - seconds?: (number|Long|null); + seconds?: (number|Long|string|null); /** Timestamp nanos */ nanos?: (number|null); @@ -5758,7 +5758,7 @@ export namespace google { constructor(properties?: google.protobuf.ITimestamp); /** Timestamp seconds. */ - public seconds: (number|Long); + public seconds: (number|Long|string); /** Timestamp nanos. */ public nanos: number; @@ -5845,7 +5845,7 @@ export namespace google { currencyCode?: (string|null); /** Money units */ - units?: (number|Long|null); + units?: (number|Long|string|null); /** Money nanos */ nanos?: (number|null); @@ -5864,7 +5864,7 @@ export namespace google { public currencyCode: string; /** Money units. */ - public units: (number|Long); + public units: (number|Long|string); /** Money nanos. */ public nanos: number; diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 179f226f6fd..77b0cec83d4 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -1,12 +1,13 @@ { - "updateTime": "2020-01-24T12:29:59.385926Z", + "updateTime": "2020-01-28T12:30:37.861491Z", "sources": [ { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "e26cab8afd19d396b929039dac5d874cf0b5336c", - "internalRef": "291240093" + "sha": "8e981acfd9b97ea2f312f11bbaa7b6c16e412dea", + "internalRef": "291821782", + "log": "8e981acfd9b97ea2f312f11bbaa7b6c16e412dea\nBeta launch for PersonDetection and FaceDetection features.\n\nPiperOrigin-RevId: 291821782\n\n994e067fae3b21e195f7da932b08fff806d70b5d\nasset: add annotations to v1p2beta1\n\nPiperOrigin-RevId: 291815259\n\n244e1d2c89346ca2e0701b39e65552330d68545a\nAdd Playable Locations service\n\nPiperOrigin-RevId: 291806349\n\n909f8f67963daf45dd88d020877fb9029b76788d\nasset: add annotations to v1beta2\n\nPiperOrigin-RevId: 291805301\n\n3c39a1d6e23c1ef63c7fba4019c25e76c40dfe19\nKMS: add file-level message for CryptoKeyPath, it is defined in gapic yaml but not\nin proto files.\n\nPiperOrigin-RevId: 291420695\n\nc6f3f350b8387f8d1b85ed4506f30187ebaaddc3\ncontaineranalysis: update v1beta1 and bazel build with annotations\n\nPiperOrigin-RevId: 291401900\n\n92887d74b44e4e636252b7b8477d0d2570cd82db\nfix: fix the location of grpc config file.\n\nPiperOrigin-RevId: 291396015\n\n" } }, { @@ -245,6 +246,9 @@ { "path": "src/v1/recommender_proto_list.json" }, + { + "path": "synth.metadata" + }, { "path": "synth.py" }, From 54dd99a8972d70c0f914a778e76fe0e0d2a2c82b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 30 Jan 2020 16:34:23 +0100 Subject: [PATCH 013/158] chore(deps): update dependency @types/mocha to v7 --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index af0d8ce5ab9..33d9349e8d5 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -28,7 +28,7 @@ "google-gax": "^1.12.0" }, "devDependencies": { - "@types/mocha": "^5.2.5", + "@types/mocha": "^7.0.0", "@types/node": "^12.0.0", "c8": "^7.0.0", "eslint": "^6.8.0", From 62b01738a80c9bcb2f8a2d87e0ad872d8a6ed762 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 30 Jan 2020 15:23:01 -0800 Subject: [PATCH 014/158] chore: release 2.0.1 (#14) --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index a16dad72854..564621f5348 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.0.1](https://www.github.com/googleapis/nodejs-recommender/compare/v2.0.0...v2.0.1) (2020-01-28) + + +### Bug Fixes + +* enum, bytes, and Long types now accept strings ([3934bd8](https://www.github.com/googleapis/nodejs-recommender/commit/3934bd8d2aaac6985adb40b0f74b83448015008e)) + ## [2.0.0](https://www.github.com/googleapis/nodejs-recommender/compare/v1.0.0...v2.0.0) (2020-01-22) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 33d9349e8d5..2deae8e5eb6 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "2.0.0", + "version": "2.0.1", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index d14818a26ca..20a3e246e97 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^2.0.0" + "@google-cloud/recommender": "^2.0.1" }, "devDependencies": { "c8": "^7.0.0", From fde7fb650a8a48418fdaef9642a70df6152c89d1 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 31 Jan 2020 17:22:48 -0800 Subject: [PATCH 015/158] chore: skip img.shields.io in docs test --- packages/google-cloud-recommender/linkinator.config.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/linkinator.config.json b/packages/google-cloud-recommender/linkinator.config.json index d780d6bfff5..b555215ca02 100644 --- a/packages/google-cloud-recommender/linkinator.config.json +++ b/packages/google-cloud-recommender/linkinator.config.json @@ -2,6 +2,7 @@ "recurse": true, "skip": [ "https://codecov.io/gh/googleapis/", - "www.googleapis.com" + "www.googleapis.com", + "img.shields.io" ] } From 3a119afc5d4aee6b4f58cf980aa127d2494314ea Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 31 Jan 2020 18:49:34 -0800 Subject: [PATCH 016/158] test: modernize mocha config (#16) --- packages/google-cloud-recommender/.mocharc.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/google-cloud-recommender/.mocharc.json diff --git a/packages/google-cloud-recommender/.mocharc.json b/packages/google-cloud-recommender/.mocharc.json new file mode 100644 index 00000000000..670c5e2c24b --- /dev/null +++ b/packages/google-cloud-recommender/.mocharc.json @@ -0,0 +1,5 @@ +{ + "enable-source-maps": true, + "throw-deprecation": true, + "timeout": 10000 +} From 25f51e954baebcc5dd5b560eb4043a6f24b6288d Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 7 Feb 2020 10:30:16 -0800 Subject: [PATCH 017/158] fix: pass x-goog-request-params header for streaming calls --- packages/google-cloud-recommender/.gitignore | 1 - .../src/v1/recommender_client.ts | 120 +++++---- .../google-cloud-recommender/synth.metadata | 255 +----------------- .../test/gapic-recommender-v1.ts | 14 +- 4 files changed, 81 insertions(+), 309 deletions(-) diff --git a/packages/google-cloud-recommender/.gitignore b/packages/google-cloud-recommender/.gitignore index e1a76628b30..5d32b23782f 100644 --- a/packages/google-cloud-recommender/.gitignore +++ b/packages/google-cloud-recommender/.gitignore @@ -12,4 +12,3 @@ system-test/*key.json .DS_Store package-lock.json __pycache__ - diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index dc88969b785..7ea50e6bb65 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -145,12 +145,12 @@ export class RecommenderClient { // identifiers to uniquely identify resources within the API. // Create useful helper objects for these. this._pathTemplates = { - recommenderPathTemplate: new gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/recommenders/{recommender}' - ), recommendationPathTemplate: new gaxModule.PathTemplate( 'projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' ), + recommenderPathTemplate: new gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/recommenders/{recommender}' + ), }; // Some of the methods on this service return "paged" results, @@ -811,9 +811,17 @@ export class RecommenderClient { */ listRecommendationsStream( request?: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest, - options?: gax.CallOptions | {} + options?: gax.CallOptions ): Transform { request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + parent: request.parent || '', + }); const callSettings = new gax.CallSettings(options); return this._descriptors.page.listRecommendations.createStream( this._innerApiCalls.listRecommendations as gax.GaxCall, @@ -825,58 +833,6 @@ export class RecommenderClient { // -- Path templates -- // -------------------- - /** - * Return a fully-qualified recommender resource name string. - * - * @param {string} project - * @param {string} location - * @param {string} recommender - * @returns {string} Resource name string. - */ - recommenderPath(project: string, location: string, recommender: string) { - return this._pathTemplates.recommenderPathTemplate.render({ - project, - location, - recommender, - }); - } - - /** - * Parse the project from Recommender resource. - * - * @param {string} recommenderName - * A fully-qualified path representing Recommender resource. - * @returns {string} A string representing the project. - */ - matchProjectFromRecommenderName(recommenderName: string) { - return this._pathTemplates.recommenderPathTemplate.match(recommenderName) - .project; - } - - /** - * Parse the location from Recommender resource. - * - * @param {string} recommenderName - * A fully-qualified path representing Recommender resource. - * @returns {string} A string representing the location. - */ - matchLocationFromRecommenderName(recommenderName: string) { - return this._pathTemplates.recommenderPathTemplate.match(recommenderName) - .location; - } - - /** - * Parse the recommender from Recommender resource. - * - * @param {string} recommenderName - * A fully-qualified path representing Recommender resource. - * @returns {string} A string representing the recommender. - */ - matchRecommenderFromRecommenderName(recommenderName: string) { - return this._pathTemplates.recommenderPathTemplate.match(recommenderName) - .recommender; - } - /** * Return a fully-qualified recommendation resource name string. * @@ -952,6 +908,58 @@ export class RecommenderClient { ).recommendation; } + /** + * Return a fully-qualified recommender resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} recommender + * @returns {string} Resource name string. + */ + recommenderPath(project: string, location: string, recommender: string) { + return this._pathTemplates.recommenderPathTemplate.render({ + project, + location, + recommender, + }); + } + + /** + * Parse the project from Recommender resource. + * + * @param {string} recommenderName + * A fully-qualified path representing Recommender resource. + * @returns {string} A string representing the project. + */ + matchProjectFromRecommenderName(recommenderName: string) { + return this._pathTemplates.recommenderPathTemplate.match(recommenderName) + .project; + } + + /** + * Parse the location from Recommender resource. + * + * @param {string} recommenderName + * A fully-qualified path representing Recommender resource. + * @returns {string} A string representing the location. + */ + matchLocationFromRecommenderName(recommenderName: string) { + return this._pathTemplates.recommenderPathTemplate.match(recommenderName) + .location; + } + + /** + * Parse the recommender from Recommender resource. + * + * @param {string} recommenderName + * A fully-qualified path representing Recommender resource. + * @returns {string} A string representing the recommender. + */ + matchRecommenderFromRecommenderName(recommenderName: string) { + return this._pathTemplates.recommenderPathTemplate.match(recommenderName) + .recommender; + } + /** * Terminate the GRPC channel and close the client. * diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 77b0cec83d4..c2fad319ebf 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -1,20 +1,20 @@ { - "updateTime": "2020-01-28T12:30:37.861491Z", + "updateTime": "2020-02-07T12:32:44.814569Z", "sources": [ { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "8e981acfd9b97ea2f312f11bbaa7b6c16e412dea", - "internalRef": "291821782", - "log": "8e981acfd9b97ea2f312f11bbaa7b6c16e412dea\nBeta launch for PersonDetection and FaceDetection features.\n\nPiperOrigin-RevId: 291821782\n\n994e067fae3b21e195f7da932b08fff806d70b5d\nasset: add annotations to v1p2beta1\n\nPiperOrigin-RevId: 291815259\n\n244e1d2c89346ca2e0701b39e65552330d68545a\nAdd Playable Locations service\n\nPiperOrigin-RevId: 291806349\n\n909f8f67963daf45dd88d020877fb9029b76788d\nasset: add annotations to v1beta2\n\nPiperOrigin-RevId: 291805301\n\n3c39a1d6e23c1ef63c7fba4019c25e76c40dfe19\nKMS: add file-level message for CryptoKeyPath, it is defined in gapic yaml but not\nin proto files.\n\nPiperOrigin-RevId: 291420695\n\nc6f3f350b8387f8d1b85ed4506f30187ebaaddc3\ncontaineranalysis: update v1beta1 and bazel build with annotations\n\nPiperOrigin-RevId: 291401900\n\n92887d74b44e4e636252b7b8477d0d2570cd82db\nfix: fix the location of grpc config file.\n\nPiperOrigin-RevId: 291396015\n\n" + "sha": "e46f761cd6ec15a9e3d5ed4ff321a4bcba8e8585", + "internalRef": "293710856", + "log": "e46f761cd6ec15a9e3d5ed4ff321a4bcba8e8585\nGenerate the Bazel build file for recommendengine public api\n\nPiperOrigin-RevId: 293710856\n\n68477017c4173c98addac0373950c6aa9d7b375f\nMake `language_code` optional for UpdateIntentRequest and BatchUpdateIntentsRequest.\n\nThe comments and proto annotations describe this parameter as optional.\n\nPiperOrigin-RevId: 293703548\n\n16f823f578bca4e845a19b88bb9bc5870ea71ab2\nAdd BUILD.bazel files for managedidentities API\n\nPiperOrigin-RevId: 293698246\n\n2f53fd8178c9a9de4ad10fae8dd17a7ba36133f2\nAdd v1p1beta1 config file\n\nPiperOrigin-RevId: 293696729\n\n052b274138fce2be80f97b6dcb83ab343c7c8812\nAdd source field for user event and add field behavior annotations\n\nPiperOrigin-RevId: 293693115\n\n1e89732b2d69151b1b3418fff3d4cc0434f0dded\ndatacatalog: v1beta1 add three new RPCs to gapic v1beta1 config\n\nPiperOrigin-RevId: 293692823\n\n9c8bd09bbdc7c4160a44f1fbab279b73cd7a2337\nchange the name of AccessApproval service to AccessApprovalAdmin\n\nPiperOrigin-RevId: 293690934\n\n2e23b8fbc45f5d9e200572ca662fe1271bcd6760\nAdd ListEntryGroups method, add http bindings to support entry group tagging, and update some comments.\n\nPiperOrigin-RevId: 293666452\n\n0275e38a4ca03a13d3f47a9613aac8c8b0d3f1f2\nAdd proto_package field to managedidentities API. It is needed for APIs that still depend on artman generation.\n\nPiperOrigin-RevId: 293643323\n\n4cdfe8278cb6f308106580d70648001c9146e759\nRegenerating public protos for Data Catalog to add new Custom Type Entry feature.\n\nPiperOrigin-RevId: 293614782\n\n45d2a569ab526a1fad3720f95eefb1c7330eaada\nEnable client generation for v1 ManagedIdentities API.\n\nPiperOrigin-RevId: 293515675\n\n2c17086b77e6f3bcf04a1f65758dfb0c3da1568f\nAdd the Actions on Google common types (//google/actions/type/*).\n\nPiperOrigin-RevId: 293478245\n\n781aadb932e64a12fb6ead7cd842698d99588433\nDialogflow weekly v2/v2beta1 library update:\n- Documentation updates\nImportant updates are also posted at\nhttps://cloud.google.com/dialogflow/docs/release-notes\n\nPiperOrigin-RevId: 293443396\n\ne2602608c9138c2fca24162720e67f9307c30b95\nDialogflow weekly v2/v2beta1 library update:\n- Documentation updates\nImportant updates are also posted at\nhttps://cloud.google.com/dialogflow/docs/release-notes\n\nPiperOrigin-RevId: 293442964\n\nc8aef82028d06b7992278fa9294c18570dc86c3d\nAdd cc_proto_library and cc_grpc_library targets for Bigtable protos.\n\nAlso fix indentation of cc_grpc_library targets in Spanner and IAM protos.\n\nPiperOrigin-RevId: 293440538\n\ne2faab04f4cb7f9755072330866689b1943a16e9\ncloudtasks: v2 replace non-standard retry params in gapic config v2\n\nPiperOrigin-RevId: 293424055\n\ndfb4097ea628a8470292c6590a4313aee0c675bd\nerrorreporting: v1beta1 add legacy artman config for php\n\nPiperOrigin-RevId: 293423790\n\nb18aed55b45bfe5b62476292c72759e6c3e573c6\nasset: v1p1beta1 updated comment for `page_size` limit.\n\nPiperOrigin-RevId: 293421386\n\nc9ef36b7956d9859a2fc86ad35fcaa16958ab44f\nbazel: Refactor CI build scripts\n\nPiperOrigin-RevId: 293387911\n\na8ed9d921fdddc61d8467bfd7c1668f0ad90435c\nfix: set Ruby module name for OrgPolicy\n\nPiperOrigin-RevId: 293257997\n\n6c7d28509bd8315de8af0889688ee20099594269\nredis: v1beta1 add UpgradeInstance and connect_mode field to Instance\n\nPiperOrigin-RevId: 293242878\n\nae0abed4fcb4c21f5cb67a82349a049524c4ef68\nredis: v1 add connect_mode field to Instance\n\nPiperOrigin-RevId: 293241914\n\n3f7a0d29b28ee9365771da2b66edf7fa2b4e9c56\nAdds service config definition for bigqueryreservation v1beta1\n\nPiperOrigin-RevId: 293234418\n\n0c88168d5ed6fe353a8cf8cbdc6bf084f6bb66a5\naddition of BUILD & configuration for accessapproval v1\n\nPiperOrigin-RevId: 293219198\n\n39bedc2e30f4778ce81193f6ba1fec56107bcfc4\naccessapproval: v1 publish protos\n\nPiperOrigin-RevId: 293167048\n\n69d9945330a5721cd679f17331a78850e2618226\nAdd file-level `Session` resource definition\n\nPiperOrigin-RevId: 293080182\n\nf6a1a6b417f39694275ca286110bc3c1ca4db0dc\nAdd file-level `Session` resource definition\n\nPiperOrigin-RevId: 293080178\n\n29d40b78e3dc1579b0b209463fbcb76e5767f72a\nExpose managedidentities/v1beta1/ API for client library usage.\n\nPiperOrigin-RevId: 292979741\n\na22129a1fb6e18056d576dfb7717aef74b63734a\nExpose managedidentities/v1/ API for client library usage.\n\nPiperOrigin-RevId: 292968186\n\nb5cbe4a4ba64ab19e6627573ff52057a1657773d\nSecurityCenter v1p1beta1: move file-level option on top to workaround protobuf.js bug.\n\nPiperOrigin-RevId: 292647187\n\nb224b317bf20c6a4fbc5030b4a969c3147f27ad3\nAdds API definitions for bigqueryreservation v1beta1.\n\nPiperOrigin-RevId: 292634722\n\nc1468702f9b17e20dd59007c0804a089b83197d2\nSynchronize new proto/yaml changes.\n\nPiperOrigin-RevId: 292626173\n\nffdfa4f55ab2f0afc11d0eb68f125ccbd5e404bd\nvision: v1p3beta1 publish annotations and retry config\n\nPiperOrigin-RevId: 292605599\n\n78f61482cd028fc1d9892aa5d89d768666a954cd\nvision: v1p1beta1 publish annotations and retry config\n\nPiperOrigin-RevId: 292605125\n\n60bb5a294a604fd1778c7ec87b265d13a7106171\nvision: v1p2beta1 publish annotations and retry config\n\nPiperOrigin-RevId: 292604980\n\n3bcf7aa79d45eb9ec29ab9036e9359ea325a7fc3\nvision: v1p4beta1 publish annotations and retry config\n\nPiperOrigin-RevId: 292604656\n\n2717b8a1c762b26911b45ecc2e4ee01d98401b28\nFix dataproc artman client library generation.\n\nPiperOrigin-RevId: 292555664\n\n7ac66d9be8a7d7de4f13566d8663978c9ee9dcd7\nAdd Dataproc Autoscaling API to V1.\n\nPiperOrigin-RevId: 292450564\n\n5d932b2c1be3a6ef487d094e3cf5c0673d0241dd\n- Improve documentation\n- Add a client_id field to StreamingPullRequest\n\nPiperOrigin-RevId: 292434036\n\neaff9fa8edec3e914995ce832b087039c5417ea7\nmonitoring: v3 publish annotations and client retry config\n\nPiperOrigin-RevId: 292425288\n\n70958bab8c5353870d31a23fb2c40305b050d3fe\nBigQuery Storage Read API v1 clients.\n\nPiperOrigin-RevId: 292407644\n\n7a15e7fe78ff4b6d5c9606a3264559e5bde341d1\nUpdate backend proto for Google Cloud Endpoints\n\nPiperOrigin-RevId: 292391607\n\n3ca2c014e24eb5111c8e7248b1e1eb833977c83d\nbazel: Add --flaky_test_attempts=3 argument to prevent CI failures caused by flaky tests\n\nPiperOrigin-RevId: 292382559\n\n9933347c1f677e81e19a844c2ef95bfceaf694fe\nbazel:Integrate latest protoc-java-resource-names-plugin changes (fix for PyYAML dependency in bazel rules)\n\nPiperOrigin-RevId: 292376626\n\nb835ab9d2f62c88561392aa26074c0b849fb0bd3\nasset: v1p2beta1 add client config annotations\n\n* remove unintentionally exposed RPCs\n* remove messages relevant to removed RPCs\n\nPiperOrigin-RevId: 292369593\n\nc1246a29e22b0f98e800a536b5b0da2d933a55f2\nUpdating v1 protos with the latest inline documentation (in comments) and config options. Also adding a per-service .yaml file.\n\nPiperOrigin-RevId: 292310790\n\nb491d07cadaae7cde5608321f913e5ca1459b32d\nRevert accidental local_repository change\n\nPiperOrigin-RevId: 292245373\n\naf3400a8cb6110025198b59a0f7d018ae3cda700\nUpdate gapic-generator dependency (prebuilt PHP binary support).\n\nPiperOrigin-RevId: 292243997\n\n341fd5690fae36f36cf626ef048fbcf4bbe7cee6\ngrafeas: v1 add resource_definition for the grafeas.io/Project and change references for Project.\n\nPiperOrigin-RevId: 292221998\n\n42e915ec2ece1cd37a590fbcd10aa2c0fb0e5b06\nUpdate the gapic-generator, protoc-java-resource-name-plugin and protoc-docs-plugin to the latest commit.\n\nPiperOrigin-RevId: 292182368\n\nf035f47250675d31492a09f4a7586cfa395520a7\nFix grafeas build and update build.sh script to include gerafeas.\n\nPiperOrigin-RevId: 292168753\n\n26ccb214b7bc4a716032a6266bcb0a9ca55d6dbb\nasset: v1p1beta1 add client config annotations and retry config\n\nPiperOrigin-RevId: 292154210\n\n974ee5c0b5d03e81a50dafcedf41e0efebb5b749\nasset: v1beta1 add client config annotations\n\nPiperOrigin-RevId: 292152573\n\ncf3b61102ed5f36b827bc82ec39be09525f018c8\n Fix to protos for v1p1beta1 release of Cloud Security Command Center\n\nPiperOrigin-RevId: 292034635\n\n4e1cfaa7c0fede9e65d64213ca3da1b1255816c0\nUpdate the public proto to support UTF-8 encoded id for CatalogService API, increase the ListCatalogItems deadline to 300s and some minor documentation change\n\nPiperOrigin-RevId: 292030970\n\n9c483584f8fd5a1b862ae07973f4cc7bb3e46648\nasset: add annotations to v1p1beta1\n\nPiperOrigin-RevId: 292009868\n\ne19209fac29731d0baf6d9ac23da1164f7bdca24\nAdd the google.rpc.context.AttributeContext message to the open source\ndirectories.\n\nPiperOrigin-RevId: 291999930\n\nae5662960573f279502bf98a108a35ba1175e782\noslogin API: move file level option on top of the file to avoid protobuf.js bug.\n\nPiperOrigin-RevId: 291990506\n\neba3897fff7c49ed85d3c47fc96fe96e47f6f684\nAdd cc_proto_library and cc_grpc_library targets for Spanner and IAM protos.\n\nPiperOrigin-RevId: 291988651\n\n" } }, { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.10.17" + "version": "2020.2.4" } } ], @@ -28,250 +28,5 @@ "generator": "gapic-generator-typescript" } } - ], - "newFiles": [ - { - "path": ".eslintignore" - }, - { - "path": ".eslintrc.yml" - }, - { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/support_request.md" - }, - { - "path": ".github/PULL_REQUEST_TEMPLATE.md" - }, - { - "path": ".github/publish.yml" - }, - { - "path": ".github/release-please.yml" - }, - { - "path": ".gitignore" - }, - { - "path": ".jsdoc.js" - }, - { - "path": ".kokoro/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/docs.cfg" - }, - { - "path": ".kokoro/continuous/node10/lint.cfg" - }, - { - "path": ".kokoro/continuous/node10/samples-test.cfg" - }, - { - "path": ".kokoro/continuous/node10/system-test.cfg" - }, - { - "path": ".kokoro/continuous/node10/test.cfg" - }, - { - "path": ".kokoro/continuous/node12/common.cfg" - }, - { - "path": ".kokoro/continuous/node12/test.cfg" - }, - { - "path": ".kokoro/continuous/node8/common.cfg" - }, - { - "path": ".kokoro/continuous/node8/test.cfg" - }, - { - "path": ".kokoro/docs.sh" - }, - { - "path": ".kokoro/lint.sh" - }, - { - "path": ".kokoro/presubmit/node10/common.cfg" - }, - { - "path": ".kokoro/presubmit/node10/docs.cfg" - }, - { - "path": ".kokoro/presubmit/node10/lint.cfg" - }, - { - "path": ".kokoro/presubmit/node10/samples-test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/system-test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/test.cfg" - }, - { - "path": ".kokoro/presubmit/node12/common.cfg" - }, - { - "path": ".kokoro/presubmit/node12/test.cfg" - }, - { - "path": ".kokoro/presubmit/node8/common.cfg" - }, - { - "path": ".kokoro/presubmit/node8/test.cfg" - }, - { - "path": ".kokoro/presubmit/windows/common.cfg" - }, - { - "path": ".kokoro/presubmit/windows/test.cfg" - }, - { - "path": ".kokoro/publish.sh" - }, - { - "path": ".kokoro/release/docs.cfg" - }, - { - "path": ".kokoro/release/docs.sh" - }, - { - "path": ".kokoro/release/publish.cfg" - }, - { - "path": ".kokoro/samples-test.sh" - }, - { - "path": ".kokoro/system-test.sh" - }, - { - "path": ".kokoro/test.bat" - }, - { - "path": ".kokoro/test.sh" - }, - { - "path": ".kokoro/trampoline.sh" - }, - { - "path": ".nycrc" - }, - { - "path": ".prettierignore" - }, - { - "path": ".prettierrc" - }, - { - "path": ".repo-metadata.json" - }, - { - "path": "CHANGELOG.md" - }, - { - "path": "CODE_OF_CONDUCT.md" - }, - { - "path": "CONTRIBUTING.md" - }, - { - "path": "LICENSE" - }, - { - "path": "README.md" - }, - { - "path": "codecov.yaml" - }, - { - "path": "linkinator.config.json" - }, - { - "path": "package.json" - }, - { - "path": "protos/google/cloud/common_resources.proto" - }, - { - "path": "protos/google/cloud/recommender/v1/recommendation.proto" - }, - { - "path": "protos/google/cloud/recommender/v1/recommender_service.proto" - }, - { - "path": "protos/protos.d.ts" - }, - { - "path": "protos/protos.js" - }, - { - "path": "protos/protos.json" - }, - { - "path": "renovate.json" - }, - { - "path": "samples/README.md" - }, - { - "path": "samples/package.json" - }, - { - "path": "samples/quickstart.js" - }, - { - "path": "samples/test/quickstart.js" - }, - { - "path": "src/index.ts" - }, - { - "path": "src/v1/index.ts" - }, - { - "path": "src/v1/recommender_client.ts" - }, - { - "path": "src/v1/recommender_client_config.json" - }, - { - "path": "src/v1/recommender_proto_list.json" - }, - { - "path": "synth.metadata" - }, - { - "path": "synth.py" - }, - { - "path": "system-test/fixtures/sample/src/index.js" - }, - { - "path": "system-test/fixtures/sample/src/index.ts" - }, - { - "path": "system-test/install.ts" - }, - { - "path": "test/gapic-recommender-v1.ts" - }, - { - "path": "tsconfig.json" - }, - { - "path": "tslint.json" - }, - { - "path": "webpack.config.js" - } ] } \ No newline at end of file diff --git a/packages/google-cloud-recommender/test/gapic-recommender-v1.ts b/packages/google-cloud-recommender/test/gapic-recommender-v1.ts index e0a09ea986a..0be2ab9ab1d 100644 --- a/packages/google-cloud-recommender/test/gapic-recommender-v1.ts +++ b/packages/google-cloud-recommender/test/gapic-recommender-v1.ts @@ -89,6 +89,7 @@ describe('v1.RecommenderClient', () => { }); // Mock request const request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest = {}; + request.name = ''; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -111,6 +112,7 @@ describe('v1.RecommenderClient', () => { }); // Mock request const request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest = {}; + request.name = ''; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -135,6 +137,7 @@ describe('v1.RecommenderClient', () => { }); // Mock request const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest = {}; + request.name = ''; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -157,6 +160,7 @@ describe('v1.RecommenderClient', () => { }); // Mock request const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest = {}; + request.name = ''; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -184,6 +188,7 @@ describe('v1.RecommenderClient', () => { }); // Mock request const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest = {}; + request.name = ''; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -206,6 +211,7 @@ describe('v1.RecommenderClient', () => { }); // Mock request const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest = {}; + request.name = ''; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -233,6 +239,7 @@ describe('v1.RecommenderClient', () => { }); // Mock request const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest = {}; + request.name = ''; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -255,6 +262,7 @@ describe('v1.RecommenderClient', () => { }); // Mock request const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest = {}; + request.name = ''; // Mock response const expectedResponse = {}; // Mock gRPC layer @@ -282,6 +290,7 @@ describe('v1.RecommenderClient', () => { }); // Mock request const request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest = {}; + request.parent = ''; // Mock response const expectedResponse = {}; // Mock Grpc layer @@ -308,8 +317,9 @@ describe('v1.RecommenderClient', () => { }); // Mock request const request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest = {}; + request.parent = ''; // Mock response - const expectedResponse = {}; + const expectedResponse = {response: 'data'}; // Mock Grpc layer client._innerApiCalls.listRecommendations = ( actualRequest: {}, @@ -328,7 +338,7 @@ describe('v1.RecommenderClient', () => { .on('error', (err: FakeError) => { done(err); }); - stream.write(request); + stream.write(expectedResponse); }); }); }); From 4593e41898482726e56fa350a2c18285fe86953e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 10 Feb 2020 18:05:01 +0100 Subject: [PATCH 018/158] chore(deps): update dependency linkinator to v2 --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 2deae8e5eb6..49f0742c85a 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -39,7 +39,7 @@ "jsdoc": "^3.5.5", "jsdoc-fresh": "^1.0.1", "jsdoc-region-tag": "^1.0.2", - "linkinator": "^1.5.0", + "linkinator": "^2.0.0", "mocha": "^7.0.0", "null-loader": "^3.0.0", "pack-n-play": "^1.0.0-2", From cf2a358353815eaa5eee02895a199d1e794cf7f0 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 11 Feb 2020 22:35:33 -0800 Subject: [PATCH 019/158] build: add GitHub actions config for unit tests * build: add GitHub actions config for unit tests * chore: link root directory before linting * chore: also need to npm i --- packages/google-cloud-recommender/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 49f0742c85a..1a19321876f 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -22,7 +22,8 @@ "prepare": "npm run compile-protos && npm run compile", "system-test": "c8 mocha build/system-test", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", - "test": "c8 mocha build/test" + "test": "c8 mocha build/test", + "prelint": "cd samples; npm link ../; npm i" }, "dependencies": { "google-gax": "^1.12.0" From a7baf5ef81cbc20f397880b0db1b51a13e97cb52 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2020 08:25:44 -0800 Subject: [PATCH 020/158] chore: release 2.0.2 (#23) --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 564621f5348..2628ebb6d81 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.0.2](https://www.github.com/googleapis/nodejs-recommender/compare/v2.0.1...v2.0.2) (2020-02-12) + + +### Bug Fixes + +* pass x-goog-request-params header for streaming calls ([acea090](https://www.github.com/googleapis/nodejs-recommender/commit/acea09085a4caddfaa69c35f37dd83f32ed81987)) + ### [2.0.1](https://www.github.com/googleapis/nodejs-recommender/compare/v2.0.0...v2.0.1) (2020-01-28) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 1a19321876f..b2b352e2a58 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "2.0.1", + "version": "2.0.2", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 20a3e246e97..2c7eede1728 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^2.0.1" + "@google-cloud/recommender": "^2.0.2" }, "devDependencies": { "c8": "^7.0.0", From 57b6ad0d34dcabf968f8050e739679e52f4edbbb Mon Sep 17 00:00:00 2001 From: Xiaozhen Liu Date: Wed, 26 Feb 2020 15:47:24 -0800 Subject: [PATCH 021/158] feat: export protos in src/index.ts --- packages/google-cloud-recommender/src/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/google-cloud-recommender/src/index.ts b/packages/google-cloud-recommender/src/index.ts index 36a23589c52..0eb2071d608 100644 --- a/packages/google-cloud-recommender/src/index.ts +++ b/packages/google-cloud-recommender/src/index.ts @@ -22,3 +22,5 @@ export {v1, RecommenderClient}; // For compatibility with JavaScript libraries we need to provide this default export: // tslint:disable-next-line no-default-export export default {v1, RecommenderClient}; +import * as protos from '../protos/protos'; +export {protos}; From b367c9e2f34046368fa0cb7ccc74140d60a46dcd Mon Sep 17 00:00:00 2001 From: Summer Ji Date: Thu, 27 Feb 2020 11:54:30 -0800 Subject: [PATCH 022/158] chore: update jsdoc.js (#32) --- packages/google-cloud-recommender/.jsdoc.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/.jsdoc.js b/packages/google-cloud-recommender/.jsdoc.js index d8609b488ec..e0bf5b02047 100644 --- a/packages/google-cloud-recommender/.jsdoc.js +++ b/packages/google-cloud-recommender/.jsdoc.js @@ -36,11 +36,14 @@ module.exports = { includePattern: '\\.js$' }, templates: { - copyright: 'Copyright 2018 Google, LLC.', + copyright: 'Copyright 2019 Google, LLC.', includeDate: false, sourceFiles: false, systemName: '@google-cloud/recommender', - theme: 'lumen' + theme: 'lumen', + default: { + "outputSourceFiles": false + } }, markdown: { idInHeadings: true From d5c62ee1f99b8bede7b6a175750ab37663952f39 Mon Sep 17 00:00:00 2001 From: Summer Ji Date: Fri, 28 Feb 2020 16:33:38 -0800 Subject: [PATCH 023/158] chore: update jsdoc with macro license (#35) --- packages/google-cloud-recommender/.jsdoc.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/google-cloud-recommender/.jsdoc.js b/packages/google-cloud-recommender/.jsdoc.js index e0bf5b02047..2053b9d507e 100644 --- a/packages/google-cloud-recommender/.jsdoc.js +++ b/packages/google-cloud-recommender/.jsdoc.js @@ -12,6 +12,9 @@ // 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. ** 'use strict'; From 6fc3b4a4b1fb498b191e6b0b20c56f2873e6a27a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 29 Feb 2020 10:54:36 -0800 Subject: [PATCH 024/158] chore: update .jsdoc.js --- packages/google-cloud-recommender/.jsdoc.js | 5 +++-- packages/google-cloud-recommender/synth.metadata | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/google-cloud-recommender/.jsdoc.js b/packages/google-cloud-recommender/.jsdoc.js index 2053b9d507e..838c337aed6 100644 --- a/packages/google-cloud-recommender/.jsdoc.js +++ b/packages/google-cloud-recommender/.jsdoc.js @@ -34,7 +34,8 @@ module.exports = { source: { excludePattern: '(^|\\/|\\\\)[._]', include: [ - 'build/src' + 'build/src', + 'protos' ], includePattern: '\\.js$' }, @@ -45,7 +46,7 @@ module.exports = { systemName: '@google-cloud/recommender', theme: 'lumen', default: { - "outputSourceFiles": false + outputSourceFiles: false } }, markdown: { diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index c2fad319ebf..23005c172b5 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -1,13 +1,13 @@ { - "updateTime": "2020-02-07T12:32:44.814569Z", + "updateTime": "2020-02-29T12:38:18.507729Z", "sources": [ { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "e46f761cd6ec15a9e3d5ed4ff321a4bcba8e8585", - "internalRef": "293710856", - "log": "e46f761cd6ec15a9e3d5ed4ff321a4bcba8e8585\nGenerate the Bazel build file for recommendengine public api\n\nPiperOrigin-RevId: 293710856\n\n68477017c4173c98addac0373950c6aa9d7b375f\nMake `language_code` optional for UpdateIntentRequest and BatchUpdateIntentsRequest.\n\nThe comments and proto annotations describe this parameter as optional.\n\nPiperOrigin-RevId: 293703548\n\n16f823f578bca4e845a19b88bb9bc5870ea71ab2\nAdd BUILD.bazel files for managedidentities API\n\nPiperOrigin-RevId: 293698246\n\n2f53fd8178c9a9de4ad10fae8dd17a7ba36133f2\nAdd v1p1beta1 config file\n\nPiperOrigin-RevId: 293696729\n\n052b274138fce2be80f97b6dcb83ab343c7c8812\nAdd source field for user event and add field behavior annotations\n\nPiperOrigin-RevId: 293693115\n\n1e89732b2d69151b1b3418fff3d4cc0434f0dded\ndatacatalog: v1beta1 add three new RPCs to gapic v1beta1 config\n\nPiperOrigin-RevId: 293692823\n\n9c8bd09bbdc7c4160a44f1fbab279b73cd7a2337\nchange the name of AccessApproval service to AccessApprovalAdmin\n\nPiperOrigin-RevId: 293690934\n\n2e23b8fbc45f5d9e200572ca662fe1271bcd6760\nAdd ListEntryGroups method, add http bindings to support entry group tagging, and update some comments.\n\nPiperOrigin-RevId: 293666452\n\n0275e38a4ca03a13d3f47a9613aac8c8b0d3f1f2\nAdd proto_package field to managedidentities API. It is needed for APIs that still depend on artman generation.\n\nPiperOrigin-RevId: 293643323\n\n4cdfe8278cb6f308106580d70648001c9146e759\nRegenerating public protos for Data Catalog to add new Custom Type Entry feature.\n\nPiperOrigin-RevId: 293614782\n\n45d2a569ab526a1fad3720f95eefb1c7330eaada\nEnable client generation for v1 ManagedIdentities API.\n\nPiperOrigin-RevId: 293515675\n\n2c17086b77e6f3bcf04a1f65758dfb0c3da1568f\nAdd the Actions on Google common types (//google/actions/type/*).\n\nPiperOrigin-RevId: 293478245\n\n781aadb932e64a12fb6ead7cd842698d99588433\nDialogflow weekly v2/v2beta1 library update:\n- Documentation updates\nImportant updates are also posted at\nhttps://cloud.google.com/dialogflow/docs/release-notes\n\nPiperOrigin-RevId: 293443396\n\ne2602608c9138c2fca24162720e67f9307c30b95\nDialogflow weekly v2/v2beta1 library update:\n- Documentation updates\nImportant updates are also posted at\nhttps://cloud.google.com/dialogflow/docs/release-notes\n\nPiperOrigin-RevId: 293442964\n\nc8aef82028d06b7992278fa9294c18570dc86c3d\nAdd cc_proto_library and cc_grpc_library targets for Bigtable protos.\n\nAlso fix indentation of cc_grpc_library targets in Spanner and IAM protos.\n\nPiperOrigin-RevId: 293440538\n\ne2faab04f4cb7f9755072330866689b1943a16e9\ncloudtasks: v2 replace non-standard retry params in gapic config v2\n\nPiperOrigin-RevId: 293424055\n\ndfb4097ea628a8470292c6590a4313aee0c675bd\nerrorreporting: v1beta1 add legacy artman config for php\n\nPiperOrigin-RevId: 293423790\n\nb18aed55b45bfe5b62476292c72759e6c3e573c6\nasset: v1p1beta1 updated comment for `page_size` limit.\n\nPiperOrigin-RevId: 293421386\n\nc9ef36b7956d9859a2fc86ad35fcaa16958ab44f\nbazel: Refactor CI build scripts\n\nPiperOrigin-RevId: 293387911\n\na8ed9d921fdddc61d8467bfd7c1668f0ad90435c\nfix: set Ruby module name for OrgPolicy\n\nPiperOrigin-RevId: 293257997\n\n6c7d28509bd8315de8af0889688ee20099594269\nredis: v1beta1 add UpgradeInstance and connect_mode field to Instance\n\nPiperOrigin-RevId: 293242878\n\nae0abed4fcb4c21f5cb67a82349a049524c4ef68\nredis: v1 add connect_mode field to Instance\n\nPiperOrigin-RevId: 293241914\n\n3f7a0d29b28ee9365771da2b66edf7fa2b4e9c56\nAdds service config definition for bigqueryreservation v1beta1\n\nPiperOrigin-RevId: 293234418\n\n0c88168d5ed6fe353a8cf8cbdc6bf084f6bb66a5\naddition of BUILD & configuration for accessapproval v1\n\nPiperOrigin-RevId: 293219198\n\n39bedc2e30f4778ce81193f6ba1fec56107bcfc4\naccessapproval: v1 publish protos\n\nPiperOrigin-RevId: 293167048\n\n69d9945330a5721cd679f17331a78850e2618226\nAdd file-level `Session` resource definition\n\nPiperOrigin-RevId: 293080182\n\nf6a1a6b417f39694275ca286110bc3c1ca4db0dc\nAdd file-level `Session` resource definition\n\nPiperOrigin-RevId: 293080178\n\n29d40b78e3dc1579b0b209463fbcb76e5767f72a\nExpose managedidentities/v1beta1/ API for client library usage.\n\nPiperOrigin-RevId: 292979741\n\na22129a1fb6e18056d576dfb7717aef74b63734a\nExpose managedidentities/v1/ API for client library usage.\n\nPiperOrigin-RevId: 292968186\n\nb5cbe4a4ba64ab19e6627573ff52057a1657773d\nSecurityCenter v1p1beta1: move file-level option on top to workaround protobuf.js bug.\n\nPiperOrigin-RevId: 292647187\n\nb224b317bf20c6a4fbc5030b4a969c3147f27ad3\nAdds API definitions for bigqueryreservation v1beta1.\n\nPiperOrigin-RevId: 292634722\n\nc1468702f9b17e20dd59007c0804a089b83197d2\nSynchronize new proto/yaml changes.\n\nPiperOrigin-RevId: 292626173\n\nffdfa4f55ab2f0afc11d0eb68f125ccbd5e404bd\nvision: v1p3beta1 publish annotations and retry config\n\nPiperOrigin-RevId: 292605599\n\n78f61482cd028fc1d9892aa5d89d768666a954cd\nvision: v1p1beta1 publish annotations and retry config\n\nPiperOrigin-RevId: 292605125\n\n60bb5a294a604fd1778c7ec87b265d13a7106171\nvision: v1p2beta1 publish annotations and retry config\n\nPiperOrigin-RevId: 292604980\n\n3bcf7aa79d45eb9ec29ab9036e9359ea325a7fc3\nvision: v1p4beta1 publish annotations and retry config\n\nPiperOrigin-RevId: 292604656\n\n2717b8a1c762b26911b45ecc2e4ee01d98401b28\nFix dataproc artman client library generation.\n\nPiperOrigin-RevId: 292555664\n\n7ac66d9be8a7d7de4f13566d8663978c9ee9dcd7\nAdd Dataproc Autoscaling API to V1.\n\nPiperOrigin-RevId: 292450564\n\n5d932b2c1be3a6ef487d094e3cf5c0673d0241dd\n- Improve documentation\n- Add a client_id field to StreamingPullRequest\n\nPiperOrigin-RevId: 292434036\n\neaff9fa8edec3e914995ce832b087039c5417ea7\nmonitoring: v3 publish annotations and client retry config\n\nPiperOrigin-RevId: 292425288\n\n70958bab8c5353870d31a23fb2c40305b050d3fe\nBigQuery Storage Read API v1 clients.\n\nPiperOrigin-RevId: 292407644\n\n7a15e7fe78ff4b6d5c9606a3264559e5bde341d1\nUpdate backend proto for Google Cloud Endpoints\n\nPiperOrigin-RevId: 292391607\n\n3ca2c014e24eb5111c8e7248b1e1eb833977c83d\nbazel: Add --flaky_test_attempts=3 argument to prevent CI failures caused by flaky tests\n\nPiperOrigin-RevId: 292382559\n\n9933347c1f677e81e19a844c2ef95bfceaf694fe\nbazel:Integrate latest protoc-java-resource-names-plugin changes (fix for PyYAML dependency in bazel rules)\n\nPiperOrigin-RevId: 292376626\n\nb835ab9d2f62c88561392aa26074c0b849fb0bd3\nasset: v1p2beta1 add client config annotations\n\n* remove unintentionally exposed RPCs\n* remove messages relevant to removed RPCs\n\nPiperOrigin-RevId: 292369593\n\nc1246a29e22b0f98e800a536b5b0da2d933a55f2\nUpdating v1 protos with the latest inline documentation (in comments) and config options. Also adding a per-service .yaml file.\n\nPiperOrigin-RevId: 292310790\n\nb491d07cadaae7cde5608321f913e5ca1459b32d\nRevert accidental local_repository change\n\nPiperOrigin-RevId: 292245373\n\naf3400a8cb6110025198b59a0f7d018ae3cda700\nUpdate gapic-generator dependency (prebuilt PHP binary support).\n\nPiperOrigin-RevId: 292243997\n\n341fd5690fae36f36cf626ef048fbcf4bbe7cee6\ngrafeas: v1 add resource_definition for the grafeas.io/Project and change references for Project.\n\nPiperOrigin-RevId: 292221998\n\n42e915ec2ece1cd37a590fbcd10aa2c0fb0e5b06\nUpdate the gapic-generator, protoc-java-resource-name-plugin and protoc-docs-plugin to the latest commit.\n\nPiperOrigin-RevId: 292182368\n\nf035f47250675d31492a09f4a7586cfa395520a7\nFix grafeas build and update build.sh script to include gerafeas.\n\nPiperOrigin-RevId: 292168753\n\n26ccb214b7bc4a716032a6266bcb0a9ca55d6dbb\nasset: v1p1beta1 add client config annotations and retry config\n\nPiperOrigin-RevId: 292154210\n\n974ee5c0b5d03e81a50dafcedf41e0efebb5b749\nasset: v1beta1 add client config annotations\n\nPiperOrigin-RevId: 292152573\n\ncf3b61102ed5f36b827bc82ec39be09525f018c8\n Fix to protos for v1p1beta1 release of Cloud Security Command Center\n\nPiperOrigin-RevId: 292034635\n\n4e1cfaa7c0fede9e65d64213ca3da1b1255816c0\nUpdate the public proto to support UTF-8 encoded id for CatalogService API, increase the ListCatalogItems deadline to 300s and some minor documentation change\n\nPiperOrigin-RevId: 292030970\n\n9c483584f8fd5a1b862ae07973f4cc7bb3e46648\nasset: add annotations to v1p1beta1\n\nPiperOrigin-RevId: 292009868\n\ne19209fac29731d0baf6d9ac23da1164f7bdca24\nAdd the google.rpc.context.AttributeContext message to the open source\ndirectories.\n\nPiperOrigin-RevId: 291999930\n\nae5662960573f279502bf98a108a35ba1175e782\noslogin API: move file level option on top of the file to avoid protobuf.js bug.\n\nPiperOrigin-RevId: 291990506\n\neba3897fff7c49ed85d3c47fc96fe96e47f6f684\nAdd cc_proto_library and cc_grpc_library targets for Spanner and IAM protos.\n\nPiperOrigin-RevId: 291988651\n\n" + "sha": "83c6f84035ee0f80eaa44d8b688a010461cc4080", + "internalRef": "297918498", + "log": "83c6f84035ee0f80eaa44d8b688a010461cc4080\nUpdate google/api/auth.proto to make AuthProvider to have JwtLocation\n\nPiperOrigin-RevId: 297918498\n\ne9e90a787703ec5d388902e2cb796aaed3a385b4\nDialogflow weekly v2/v2beta1 library update:\n - adding get validation result\n - adding field mask override control for output audio config\nImportant updates are also posted at:\nhttps://cloud.google.com/dialogflow/docs/release-notes\n\nPiperOrigin-RevId: 297671458\n\n1a2b05cc3541a5f7714529c665aecc3ea042c646\nAdding .yaml and .json config files.\n\nPiperOrigin-RevId: 297570622\n\ndfe1cf7be44dee31d78f78e485d8c95430981d6e\nPublish `QueryOptions` proto.\n\nIntroduced a `query_options` input in `ExecuteSqlRequest`.\n\nPiperOrigin-RevId: 297497710\n\ndafc905f71e5d46f500b41ed715aad585be062c3\npubsub: revert pull init_rpc_timeout & max_rpc_timeout back to 25 seconds and reset multiplier to 1.0\n\nPiperOrigin-RevId: 297486523\n\nf077632ba7fee588922d9e8717ee272039be126d\nfirestore: add update_transform\n\nPiperOrigin-RevId: 297405063\n\n0aba1900ffef672ec5f0da677cf590ee5686e13b\ncluster: use square brace for cross-reference\n\nPiperOrigin-RevId: 297204568\n\n5dac2da18f6325cbaed54603c43f0667ecd50247\nRestore retry params in gapic config because securitycenter has non-standard default retry params.\nRestore a few retry codes for some idempotent methods.\n\nPiperOrigin-RevId: 297196720\n\n1eb61455530252bba8b2c8d4bc9832960e5a56f6\npubsub: v1 replace IAM HTTP rules\n\nPiperOrigin-RevId: 297188590\n\n80b2d25f8d43d9d47024ff06ead7f7166548a7ba\nDialogflow weekly v2/v2beta1 library update:\n - updates to mega agent api\n - adding field mask override control for output audio config\nImportant updates are also posted at:\nhttps://cloud.google.com/dialogflow/docs/release-notes\n\nPiperOrigin-RevId: 297187629\n\n0b1876b35e98f560f9c9ca9797955f020238a092\nUse an older version of protoc-docs-plugin that is compatible with the specified gapic-generator and protobuf versions.\n\nprotoc-docs-plugin >=0.4.0 (see commit https://github.com/googleapis/protoc-docs-plugin/commit/979f03ede6678c487337f3d7e88bae58df5207af) is incompatible with protobuf 3.9.1.\n\nPiperOrigin-RevId: 296986742\n\n1e47e676cddbbd8d93f19ba0665af15b5532417e\nFix: Restore a method signature for UpdateCluster\n\nPiperOrigin-RevId: 296901854\n\n7f910bcc4fc4704947ccfd3ceed015d16b9e00c2\nUpdate Dataproc v1beta2 client.\n\nPiperOrigin-RevId: 296451205\n\nde287524405a3dce124d301634731584fc0432d7\nFix: Reinstate method signatures that had been missed off some RPCs\nFix: Correct resource types for two fields\n\nPiperOrigin-RevId: 296435091\n\ne5bc9566ae057fb4c92f8b7e047f1c8958235b53\nDeprecate the endpoint_uris field, as it is unused.\n\nPiperOrigin-RevId: 296357191\n\n8c12e2b4dca94e12bff9f538bdac29524ff7ef7a\nUpdate Dataproc v1 client.\n\nPiperOrigin-RevId: 296336662\n\n17567c4a1ef0a9b50faa87024d66f8acbb561089\nRemoving erroneous comment, a la https://github.com/googleapis/java-speech/pull/103\n\nPiperOrigin-RevId: 296332968\n\n3eaaaf8626ce5b0c0bc7eee05e143beffa373b01\nAdd BUILD.bazel for v1 secretmanager.googleapis.com\n\nPiperOrigin-RevId: 296274723\n\ne76149c3d992337f85eeb45643106aacae7ede82\nMove securitycenter v1 to use generate from annotations.\n\nPiperOrigin-RevId: 296266862\n\n203740c78ac69ee07c3bf6be7408048751f618f8\nAdd StackdriverLoggingConfig field to Cloud Tasks v2 API.\n\nPiperOrigin-RevId: 296256388\n\ne4117d5e9ed8bbca28da4a60a94947ca51cb2083\nCreate a Bazel BUILD file for the google.actions.type export.\n\nPiperOrigin-RevId: 296212567\n\na9639a0a9854fd6e1be08bba1ac3897f4f16cb2f\nAdd secretmanager.googleapis.com v1 protos\n\nPiperOrigin-RevId: 295983266\n\nce4f4c21d9dd2bfab18873a80449b9d9851efde8\nasset: v1p1beta1 remove SearchResources and SearchIamPolicies\n\nPiperOrigin-RevId: 295861722\n\ncb61d6c2d070b589980c779b68ffca617f789116\nasset: v1p1beta1 remove SearchResources and SearchIamPolicies\n\nPiperOrigin-RevId: 295855449\n\nab2685d8d3a0e191dc8aef83df36773c07cb3d06\nfix: Dataproc v1 - AutoscalingPolicy annotation\n\nThis adds the second resource name pattern to the\nAutoscalingPolicy resource.\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 295738415\n\n8a1020bf6828f6e3c84c3014f2c51cb62b739140\nUpdate cloud asset api v1p4beta1.\n\nPiperOrigin-RevId: 295286165\n\n5cfa105206e77670369e4b2225597386aba32985\nAdd service control related proto build rule.\n\nPiperOrigin-RevId: 295262088\n\nee4dddf805072004ab19ac94df2ce669046eec26\nmonitoring v3: Add prefix \"https://cloud.google.com/\" into the link for global access\ncl 295167522, get ride of synth.py hacks\n\nPiperOrigin-RevId: 295238095\n\nd9835e922ea79eed8497db270d2f9f85099a519c\nUpdate some minor docs changes about user event proto\n\nPiperOrigin-RevId: 295185610\n\n5f311e416e69c170243de722023b22f3df89ec1c\nfix: use correct PHP package name in gapic configuration\n\nPiperOrigin-RevId: 295161330\n\n6cdd74dcdb071694da6a6b5a206e3a320b62dd11\npubsub: v1 add client config annotations and retry config\n\nPiperOrigin-RevId: 295158776\n\n5169f46d9f792e2934d9fa25c36d0515b4fd0024\nAdded cloud asset api v1p4beta1.\n\nPiperOrigin-RevId: 295026522\n\n56b55aa8818cd0a532a7d779f6ef337ba809ccbd\nFix: Resource annotations for CreateTimeSeriesRequest and ListTimeSeriesRequest should refer to valid resources. TimeSeries is not a named resource.\n\nPiperOrigin-RevId: 294931650\n\n0646bc775203077226c2c34d3e4d50cc4ec53660\nRemove unnecessary languages from bigquery-related artman configuration files.\n\nPiperOrigin-RevId: 294809380\n\n8b78aa04382e3d4147112ad6d344666771bb1909\nUpdate backend.proto for schemes and protocol\n\nPiperOrigin-RevId: 294788800\n\n80b8f8b3de2359831295e24e5238641a38d8488f\nAdds artman config files for bigquerystorage endpoints v1beta2, v1alpha2, v1\n\nPiperOrigin-RevId: 294763931\n\n2c17ac33b226194041155bb5340c3f34733f1b3a\nAdd parameter to sample generated for UpdateInstance. Related to https://github.com/googleapis/python-redis/issues/4\n\nPiperOrigin-RevId: 294734008\n\nd5e8a8953f2acdfe96fb15e85eb2f33739623957\nMove bigquery datatransfer to gapic v2.\n\nPiperOrigin-RevId: 294703703\n\nefd36705972cfcd7d00ab4c6dfa1135bafacd4ae\nfix: Add two annotations that we missed.\n\nPiperOrigin-RevId: 294664231\n\n8a36b928873ff9c05b43859b9d4ea14cd205df57\nFix: Define the \"bigquery.googleapis.com/Table\" resource in the BigQuery Storage API (v1beta2).\n\nPiperOrigin-RevId: 294459768\n\nc7a3caa2c40c49f034a3c11079dd90eb24987047\nFix: Define the \"bigquery.googleapis.com/Table\" resource in the BigQuery Storage API (v1).\n\nPiperOrigin-RevId: 294456889\n\n5006247aa157e59118833658084345ee59af7c09\nFix: Make deprecated fields optional\nFix: Deprecate SetLoggingServiceRequest.zone in line with the comments\nFeature: Add resource name method signatures where appropriate\n\nPiperOrigin-RevId: 294383128\n\neabba40dac05c5cbe0fca3a35761b17e372036c4\nFix: C# and PHP package/namespace capitalization for BigQuery Storage v1.\n\nPiperOrigin-RevId: 294382444\n\nf8d9a858a7a55eba8009a23aa3f5cc5fe5e88dde\nfix: artman configuration file for bigtable-admin\n\nPiperOrigin-RevId: 294322616\n\n0f29555d1cfcf96add5c0b16b089235afbe9b1a9\nAPI definition for (not-yet-launched) GCS gRPC.\n\nPiperOrigin-RevId: 294321472\n\nfcc86bee0e84dc11e9abbff8d7c3529c0626f390\nfix: Bigtable Admin v2\n\nChange LRO metadata from PartialUpdateInstanceMetadata\nto UpdateInstanceMetadata. (Otherwise, it will not build.)\n\nPiperOrigin-RevId: 294264582\n\n6d9361eae2ebb3f42d8c7ce5baf4bab966fee7c0\nrefactor: Add annotations to Bigtable Admin v2.\n\nPiperOrigin-RevId: 294243406\n\nad7616f3fc8e123451c8b3a7987bc91cea9e6913\nFix: Resource type in CreateLogMetricRequest should use logging.googleapis.com.\nFix: ListLogEntries should have a method signature for convenience of calling it.\n\nPiperOrigin-RevId: 294222165\n\n63796fcbb08712676069e20a3e455c9f7aa21026\nFix: Remove extraneous resource definition for cloudkms.googleapis.com/CryptoKey.\n\nPiperOrigin-RevId: 294176658\n\ne7d8a694f4559201e6913f6610069cb08b39274e\nDepend on the latest gapic-generator and resource names plugin.\n\nThis fixes the very old an very annoying bug: https://github.com/googleapis/gapic-generator/pull/3087\n\nPiperOrigin-RevId: 293903652\n\n806b2854a966d55374ee26bb0cef4e30eda17b58\nfix: correct capitalization of Ruby namespaces in SecurityCenter V1p1beta1\n\nPiperOrigin-RevId: 293903613\n\n1b83c92462b14d67a7644e2980f723112472e03a\nPublish annotations and grpc service config for Logging API.\n\nPiperOrigin-RevId: 293893514\n\n" } }, { From fde20edd1d29e5816ebb6d6f3b8066d6ad049b95 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2020 14:55:53 -0800 Subject: [PATCH 025/158] chore: release 2.1.0 (#29) --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 2628ebb6d81..2dc2840e0b6 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.1.0](https://www.github.com/googleapis/nodejs-recommender/compare/v2.0.2...v2.1.0) (2020-02-29) + + +### Features + +* export protos in src/index.ts ([941ad76](https://www.github.com/googleapis/nodejs-recommender/commit/941ad7602b582311abd5d50eb45bdba92a4b2497)) + ### [2.0.2](https://www.github.com/googleapis/nodejs-recommender/compare/v2.0.1...v2.0.2) (2020-02-12) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index b2b352e2a58..d3e6737dc4c 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "2.0.2", + "version": "2.1.0", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 2c7eede1728..a6365422eb2 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^2.0.2" + "@google-cloud/recommender": "^2.1.0" }, "devDependencies": { "c8": "^7.0.0", From ddd8c4d3f913a1f87b68496cca8e1deb10a8ee8e Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Thu, 5 Mar 2020 14:53:31 -0800 Subject: [PATCH 026/158] chore: remove obsolete replacements from synth.py (#37) ``` 2020-03-05 14:35:23,223 synthtool > No replacements made in src/v1beta1/*.ts for pattern /data-catalog/docs/, maybe replacement is no longer needed? ``` --- packages/google-cloud-recommender/synth.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/google-cloud-recommender/synth.py b/packages/google-cloud-recommender/synth.py index b56fb6fb74e..df668128fbf 100644 --- a/packages/google-cloud-recommender/synth.py +++ b/packages/google-cloud-recommender/synth.py @@ -44,9 +44,6 @@ templates = common_templates.node_library(source_location='build/src') s.copy(templates, excludes=[]) -# Fix broken links to cloud.google.com documentation -s.replace('src/v1beta1/*.ts', '/data-catalog/docs/', 'https://cloud.google.com/data-catalog/docs/') - # Node.js specific cleanup subprocess.run(['npm', 'install']) subprocess.run(['npm', 'run', 'fix']) From e4888a1dbcff5951d04c1e9b31374753be0f45c1 Mon Sep 17 00:00:00 2001 From: "gcf-merge-on-green[bot]" <60162190+gcf-merge-on-green[bot]@users.noreply.github.com> Date: Fri, 6 Mar 2020 00:08:26 +0000 Subject: [PATCH 027/158] feat: deferred client initialization (#38) This PR includes changes from https://github.com/googleapis/gapic-generator-typescript/pull/317 that will move the asynchronous initialization and authentication from the client constructor to an `initialize()` method. This method will be automatically called when the first RPC call is performed. The client library usage has not changed, there is no need to update any code. If you want to make sure the client is authenticated _before_ the first RPC call, you can do ```js await client.initialize(); ``` manually before calling any client method. --- .../src/v1/recommender_client.ts | 83 +++++++++++++------ .../google-cloud-recommender/synth.metadata | 8 +- .../test/gapic-recommender-v1.ts | 36 ++++++++ 3 files changed, 98 insertions(+), 29 deletions(-) diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 7ea50e6bb65..af22bb5b4b1 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -47,8 +47,13 @@ export class RecommenderClient { private _innerApiCalls: {[name: string]: Function}; private _pathTemplates: {[name: string]: gax.PathTemplate}; private _terminated = false; + private _opts: ClientOptions; + private _gaxModule: typeof gax | typeof gax.fallback; + private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; + private _protos: {}; + private _defaults: {[method: string]: gax.CallSettings}; auth: gax.GoogleAuth; - recommenderStub: Promise<{[name: string]: Function}>; + recommenderStub?: Promise<{[name: string]: Function}>; /** * Construct an instance of RecommenderClient. @@ -72,8 +77,6 @@ export class RecommenderClient { * app is running in an environment which supports * {@link https://developers.google.com/identity/protocols/application-default-credentials Application Default Credentials}, * your project ID will be detected automatically. - * @param {function} [options.promise] - Custom promise module to use instead - * of native Promises. * @param {string} [options.apiEndpoint] - The domain name of the * API remote host. */ @@ -103,25 +106,28 @@ export class RecommenderClient { // If we are in browser, we are already using fallback because of the // "browser" field in package.json. // But if we were explicitly requested to use fallback, let's do it now. - const gaxModule = !isBrowser && opts.fallback ? gax.fallback : gax; + this._gaxModule = !isBrowser && opts.fallback ? gax.fallback : gax; // Create a `gaxGrpc` object, with any grpc-specific options // sent to the client. opts.scopes = (this.constructor as typeof RecommenderClient).scopes; - const gaxGrpc = new gaxModule.GrpcClient(opts); + this._gaxGrpc = new this._gaxModule.GrpcClient(opts); + + // Save options to use in initialize() method. + this._opts = opts; // Save the auth object to the client, for use by other methods. - this.auth = gaxGrpc.auth as gax.GoogleAuth; + this.auth = this._gaxGrpc.auth as gax.GoogleAuth; // Determine the client header string. - const clientHeader = [`gax/${gaxModule.version}`, `gapic/${version}`]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process !== 'undefined' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { - clientHeader.push(`gl-web/${gaxModule.version}`); + clientHeader.push(`gl-web/${this._gaxModule.version}`); } if (!opts.fallback) { - clientHeader.push(`grpc/${gaxGrpc.grpcVersion}`); + clientHeader.push(`grpc/${this._gaxGrpc.grpcVersion}`); } if (opts.libName && opts.libVersion) { clientHeader.push(`${opts.libName}/${opts.libVersion}`); @@ -137,7 +143,7 @@ export class RecommenderClient { 'protos', 'protos.json' ); - const protos = gaxGrpc.loadProto( + this._protos = this._gaxGrpc.loadProto( opts.fallback ? require('../../protos/protos.json') : nodejsProtoPath ); @@ -145,10 +151,10 @@ export class RecommenderClient { // identifiers to uniquely identify resources within the API. // Create useful helper objects for these. this._pathTemplates = { - recommendationPathTemplate: new gaxModule.PathTemplate( + recommendationPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' ), - recommenderPathTemplate: new gaxModule.PathTemplate( + recommenderPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/recommenders/{recommender}' ), }; @@ -157,7 +163,7 @@ export class RecommenderClient { // (e.g. 50 results at a time, with tokens to get subsequent // pages). Denote the keys used for pagination and results. this._descriptors.page = { - listRecommendations: new gaxModule.PageDescriptor( + listRecommendations: new this._gaxModule.PageDescriptor( 'pageToken', 'nextPageToken', 'recommendations' @@ -165,7 +171,7 @@ export class RecommenderClient { }; // Put together the default options sent with requests. - const defaults = gaxGrpc.constructSettings( + this._defaults = this._gaxGrpc.constructSettings( 'google.cloud.recommender.v1.Recommender', gapicConfig as gax.ClientConfig, opts.clientConfig || {}, @@ -176,17 +182,35 @@ export class RecommenderClient { // of calling the API is handled in `google-gax`, with this code // merely providing the destination and request information. this._innerApiCalls = {}; + } + + /** + * Initialize the client. + * Performs asynchronous operations (such as authentication) and prepares the client. + * This function will be called automatically when any class method is called for the + * first time, but if you need to initialize it before calling an actual method, + * feel free to call initialize() directly. + * + * You can await on this method if you want to make sure the client is initialized. + * + * @returns {Promise} A promise that resolves to an authenticated service stub. + */ + initialize() { + // If the client stub promise is already initialized, return immediately. + if (this.recommenderStub) { + return this.recommenderStub; + } // Put together the "service stub" for // google.cloud.recommender.v1.Recommender. - this.recommenderStub = gaxGrpc.createStub( - opts.fallback - ? (protos as protobuf.Root).lookupService( + this.recommenderStub = this._gaxGrpc.createStub( + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( 'google.cloud.recommender.v1.Recommender' ) : // tslint:disable-next-line no-any - (protos as any).google.cloud.recommender.v1.Recommender, - opts + (this._protos as any).google.cloud.recommender.v1.Recommender, + this._opts ) as Promise<{[method: string]: Function}>; // Iterate over each of the methods that the service provides @@ -212,9 +236,9 @@ export class RecommenderClient { } ); - const apiCall = gaxModule.createApiCall( + const apiCall = this._gaxModule.createApiCall( innerCallPromise, - defaults[methodName], + this._defaults[methodName], this._descriptors.page[methodName] || this._descriptors.stream[methodName] || this._descriptors.longrunning[methodName] @@ -228,6 +252,8 @@ export class RecommenderClient { return apiCall(argument, callOptions, callback); }; } + + return this.recommenderStub; } /** @@ -359,6 +385,7 @@ export class RecommenderClient { ] = gax.routingHeader.fromParams({ name: request.name || '', }); + this.initialize(); return this._innerApiCalls.getRecommendation(request, options, callback); } markRecommendationClaimed( @@ -403,7 +430,7 @@ export class RecommenderClient { * @param {number[]} request.stateMetadata * State properties to include with this state. Overwrites any existing * `state_metadata`. - * Keys must match the regex /^[a-z0-9][a-z0-9_.-]{0,62}$/. + * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. * @param {string} request.etag * Required. Fingerprint of the Recommendation. Provides optimistic locking. @@ -455,6 +482,7 @@ export class RecommenderClient { ] = gax.routingHeader.fromParams({ name: request.name || '', }); + this.initialize(); return this._innerApiCalls.markRecommendationClaimed( request, options, @@ -503,7 +531,7 @@ export class RecommenderClient { * @param {number[]} request.stateMetadata * State properties to include with this state. Overwrites any existing * `state_metadata`. - * Keys must match the regex /^[a-z0-9][a-z0-9_.-]{0,62}$/. + * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. * @param {string} request.etag * Required. Fingerprint of the Recommendation. Provides optimistic locking. @@ -555,6 +583,7 @@ export class RecommenderClient { ] = gax.routingHeader.fromParams({ name: request.name || '', }); + this.initialize(); return this._innerApiCalls.markRecommendationSucceeded( request, options, @@ -603,7 +632,7 @@ export class RecommenderClient { * @param {number[]} request.stateMetadata * State properties to include with this state. Overwrites any existing * `state_metadata`. - * Keys must match the regex /^[a-z0-9][a-z0-9_.-]{0,62}$/. + * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. * @param {string} request.etag * Required. Fingerprint of the Recommendation. Provides optimistic locking. @@ -655,6 +684,7 @@ export class RecommenderClient { ] = gax.routingHeader.fromParams({ name: request.name || '', }); + this.initialize(); return this._innerApiCalls.markRecommendationFailed( request, options, @@ -764,6 +794,7 @@ export class RecommenderClient { ] = gax.routingHeader.fromParams({ parent: request.parent || '', }); + this.initialize(); return this._innerApiCalls.listRecommendations(request, options, callback); } @@ -823,6 +854,7 @@ export class RecommenderClient { parent: request.parent || '', }); const callSettings = new gax.CallSettings(options); + this.initialize(); return this._descriptors.page.listRecommendations.createStream( this._innerApiCalls.listRecommendations as gax.GaxCall, request, @@ -966,8 +998,9 @@ export class RecommenderClient { * The client will no longer be usable and all future behavior is undefined. */ close(): Promise { + this.initialize(); if (!this._terminated) { - return this.recommenderStub.then(stub => { + return this.recommenderStub!.then(stub => { this._terminated = true; stub.close(); }); diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 23005c172b5..00a72a3c617 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -1,13 +1,13 @@ { - "updateTime": "2020-02-29T12:38:18.507729Z", + "updateTime": "2020-03-05T23:13:41.583385Z", "sources": [ { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "83c6f84035ee0f80eaa44d8b688a010461cc4080", - "internalRef": "297918498", - "log": "83c6f84035ee0f80eaa44d8b688a010461cc4080\nUpdate google/api/auth.proto to make AuthProvider to have JwtLocation\n\nPiperOrigin-RevId: 297918498\n\ne9e90a787703ec5d388902e2cb796aaed3a385b4\nDialogflow weekly v2/v2beta1 library update:\n - adding get validation result\n - adding field mask override control for output audio config\nImportant updates are also posted at:\nhttps://cloud.google.com/dialogflow/docs/release-notes\n\nPiperOrigin-RevId: 297671458\n\n1a2b05cc3541a5f7714529c665aecc3ea042c646\nAdding .yaml and .json config files.\n\nPiperOrigin-RevId: 297570622\n\ndfe1cf7be44dee31d78f78e485d8c95430981d6e\nPublish `QueryOptions` proto.\n\nIntroduced a `query_options` input in `ExecuteSqlRequest`.\n\nPiperOrigin-RevId: 297497710\n\ndafc905f71e5d46f500b41ed715aad585be062c3\npubsub: revert pull init_rpc_timeout & max_rpc_timeout back to 25 seconds and reset multiplier to 1.0\n\nPiperOrigin-RevId: 297486523\n\nf077632ba7fee588922d9e8717ee272039be126d\nfirestore: add update_transform\n\nPiperOrigin-RevId: 297405063\n\n0aba1900ffef672ec5f0da677cf590ee5686e13b\ncluster: use square brace for cross-reference\n\nPiperOrigin-RevId: 297204568\n\n5dac2da18f6325cbaed54603c43f0667ecd50247\nRestore retry params in gapic config because securitycenter has non-standard default retry params.\nRestore a few retry codes for some idempotent methods.\n\nPiperOrigin-RevId: 297196720\n\n1eb61455530252bba8b2c8d4bc9832960e5a56f6\npubsub: v1 replace IAM HTTP rules\n\nPiperOrigin-RevId: 297188590\n\n80b2d25f8d43d9d47024ff06ead7f7166548a7ba\nDialogflow weekly v2/v2beta1 library update:\n - updates to mega agent api\n - adding field mask override control for output audio config\nImportant updates are also posted at:\nhttps://cloud.google.com/dialogflow/docs/release-notes\n\nPiperOrigin-RevId: 297187629\n\n0b1876b35e98f560f9c9ca9797955f020238a092\nUse an older version of protoc-docs-plugin that is compatible with the specified gapic-generator and protobuf versions.\n\nprotoc-docs-plugin >=0.4.0 (see commit https://github.com/googleapis/protoc-docs-plugin/commit/979f03ede6678c487337f3d7e88bae58df5207af) is incompatible with protobuf 3.9.1.\n\nPiperOrigin-RevId: 296986742\n\n1e47e676cddbbd8d93f19ba0665af15b5532417e\nFix: Restore a method signature for UpdateCluster\n\nPiperOrigin-RevId: 296901854\n\n7f910bcc4fc4704947ccfd3ceed015d16b9e00c2\nUpdate Dataproc v1beta2 client.\n\nPiperOrigin-RevId: 296451205\n\nde287524405a3dce124d301634731584fc0432d7\nFix: Reinstate method signatures that had been missed off some RPCs\nFix: Correct resource types for two fields\n\nPiperOrigin-RevId: 296435091\n\ne5bc9566ae057fb4c92f8b7e047f1c8958235b53\nDeprecate the endpoint_uris field, as it is unused.\n\nPiperOrigin-RevId: 296357191\n\n8c12e2b4dca94e12bff9f538bdac29524ff7ef7a\nUpdate Dataproc v1 client.\n\nPiperOrigin-RevId: 296336662\n\n17567c4a1ef0a9b50faa87024d66f8acbb561089\nRemoving erroneous comment, a la https://github.com/googleapis/java-speech/pull/103\n\nPiperOrigin-RevId: 296332968\n\n3eaaaf8626ce5b0c0bc7eee05e143beffa373b01\nAdd BUILD.bazel for v1 secretmanager.googleapis.com\n\nPiperOrigin-RevId: 296274723\n\ne76149c3d992337f85eeb45643106aacae7ede82\nMove securitycenter v1 to use generate from annotations.\n\nPiperOrigin-RevId: 296266862\n\n203740c78ac69ee07c3bf6be7408048751f618f8\nAdd StackdriverLoggingConfig field to Cloud Tasks v2 API.\n\nPiperOrigin-RevId: 296256388\n\ne4117d5e9ed8bbca28da4a60a94947ca51cb2083\nCreate a Bazel BUILD file for the google.actions.type export.\n\nPiperOrigin-RevId: 296212567\n\na9639a0a9854fd6e1be08bba1ac3897f4f16cb2f\nAdd secretmanager.googleapis.com v1 protos\n\nPiperOrigin-RevId: 295983266\n\nce4f4c21d9dd2bfab18873a80449b9d9851efde8\nasset: v1p1beta1 remove SearchResources and SearchIamPolicies\n\nPiperOrigin-RevId: 295861722\n\ncb61d6c2d070b589980c779b68ffca617f789116\nasset: v1p1beta1 remove SearchResources and SearchIamPolicies\n\nPiperOrigin-RevId: 295855449\n\nab2685d8d3a0e191dc8aef83df36773c07cb3d06\nfix: Dataproc v1 - AutoscalingPolicy annotation\n\nThis adds the second resource name pattern to the\nAutoscalingPolicy resource.\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 295738415\n\n8a1020bf6828f6e3c84c3014f2c51cb62b739140\nUpdate cloud asset api v1p4beta1.\n\nPiperOrigin-RevId: 295286165\n\n5cfa105206e77670369e4b2225597386aba32985\nAdd service control related proto build rule.\n\nPiperOrigin-RevId: 295262088\n\nee4dddf805072004ab19ac94df2ce669046eec26\nmonitoring v3: Add prefix \"https://cloud.google.com/\" into the link for global access\ncl 295167522, get ride of synth.py hacks\n\nPiperOrigin-RevId: 295238095\n\nd9835e922ea79eed8497db270d2f9f85099a519c\nUpdate some minor docs changes about user event proto\n\nPiperOrigin-RevId: 295185610\n\n5f311e416e69c170243de722023b22f3df89ec1c\nfix: use correct PHP package name in gapic configuration\n\nPiperOrigin-RevId: 295161330\n\n6cdd74dcdb071694da6a6b5a206e3a320b62dd11\npubsub: v1 add client config annotations and retry config\n\nPiperOrigin-RevId: 295158776\n\n5169f46d9f792e2934d9fa25c36d0515b4fd0024\nAdded cloud asset api v1p4beta1.\n\nPiperOrigin-RevId: 295026522\n\n56b55aa8818cd0a532a7d779f6ef337ba809ccbd\nFix: Resource annotations for CreateTimeSeriesRequest and ListTimeSeriesRequest should refer to valid resources. TimeSeries is not a named resource.\n\nPiperOrigin-RevId: 294931650\n\n0646bc775203077226c2c34d3e4d50cc4ec53660\nRemove unnecessary languages from bigquery-related artman configuration files.\n\nPiperOrigin-RevId: 294809380\n\n8b78aa04382e3d4147112ad6d344666771bb1909\nUpdate backend.proto for schemes and protocol\n\nPiperOrigin-RevId: 294788800\n\n80b8f8b3de2359831295e24e5238641a38d8488f\nAdds artman config files for bigquerystorage endpoints v1beta2, v1alpha2, v1\n\nPiperOrigin-RevId: 294763931\n\n2c17ac33b226194041155bb5340c3f34733f1b3a\nAdd parameter to sample generated for UpdateInstance. Related to https://github.com/googleapis/python-redis/issues/4\n\nPiperOrigin-RevId: 294734008\n\nd5e8a8953f2acdfe96fb15e85eb2f33739623957\nMove bigquery datatransfer to gapic v2.\n\nPiperOrigin-RevId: 294703703\n\nefd36705972cfcd7d00ab4c6dfa1135bafacd4ae\nfix: Add two annotations that we missed.\n\nPiperOrigin-RevId: 294664231\n\n8a36b928873ff9c05b43859b9d4ea14cd205df57\nFix: Define the \"bigquery.googleapis.com/Table\" resource in the BigQuery Storage API (v1beta2).\n\nPiperOrigin-RevId: 294459768\n\nc7a3caa2c40c49f034a3c11079dd90eb24987047\nFix: Define the \"bigquery.googleapis.com/Table\" resource in the BigQuery Storage API (v1).\n\nPiperOrigin-RevId: 294456889\n\n5006247aa157e59118833658084345ee59af7c09\nFix: Make deprecated fields optional\nFix: Deprecate SetLoggingServiceRequest.zone in line with the comments\nFeature: Add resource name method signatures where appropriate\n\nPiperOrigin-RevId: 294383128\n\neabba40dac05c5cbe0fca3a35761b17e372036c4\nFix: C# and PHP package/namespace capitalization for BigQuery Storage v1.\n\nPiperOrigin-RevId: 294382444\n\nf8d9a858a7a55eba8009a23aa3f5cc5fe5e88dde\nfix: artman configuration file for bigtable-admin\n\nPiperOrigin-RevId: 294322616\n\n0f29555d1cfcf96add5c0b16b089235afbe9b1a9\nAPI definition for (not-yet-launched) GCS gRPC.\n\nPiperOrigin-RevId: 294321472\n\nfcc86bee0e84dc11e9abbff8d7c3529c0626f390\nfix: Bigtable Admin v2\n\nChange LRO metadata from PartialUpdateInstanceMetadata\nto UpdateInstanceMetadata. (Otherwise, it will not build.)\n\nPiperOrigin-RevId: 294264582\n\n6d9361eae2ebb3f42d8c7ce5baf4bab966fee7c0\nrefactor: Add annotations to Bigtable Admin v2.\n\nPiperOrigin-RevId: 294243406\n\nad7616f3fc8e123451c8b3a7987bc91cea9e6913\nFix: Resource type in CreateLogMetricRequest should use logging.googleapis.com.\nFix: ListLogEntries should have a method signature for convenience of calling it.\n\nPiperOrigin-RevId: 294222165\n\n63796fcbb08712676069e20a3e455c9f7aa21026\nFix: Remove extraneous resource definition for cloudkms.googleapis.com/CryptoKey.\n\nPiperOrigin-RevId: 294176658\n\ne7d8a694f4559201e6913f6610069cb08b39274e\nDepend on the latest gapic-generator and resource names plugin.\n\nThis fixes the very old an very annoying bug: https://github.com/googleapis/gapic-generator/pull/3087\n\nPiperOrigin-RevId: 293903652\n\n806b2854a966d55374ee26bb0cef4e30eda17b58\nfix: correct capitalization of Ruby namespaces in SecurityCenter V1p1beta1\n\nPiperOrigin-RevId: 293903613\n\n1b83c92462b14d67a7644e2980f723112472e03a\nPublish annotations and grpc service config for Logging API.\n\nPiperOrigin-RevId: 293893514\n\n" + "sha": "f0b581b5bdf803e45201ecdb3688b60e381628a8", + "internalRef": "299181282", + "log": "f0b581b5bdf803e45201ecdb3688b60e381628a8\nfix: recommendationengine/v1beta1 update some comments\n\nPiperOrigin-RevId: 299181282\n\n10e9a0a833dc85ff8f05b2c67ebe5ac785fe04ff\nbuild: add generated BUILD file for Routes Preferred API\n\nPiperOrigin-RevId: 299164808\n\n86738c956a8238d7c77f729be78b0ed887a6c913\npublish v1p1beta1: update with absolute address in comments\n\nPiperOrigin-RevId: 299152383\n\n73d9f2ad4591de45c2e1f352bc99d70cbd2a6d95\npublish v1: update with absolute address in comments\n\nPiperOrigin-RevId: 299147194\n\nd2158f24cb77b0b0ccfe68af784c6a628705e3c6\npublish v1beta2: update with absolute address in comments\n\nPiperOrigin-RevId: 299147086\n\n7fca61292c11b4cd5b352cee1a50bf88819dd63b\npublish v1p2beta1: update with absolute address in comments\n\nPiperOrigin-RevId: 299146903\n\n583b7321624736e2c490e328f4b1957335779295\npublish v1p3beta1: update with absolute address in comments\n\nPiperOrigin-RevId: 299146674\n\n638253bf86d1ce1c314108a089b7351440c2f0bf\nfix: add java_multiple_files option for automl text_sentiment.proto\n\nPiperOrigin-RevId: 298971070\n\n373d655703bf914fb8b0b1cc4071d772bac0e0d1\nUpdate Recs AI Beta public bazel file\n\nPiperOrigin-RevId: 298961623\n\ndcc5d00fc8a8d8b56f16194d7c682027b2c66a3b\nfix: add java_multiple_files option for automl classification.proto\n\nPiperOrigin-RevId: 298953301\n\na3f791827266f3496a6a5201d58adc4bb265c2a3\nchore: automl/v1 publish annotations and retry config\n\nPiperOrigin-RevId: 298942178\n\n01c681586d8d6dbd60155289b587aee678530bd9\nMark return_immediately in PullRequest deprecated.\n\nPiperOrigin-RevId: 298893281\n\nc9f5e9c4bfed54bbd09227e990e7bded5f90f31c\nRemove out of date documentation for predicate support on the Storage API\n\nPiperOrigin-RevId: 298883309\n\nfd5b3b8238d783b04692a113ffe07c0363f5de0f\ngenerate webrisk v1 proto\n\nPiperOrigin-RevId: 298847934\n\n541b1ded4abadcc38e8178680b0677f65594ea6f\nUpdate cloud asset api v1p4beta1.\n\nPiperOrigin-RevId: 298686266\n\nc0d171acecb4f5b0bfd2c4ca34fc54716574e300\n Updated to include the Notification v1 API.\n\nPiperOrigin-RevId: 298652775\n\n2346a9186c0bff2c9cc439f2459d558068637e05\nAdd Service Directory v1beta1 protos and configs\n\nPiperOrigin-RevId: 298625638\n\na78ed801b82a5c6d9c5368e24b1412212e541bb7\nPublishing v3 protos and configs.\n\nPiperOrigin-RevId: 298607357\n\n4a180bfff8a21645b3a935c2756e8d6ab18a74e0\nautoml/v1beta1 publish proto updates\n\nPiperOrigin-RevId: 298484782\n\n6de6e938b7df1cd62396563a067334abeedb9676\nchore: use the latest gapic-generator and protoc-java-resource-name-plugin in Bazel workspace.\n\nPiperOrigin-RevId: 298474513\n\n244ab2b83a82076a1fa7be63b7e0671af73f5c02\nAdds service config definition for bigqueryreservation v1\n\nPiperOrigin-RevId: 298455048\n\n" } }, { diff --git a/packages/google-cloud-recommender/test/gapic-recommender-v1.ts b/packages/google-cloud-recommender/test/gapic-recommender-v1.ts index 0be2ab9ab1d..e3307d6efaa 100644 --- a/packages/google-cloud-recommender/test/gapic-recommender-v1.ts +++ b/packages/google-cloud-recommender/test/gapic-recommender-v1.ts @@ -81,12 +81,30 @@ describe('v1.RecommenderClient', () => { }); assert(client); }); + it('has initialize method and supports deferred initialization', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + assert.strictEqual(client.recommenderStub, undefined); + await client.initialize(); + assert(client.recommenderStub); + }); + it('has close method', () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.close(); + }); describe('getRecommendation', () => { it('invokes getRecommendation without error', done => { const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + // Initialize client before mocking + client.initialize(); // Mock request const request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest = {}; request.name = ''; @@ -110,6 +128,8 @@ describe('v1.RecommenderClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + // Initialize client before mocking + client.initialize(); // Mock request const request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest = {}; request.name = ''; @@ -135,6 +155,8 @@ describe('v1.RecommenderClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + // Initialize client before mocking + client.initialize(); // Mock request const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest = {}; request.name = ''; @@ -158,6 +180,8 @@ describe('v1.RecommenderClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + // Initialize client before mocking + client.initialize(); // Mock request const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest = {}; request.name = ''; @@ -186,6 +210,8 @@ describe('v1.RecommenderClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + // Initialize client before mocking + client.initialize(); // Mock request const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest = {}; request.name = ''; @@ -209,6 +235,8 @@ describe('v1.RecommenderClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + // Initialize client before mocking + client.initialize(); // Mock request const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest = {}; request.name = ''; @@ -237,6 +265,8 @@ describe('v1.RecommenderClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + // Initialize client before mocking + client.initialize(); // Mock request const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest = {}; request.name = ''; @@ -260,6 +290,8 @@ describe('v1.RecommenderClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + // Initialize client before mocking + client.initialize(); // Mock request const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest = {}; request.name = ''; @@ -288,6 +320,8 @@ describe('v1.RecommenderClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + // Initialize client before mocking + client.initialize(); // Mock request const request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest = {}; request.parent = ''; @@ -315,6 +349,8 @@ describe('v1.RecommenderClient', () => { credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); + // Initialize client before mocking + client.initialize(); // Mock request const request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest = {}; request.parent = ''; From 6ae90aa716ac5df450f9cf113aa7a9f8b610c68a Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 5 Mar 2020 17:25:46 -0800 Subject: [PATCH 028/158] build: update linkinator config (#40) --- packages/google-cloud-recommender/linkinator.config.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/linkinator.config.json b/packages/google-cloud-recommender/linkinator.config.json index b555215ca02..29a223b6db6 100644 --- a/packages/google-cloud-recommender/linkinator.config.json +++ b/packages/google-cloud-recommender/linkinator.config.json @@ -4,5 +4,7 @@ "https://codecov.io/gh/googleapis/", "www.googleapis.com", "img.shields.io" - ] + ], + "silent": true, + "concurrency": 10 } From 543f27a122a8c8c8599152bfa3e3829444ac34d6 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Fri, 6 Mar 2020 14:58:26 -0800 Subject: [PATCH 029/158] build(tests): fix coveralls and enable build cop (#41) --- packages/google-cloud-recommender/.mocharc.js | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 packages/google-cloud-recommender/.mocharc.js diff --git a/packages/google-cloud-recommender/.mocharc.js b/packages/google-cloud-recommender/.mocharc.js new file mode 100644 index 00000000000..ff7b34fa5d1 --- /dev/null +++ b/packages/google-cloud-recommender/.mocharc.js @@ -0,0 +1,28 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// 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. +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 From 42e90361593ccdb1f4382fce94dea0dc2d996796 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2020 16:18:03 +0000 Subject: [PATCH 030/158] chore: release 2.2.0 (#39) :robot: I have created a release \*beep\* \*boop\* --- ## [2.2.0](https://www.github.com/googleapis/nodejs-recommender/compare/v2.1.0...v2.2.0) (2020-03-06) ### Features * deferred client initialization ([#38](https://www.github.com/googleapis/nodejs-recommender/issues/38)) ([6a19840](https://www.github.com/googleapis/nodejs-recommender/commit/6a19840c1d51ff7b930ea7969dbbe32beda0fefd)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 2dc2840e0b6..b117754d3e4 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.2.0](https://www.github.com/googleapis/nodejs-recommender/compare/v2.1.0...v2.2.0) (2020-03-06) + + +### Features + +* deferred client initialization ([#38](https://www.github.com/googleapis/nodejs-recommender/issues/38)) ([6a19840](https://www.github.com/googleapis/nodejs-recommender/commit/6a19840c1d51ff7b930ea7969dbbe32beda0fefd)) + ## [2.1.0](https://www.github.com/googleapis/nodejs-recommender/compare/v2.0.2...v2.1.0) (2020-02-29) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index d3e6737dc4c..482ab7a6e43 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "2.1.0", + "version": "2.2.0", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index a6365422eb2..69834a07056 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^2.1.0" + "@google-cloud/recommender": "^2.2.0" }, "devDependencies": { "c8": "^7.0.0", From 7c7500bb9caba91f93fa8891383598405832ab6d Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 18 Mar 2020 12:59:37 -0700 Subject: [PATCH 031/158] docs: mention templates in contributing section of README (#43) --- packages/google-cloud-recommender/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index 6c9ec2768d9..de77857f44e 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -113,6 +113,12 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-recommender/blob/master/CONTRIBUTING.md). +Please note that this `README.md`, the `samples/README.md`, +and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`) +are generated from a central template. To edit one of these files, make an edit +to its template in this +[directory](https://github.com/googleapis/synthtool/tree/master/synthtool/gcp/templates/node_library). + ## License Apache Version 2.0 From 6819f5328b71bfbb36bde15fc5ef671f5c504e2f Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 19 Mar 2020 08:54:12 -0700 Subject: [PATCH 032/158] chore: remove snippet leading whitespace (#45) --- packages/google-cloud-recommender/README.md | 32 ++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index de77857f44e..881c4f38239 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -55,23 +55,23 @@ npm install @google-cloud/recommender ### Using the client library ```javascript - async function listRecommendations() { - const {RecommenderClient} = require('@google-cloud/recommender'); - const recommender = new RecommenderClient(); - - // parent = 'projects/my-project'; // Project to fetch recommendations for. - // recommenderId = 'google.compute.instance.MachineTypeRecommender'; - - const [recommendations] = await recommender.listRecommendations({ - parent: recommender.recommenderPath(project, 'global', recommenderId), - }); - console.info(`recommendations for ${recommenderId}:`); - for (const recommendation of recommendations) { - console.info(recommendation); - } - return recommendations; +async function listRecommendations() { + const {RecommenderClient} = require('@google-cloud/recommender'); + const recommender = new RecommenderClient(); + + // parent = 'projects/my-project'; // Project to fetch recommendations for. + // recommenderId = 'google.compute.instance.MachineTypeRecommender'; + + const [recommendations] = await recommender.listRecommendations({ + parent: recommender.recommenderPath(project, 'global', recommenderId), + }); + console.info(`recommendations for ${recommenderId}:`); + for (const recommendation of recommendations) { + console.info(recommendation); } - const recommendations = await listRecommendations(); + return recommendations; +} +const recommendations = await listRecommendations(); ``` From 419e37938501f9d7258274d300b76f61d1ed208b Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Mon, 23 Mar 2020 18:34:21 -0700 Subject: [PATCH 033/158] docs: document version support goals (#50) --- packages/google-cloud-recommender/README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index 881c4f38239..3416617ed47 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -91,6 +91,27 @@ has instructions for running the samples. The [Recommender Node.js Client API Reference][client-docs] documentation also contains samples. +## Supported Node.js Versions + +Our client libraries follow the [Node.js release schedule](https://nodejs.org/en/about/releases/). +Libraries are compatible with all current _active_ and _maintenance_ versions of +Node.js. + +Client libraries targetting some end-of-life versions of Node.js are available, and +can be installed via npm [dist-tags](https://docs.npmjs.com/cli/dist-tag). +The dist-tags follow the naming convention `legacy-(version)`. + +_Legacy Node.js versions are supported as a best effort:_ + +* Legacy versions will not be tested in continuous integration. +* Some security patches may not be able to be backported. +* Dependencies will not be kept up-to-date, and features will not be backported. + +#### Legacy tags available + +* `legacy-8`: install client libraries from this dist-tag for versions + compatible with Node.js 8. + ## Versioning This library follows [Semantic Versioning](http://semver.org/). From 8e603f9ebee30c113c1b1e0511a6d6057402430e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 25 Mar 2020 02:00:01 -0700 Subject: [PATCH 034/158] chore: regenerate the code Co-authored-by: Alexander Fenster --- packages/google-cloud-recommender/.jsdoc.js | 2 +- packages/google-cloud-recommender/src/index.ts | 2 +- .../google-cloud-recommender/src/v1/index.ts | 2 +- .../src/v1/recommender_client.ts | 12 +++++++++--- packages/google-cloud-recommender/synth.metadata | 16 ++++++++-------- .../system-test/fixtures/sample/src/index.js | 2 +- .../system-test/fixtures/sample/src/index.ts | 2 +- .../system-test/install.ts | 2 +- .../test/gapic-recommender-v1.ts | 2 +- .../google-cloud-recommender/webpack.config.js | 2 +- 10 files changed, 25 insertions(+), 19 deletions(-) diff --git a/packages/google-cloud-recommender/.jsdoc.js b/packages/google-cloud-recommender/.jsdoc.js index 838c337aed6..8b17ad10b0a 100644 --- a/packages/google-cloud-recommender/.jsdoc.js +++ b/packages/google-cloud-recommender/.jsdoc.js @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC +// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/src/index.ts b/packages/google-cloud-recommender/src/index.ts index 0eb2071d608..ab8bdc1ef1f 100644 --- a/packages/google-cloud-recommender/src/index.ts +++ b/packages/google-cloud-recommender/src/index.ts @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC +// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/src/v1/index.ts b/packages/google-cloud-recommender/src/v1/index.ts index e715b699542..d687f3169ac 100644 --- a/packages/google-cloud-recommender/src/v1/index.ts +++ b/packages/google-cloud-recommender/src/v1/index.ts @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC +// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index af22bb5b4b1..019513891c9 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC +// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -43,7 +43,12 @@ const version = require('../../../package.json').version; * @memberof v1 */ export class RecommenderClient { - private _descriptors: Descriptors = {page: {}, stream: {}, longrunning: {}}; + private _descriptors: Descriptors = { + page: {}, + stream: {}, + longrunning: {}, + batching: {}, + }; private _innerApiCalls: {[name: string]: Function}; private _pathTemplates: {[name: string]: gax.PathTemplate}; private _terminated = false; @@ -229,7 +234,8 @@ export class RecommenderClient { if (this._terminated) { return Promise.reject('The client has already been closed.'); } - return stub[methodName].apply(stub, args); + const func = stub[methodName]; + return func.apply(stub, args); }, (err: Error | null | undefined) => () => { throw err; diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 00a72a3c617..745a854ae60 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -1,20 +1,20 @@ { - "updateTime": "2020-03-05T23:13:41.583385Z", + "updateTime": "2020-03-22T11:42:18.872862Z", "sources": [ { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "f0b581b5bdf803e45201ecdb3688b60e381628a8", - "internalRef": "299181282", - "log": "f0b581b5bdf803e45201ecdb3688b60e381628a8\nfix: recommendationengine/v1beta1 update some comments\n\nPiperOrigin-RevId: 299181282\n\n10e9a0a833dc85ff8f05b2c67ebe5ac785fe04ff\nbuild: add generated BUILD file for Routes Preferred API\n\nPiperOrigin-RevId: 299164808\n\n86738c956a8238d7c77f729be78b0ed887a6c913\npublish v1p1beta1: update with absolute address in comments\n\nPiperOrigin-RevId: 299152383\n\n73d9f2ad4591de45c2e1f352bc99d70cbd2a6d95\npublish v1: update with absolute address in comments\n\nPiperOrigin-RevId: 299147194\n\nd2158f24cb77b0b0ccfe68af784c6a628705e3c6\npublish v1beta2: update with absolute address in comments\n\nPiperOrigin-RevId: 299147086\n\n7fca61292c11b4cd5b352cee1a50bf88819dd63b\npublish v1p2beta1: update with absolute address in comments\n\nPiperOrigin-RevId: 299146903\n\n583b7321624736e2c490e328f4b1957335779295\npublish v1p3beta1: update with absolute address in comments\n\nPiperOrigin-RevId: 299146674\n\n638253bf86d1ce1c314108a089b7351440c2f0bf\nfix: add java_multiple_files option for automl text_sentiment.proto\n\nPiperOrigin-RevId: 298971070\n\n373d655703bf914fb8b0b1cc4071d772bac0e0d1\nUpdate Recs AI Beta public bazel file\n\nPiperOrigin-RevId: 298961623\n\ndcc5d00fc8a8d8b56f16194d7c682027b2c66a3b\nfix: add java_multiple_files option for automl classification.proto\n\nPiperOrigin-RevId: 298953301\n\na3f791827266f3496a6a5201d58adc4bb265c2a3\nchore: automl/v1 publish annotations and retry config\n\nPiperOrigin-RevId: 298942178\n\n01c681586d8d6dbd60155289b587aee678530bd9\nMark return_immediately in PullRequest deprecated.\n\nPiperOrigin-RevId: 298893281\n\nc9f5e9c4bfed54bbd09227e990e7bded5f90f31c\nRemove out of date documentation for predicate support on the Storage API\n\nPiperOrigin-RevId: 298883309\n\nfd5b3b8238d783b04692a113ffe07c0363f5de0f\ngenerate webrisk v1 proto\n\nPiperOrigin-RevId: 298847934\n\n541b1ded4abadcc38e8178680b0677f65594ea6f\nUpdate cloud asset api v1p4beta1.\n\nPiperOrigin-RevId: 298686266\n\nc0d171acecb4f5b0bfd2c4ca34fc54716574e300\n Updated to include the Notification v1 API.\n\nPiperOrigin-RevId: 298652775\n\n2346a9186c0bff2c9cc439f2459d558068637e05\nAdd Service Directory v1beta1 protos and configs\n\nPiperOrigin-RevId: 298625638\n\na78ed801b82a5c6d9c5368e24b1412212e541bb7\nPublishing v3 protos and configs.\n\nPiperOrigin-RevId: 298607357\n\n4a180bfff8a21645b3a935c2756e8d6ab18a74e0\nautoml/v1beta1 publish proto updates\n\nPiperOrigin-RevId: 298484782\n\n6de6e938b7df1cd62396563a067334abeedb9676\nchore: use the latest gapic-generator and protoc-java-resource-name-plugin in Bazel workspace.\n\nPiperOrigin-RevId: 298474513\n\n244ab2b83a82076a1fa7be63b7e0671af73f5c02\nAdds service config definition for bigqueryreservation v1\n\nPiperOrigin-RevId: 298455048\n\n" + "sha": "0be7105dc52590fa9a24e784052298ae37ce53aa", + "internalRef": "302154871", + "log": "0be7105dc52590fa9a24e784052298ae37ce53aa\nAdd BUILD.bazel file to asset/v1p1beta1\n\nPiperOrigin-RevId: 302154871\n\n6c248fd13e8543f8d22cbf118d978301a9fbe2a8\nAdd missing resource annotations and additional_bindings to dialogflow v2 API.\n\nPiperOrigin-RevId: 302063117\n\n9a3a7f33be9eeacf7b3e98435816b7022d206bd7\nChange the service name from \"chromeos-moblab.googleapis.com\" to \"chromeosmoblab.googleapis.com\"\n\nPiperOrigin-RevId: 302060989\n\n98a339237577e3de26cb4921f75fb5c57cc7a19f\nfeat: devtools/build/v1 publish client library config annotations\n\n* add details field to some of the BuildEvents\n* add final_invocation_id and build_tool_exit_code fields to BuildStatus\n\nPiperOrigin-RevId: 302044087\n\ncfabc98c6bbbb22d1aeaf7612179c0be193b3a13\nfeat: home/graph/v1 publish client library config annotations & comment updates\n\nThis change includes adding the client library configuration annotations, updated proto comments, and some client library configuration files.\n\nPiperOrigin-RevId: 302042647\n\nc8c8c0bd15d082db9546253dbaad1087c7a9782c\nchore: use latest gapic-generator in bazel WORKSPACE.\nincluding the following commits from gapic-generator:\n- feat: take source protos in all sub-packages (#3144)\n\nPiperOrigin-RevId: 301843591\n\ne4daf5202ea31cb2cb6916fdbfa9d6bd771aeb4c\nAdd bazel file for v1 client lib generation\n\nPiperOrigin-RevId: 301802926\n\n275fbcce2c900278d487c33293a3c7e1fbcd3a34\nfeat: pubsub/v1 add an experimental filter field to Subscription\n\nPiperOrigin-RevId: 301661567\n\nf2b18cec51d27c999ad30011dba17f3965677e9c\nFix: UpdateBackupRequest.backup is a resource, not a resource reference - remove annotation.\n\nPiperOrigin-RevId: 301636171\n\n800384063ac93a0cac3a510d41726fa4b2cd4a83\nCloud Billing Budget API v1beta1\nModified api documentation to include warnings about the new filter field.\n\nPiperOrigin-RevId: 301634389\n\n0cc6c146b660db21f04056c3d58a4b752ee445e3\nCloud Billing Budget API v1alpha1\nModified api documentation to include warnings about the new filter field.\n\nPiperOrigin-RevId: 301630018\n\nff2ea00f69065585c3ac0993c8b582af3b6fc215\nFix: Add resource definition for a parent of InspectTemplate which was otherwise missing.\n\nPiperOrigin-RevId: 301623052\n\n55fa441c9daf03173910760191646399338f2b7c\nAdd proto definition for AccessLevel, AccessPolicy, and ServicePerimeter.\n\nPiperOrigin-RevId: 301620844\n\ne7b10591c5408a67cf14ffafa267556f3290e262\nCloud Bigtable Managed Backup service and message proto files.\n\nPiperOrigin-RevId: 301585144\n\nd8e226f702f8ddf92915128c9f4693b63fb8685d\nfeat: Add time-to-live in a queue for builds\n\nPiperOrigin-RevId: 301579876\n\n430375af011f8c7a5174884f0d0e539c6ffa7675\ndocs: add missing closing backtick\n\nPiperOrigin-RevId: 301538851\n\n0e9f1f60ded9ad1c2e725e37719112f5b487ab65\nbazel: Use latest release of gax_java\n\nPiperOrigin-RevId: 301480457\n\n5058c1c96d0ece7f5301a154cf5a07b2ad03a571\nUpdate GAPIC v2 with batching parameters for Logging API\n\nPiperOrigin-RevId: 301443847\n\n64ab9744073de81fec1b3a6a931befc8a90edf90\nFix: Introduce location-based organization/folder/billing-account resources\nChore: Update copyright years\n\nPiperOrigin-RevId: 301373760\n\n23d5f09e670ebb0c1b36214acf78704e2ecfc2ac\nUpdate field_behavior annotations in V1 and V2.\n\nPiperOrigin-RevId: 301337970\n\nb2cf37e7fd62383a811aa4d54d013ecae638851d\nData Catalog V1 API\n\nPiperOrigin-RevId: 301282503\n\n1976b9981e2900c8172b7d34b4220bdb18c5db42\nCloud DLP api update. Adds missing fields to Finding and adds support for hybrid jobs.\n\nPiperOrigin-RevId: 301205325\n\nae78682c05e864d71223ce22532219813b0245ac\nfix: several sample code blocks in comments are now properly indented for markdown\n\nPiperOrigin-RevId: 301185150\n\ndcd171d04bda5b67db13049320f97eca3ace3731\nPublish Media Translation API V1Beta1\n\nPiperOrigin-RevId: 301180096\n\nff1713453b0fbc5a7544a1ef6828c26ad21a370e\nAdd protos and BUILD rules for v1 API.\n\nPiperOrigin-RevId: 301179394\n\n8386761d09819b665b6a6e1e6d6ff884bc8ff781\nfeat: chromeos/modlab publish protos and config for Chrome OS Moblab API.\n\nPiperOrigin-RevId: 300843960\n\nb2e2bc62fab90e6829e62d3d189906d9b79899e4\nUpdates to GCS gRPC API spec:\n\n1. Changed GetIamPolicy and TestBucketIamPermissions to use wrapper messages around google.iam.v1 IAM requests messages, and added CommonRequestParams. This lets us support RequesterPays buckets.\n2. Added a metadata field to GetObjectMediaResponse, to support resuming an object media read safely (by extracting the generation of the object being read, and using it in the resumed read request).\n\nPiperOrigin-RevId: 300817706\n\n7fd916ce12335cc9e784bb9452a8602d00b2516c\nAdd deprecated_collections field for backward-compatiblity in PHP and monolith-generated Python and Ruby clients.\n\nGenerate TopicName class in Java which covers the functionality of both ProjectTopicName and DeletedTopicName. Introduce breaking changes to be fixed by synth.py.\n\nDelete default retry parameters.\n\nRetry codes defs can be deleted once # https://github.com/googleapis/gapic-generator/issues/3137 is fixed.\n\nPiperOrigin-RevId: 300813135\n\n047d3a8ac7f75383855df0166144f891d7af08d9\nfix!: google/rpc refactor ErrorInfo.type to ErrorInfo.reason and comment updates.\n\nPiperOrigin-RevId: 300773211\n\nfae4bb6d5aac52aabe5f0bb4396466c2304ea6f6\nAdding RetryPolicy to pubsub.proto\n\nPiperOrigin-RevId: 300769420\n\n7d569be2928dbd72b4e261bf9e468f23afd2b950\nAdding additional protocol buffer annotations to v3.\n\nPiperOrigin-RevId: 300718800\n\n13942d1a85a337515040a03c5108993087dc0e4f\nAdd logging protos for Recommender v1.\n\nPiperOrigin-RevId: 300689896\n\na1a573c3eecfe2c404892bfa61a32dd0c9fb22b6\nfix: change go package to use cloud.google.com/go/maps\n\nPiperOrigin-RevId: 300661825\n\nc6fbac11afa0c7ab2972d9df181493875c566f77\nfeat: publish documentai/v1beta2 protos\n\nPiperOrigin-RevId: 300656808\n\n5202a9e0d9903f49e900f20fe5c7f4e42dd6588f\nProtos for v1beta1 release of Cloud Security Center Settings API\n\nPiperOrigin-RevId: 300580858\n\n83518e18655d9d4ac044acbda063cc6ecdb63ef8\nAdds gapic.yaml file and BUILD.bazel file.\n\nPiperOrigin-RevId: 300554200\n\n836c196dc8ef8354bbfb5f30696bd3477e8db5e2\nRegenerate recommender v1beta1 gRPC ServiceConfig file for Insights methods.\n\nPiperOrigin-RevId: 300549302\n\n34a5450c591b6be3d6566f25ac31caa5211b2f3f\nIncreases the default timeout from 20s to 30s for MetricService\n\nPiperOrigin-RevId: 300474272\n\n5d8bffe87cd01ba390c32f1714230e5a95d5991d\nfeat: use the latest gapic-generator in WORKSPACE for bazel build.\n\nPiperOrigin-RevId: 300461878\n\nd631c651e3bcfac5d371e8560c27648f7b3e2364\nUpdated the GAPIC configs to include parameters for Backups APIs.\n\nPiperOrigin-RevId: 300443402\n\n678afc7055c1adea9b7b54519f3bdb228013f918\nAdding Game Servers v1beta API.\n\nPiperOrigin-RevId: 300433218\n\n80d2bd2c652a5e213302041b0620aff423132589\nEnable proto annotation and gapic v2 for talent API.\n\nPiperOrigin-RevId: 300393997\n\n85e454be7a353f7fe1bf2b0affb753305785b872\ndocs(google/maps/roads): remove mention of nonexported api\n\nPiperOrigin-RevId: 300367734\n\nbf839ae632e0f263a729569e44be4b38b1c85f9c\nAdding protocol buffer annotations and updated config info for v1 and v2.\n\nPiperOrigin-RevId: 300276913\n\n309b899ca18a4c604bce63882a161d44854da549\nPublish `Backup` APIs and protos.\n\nPiperOrigin-RevId: 300246038\n\neced64c3f122421350b4aca68a28e89121d20db8\nadd PHP client libraries\n\nPiperOrigin-RevId: 300193634\n\n7727af0e39df1ae9ad715895c8576d7b65cf6c6d\nfeat: use the latest gapic-generator and protoc-java-resource-name-plugin in googleapis/WORKSPACE.\n\nPiperOrigin-RevId: 300188410\n\n2a25aa351dd5b5fe14895266aff5824d90ce757b\nBreaking change: remove the ProjectOrTenant resource and its references.\n\nPiperOrigin-RevId: 300182152\n\na499dbb28546379415f51803505cfb6123477e71\nUpdate web risk v1 gapic config and BUILD file.\n\nPiperOrigin-RevId: 300152177\n\n52701da10fec2a5f9796e8d12518c0fe574488fe\nFix: apply appropriate namespace/package options for C#, PHP and Ruby.\n\nPiperOrigin-RevId: 300123508\n\n365c029b8cdb63f7751b92ab490f1976e616105c\nAdd CC targets to the kms protos.\n\nThese are needed by go/tink.\n\nPiperOrigin-RevId: 300038469\n\n4ba9aa8a4a1413b88dca5a8fa931824ee9c284e6\nExpose logo recognition API proto for GA.\n\nPiperOrigin-RevId: 299971671\n\n1c9fc2c9e03dadf15f16b1c4f570955bdcebe00e\nAdding ruby_package option to accessapproval.proto for the Ruby client libraries generation.\n\nPiperOrigin-RevId: 299955924\n\n1cc6f0a7bfb147e6f2ede911d9b01e7a9923b719\nbuild(google/maps/routes): generate api clients\n\nPiperOrigin-RevId: 299955905\n\n29a47c965aac79e3fe8e3314482ca0b5967680f0\nIncrease timeout to 1hr for method `dropRange` in bigtable/admin/v2, which is\nsynced with the timeout setting in gapic_yaml.\n\nPiperOrigin-RevId: 299917154\n\n8f631c4c70a60a9c7da3749511ee4ad432b62898\nbuild(google/maps/roads/v1op): move go to monorepo pattern\n\nPiperOrigin-RevId: 299885195\n\nd66816518844ebbf63504c9e8dfc7133921dd2cd\nbuild(google/maps/roads/v1op): Add bazel build files to generate clients.\n\nPiperOrigin-RevId: 299851148\n\naf7dff701fabe029672168649c62356cf1bb43d0\nAdd LogPlayerReports and LogImpressions to Playable Locations service\n\nPiperOrigin-RevId: 299724050\n\nb6927fca808f38df32a642c560082f5bf6538ced\nUpdate BigQuery Connection API v1beta1 proto: added credential to CloudSqlProperties.\n\nPiperOrigin-RevId: 299503150\n\n91e1fb5ef9829c0c7a64bfa5bde330e6ed594378\nchore: update protobuf (protoc) version to 3.11.2\n\nPiperOrigin-RevId: 299404145\n\n30e36b4bee6749c4799f4fc1a51cc8f058ba167d\nUpdate cloud asset api v1p4beta1.\n\nPiperOrigin-RevId: 299399890\n\nffbb493674099f265693872ae250711b2238090c\nfeat: cloudbuild/v1 add new fields and annotate OUTPUT_OUT fields.\n\nPiperOrigin-RevId: 299397780\n\nbc973a15818e00c19e121959832676e9b7607456\nbazel: Fix broken common dependency\n\nPiperOrigin-RevId: 299397431\n\n71094a343e3b962e744aa49eb9338219537474e4\nchore: bigtable/admin/v2 publish retry config\n\nPiperOrigin-RevId: 299391875\n\n8f488efd7bda33885cb674ddd023b3678c40bd82\nfeat: Migrate logging to GAPIC v2; release new features.\n\nIMPORTANT: This is a breaking change for client libraries\nin all languages.\n\nCommitter: @lukesneeringer, @jskeet\nPiperOrigin-RevId: 299370279\n\n007605bf9ad3a1fd775014ebefbf7f1e6b31ee71\nUpdate API for bigqueryreservation v1beta1.\n- Adds flex capacity commitment plan to CapacityCommitment.\n- Adds methods for getting and updating BiReservations.\n- Adds methods for updating/splitting/merging CapacityCommitments.\n\nPiperOrigin-RevId: 299368059\n\n" } }, { - "template": { - "name": "node_library", - "origin": "synthtool.gcp", - "version": "2020.2.4" + "git": { + "name": "synthtool", + "remote": "https://github.com/googleapis/synthtool.git", + "sha": "7e98e1609c91082f4eeb63b530c6468aefd18cfd" } } ], diff --git a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js index 7e65e07cef6..59a3c7d7ef0 100644 --- a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js +++ b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC +// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts index 010dcd91715..42fb9640ee5 100644 --- a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts +++ b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC +// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/system-test/install.ts b/packages/google-cloud-recommender/system-test/install.ts index c9aa74ec221..c4d80e9c0c8 100644 --- a/packages/google-cloud-recommender/system-test/install.ts +++ b/packages/google-cloud-recommender/system-test/install.ts @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC +// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/test/gapic-recommender-v1.ts b/packages/google-cloud-recommender/test/gapic-recommender-v1.ts index e3307d6efaa..f4d8860e786 100644 --- a/packages/google-cloud-recommender/test/gapic-recommender-v1.ts +++ b/packages/google-cloud-recommender/test/gapic-recommender-v1.ts @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC +// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/webpack.config.js b/packages/google-cloud-recommender/webpack.config.js index 7702939a813..ae0c62f95e1 100644 --- a/packages/google-cloud-recommender/webpack.config.js +++ b/packages/google-cloud-recommender/webpack.config.js @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC +// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. From 4d679bd994bf57eb0fb2c3c02b7de43d7b19383e Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Tue, 31 Mar 2020 13:44:43 -0700 Subject: [PATCH 035/158] feat!: drop node8 support, support for async iterators (#53) BREAKING CHANGE: The library now supports Node.js v10+. The last version to support Node.js v8 is tagged legacy-8 on NPM. New feature: methods with pagination now support async iteration. --- .../google-cloud-recommender/.eslintrc.json | 3 + .../google-cloud-recommender/.eslintrc.yml | 15 - packages/google-cloud-recommender/.prettierrc | 8 - .../google-cloud-recommender/.prettierrc.js | 17 + .../google-cloud-recommender/package.json | 8 +- .../google-cloud-recommender/src/index.ts | 2 - .../src/v1/recommender_client.ts | 403 +++--- .../google-cloud-recommender/synth.metadata | 20 +- .../system-test/fixtures/sample/src/index.js | 1 - .../system-test/fixtures/sample/src/index.ts | 2 +- .../test/gapic-recommender-v1.ts | 380 ------ .../test/gapic_recommender_v1.ts | 1122 +++++++++++++++++ .../webpack.config.js | 12 +- 13 files changed, 1414 insertions(+), 579 deletions(-) create mode 100644 packages/google-cloud-recommender/.eslintrc.json delete mode 100644 packages/google-cloud-recommender/.eslintrc.yml delete mode 100644 packages/google-cloud-recommender/.prettierrc create mode 100644 packages/google-cloud-recommender/.prettierrc.js delete mode 100644 packages/google-cloud-recommender/test/gapic-recommender-v1.ts create mode 100644 packages/google-cloud-recommender/test/gapic_recommender_v1.ts diff --git a/packages/google-cloud-recommender/.eslintrc.json b/packages/google-cloud-recommender/.eslintrc.json new file mode 100644 index 00000000000..78215349546 --- /dev/null +++ b/packages/google-cloud-recommender/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/gts" +} diff --git a/packages/google-cloud-recommender/.eslintrc.yml b/packages/google-cloud-recommender/.eslintrc.yml deleted file mode 100644 index 73eeec27612..00000000000 --- a/packages/google-cloud-recommender/.eslintrc.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -extends: - - 'eslint:recommended' - - 'plugin:node/recommended' - - prettier -plugins: - - node - - prettier -rules: - prettier/prettier: error - block-scoped-var: error - eqeqeq: error - no-warning-comments: warn - no-var: error - prefer-const: error diff --git a/packages/google-cloud-recommender/.prettierrc b/packages/google-cloud-recommender/.prettierrc deleted file mode 100644 index df6eac07446..00000000000 --- a/packages/google-cloud-recommender/.prettierrc +++ /dev/null @@ -1,8 +0,0 @@ ---- -bracketSpacing: false -printWidth: 80 -semi: true -singleQuote: true -tabWidth: 2 -trailingComma: es5 -useTabs: false diff --git a/packages/google-cloud-recommender/.prettierrc.js b/packages/google-cloud-recommender/.prettierrc.js new file mode 100644 index 00000000000..08cba3775be --- /dev/null +++ b/packages/google-cloud-recommender/.prettierrc.js @@ -0,0 +1,17 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// 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. + +module.exports = { + ...require('gts/.prettierrc.json') +} diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 482ab7a6e43..a3075ad0fe9 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -26,17 +26,18 @@ "prelint": "cd samples; npm link ../; npm i" }, "dependencies": { - "google-gax": "^1.12.0" + "google-gax": "^2.0.1" }, "devDependencies": { "@types/mocha": "^7.0.0", "@types/node": "^12.0.0", + "@types/sinon": "^7.5.2", "c8": "^7.0.0", "eslint": "^6.8.0", "eslint-config-prettier": "^6.9.0", "eslint-plugin-node": "^11.0.0", "eslint-plugin-prettier": "^3.1.2", - "gts": "^1.0.0", + "gts": "2.0.0-alpha.9", "jsdoc": "^3.5.5", "jsdoc-fresh": "^1.0.1", "jsdoc-region-tag": "^1.0.2", @@ -45,8 +46,9 @@ "null-loader": "^3.0.0", "pack-n-play": "^1.0.0-2", "prettier": "^1.19.1", + "sinon": "^9.0.1", "ts-loader": "^6.2.1", - "typescript": "~3.6.4", + "typescript": "^3.8.3", "webpack": "^4.41.2", "webpack-cli": "^3.3.10" }, diff --git a/packages/google-cloud-recommender/src/index.ts b/packages/google-cloud-recommender/src/index.ts index ab8bdc1ef1f..bab729506af 100644 --- a/packages/google-cloud-recommender/src/index.ts +++ b/packages/google-cloud-recommender/src/index.ts @@ -19,8 +19,6 @@ import * as v1 from './v1'; const RecommenderClient = v1.RecommenderClient; export {v1, RecommenderClient}; -// For compatibility with JavaScript libraries we need to provide this default export: -// tslint:disable-next-line no-default-export export default {v1, RecommenderClient}; import * as protos from '../protos/protos'; export {protos}; diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 019513891c9..513c2b28824 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -18,18 +18,18 @@ import * as gax from 'google-gax'; import { - APICallback, Callback, CallOptions, Descriptors, ClientOptions, PaginationCallback, - PaginationResponse, + GaxCall, } from 'google-gax'; import * as path from 'path'; import {Transform} from 'stream'; -import * as protosTypes from '../../protos/protos'; +import {RequestType} from 'google-gax/build/src/apitypes'; +import * as protos from '../../protos/protos'; import * as gapicConfig from './recommender_client_config.json'; const version = require('../../../package.json').version; @@ -43,14 +43,6 @@ const version = require('../../../package.json').version; * @memberof v1 */ export class RecommenderClient { - private _descriptors: Descriptors = { - page: {}, - stream: {}, - longrunning: {}, - batching: {}, - }; - private _innerApiCalls: {[name: string]: Function}; - private _pathTemplates: {[name: string]: gax.PathTemplate}; private _terminated = false; private _opts: ClientOptions; private _gaxModule: typeof gax | typeof gax.fallback; @@ -58,6 +50,14 @@ export class RecommenderClient { private _protos: {}; private _defaults: {[method: string]: gax.CallSettings}; auth: gax.GoogleAuth; + descriptors: Descriptors = { + page: {}, + stream: {}, + longrunning: {}, + batching: {}, + }; + innerApiCalls: {[name: string]: Function}; + pathTemplates: {[name: string]: gax.PathTemplate}; recommenderStub?: Promise<{[name: string]: Function}>; /** @@ -149,13 +149,16 @@ export class RecommenderClient { 'protos.json' ); this._protos = this._gaxGrpc.loadProto( - opts.fallback ? require('../../protos/protos.json') : nodejsProtoPath + opts.fallback + ? // eslint-disable-next-line @typescript-eslint/no-var-requires + require('../../protos/protos.json') + : nodejsProtoPath ); // This API contains "path templates"; forward-slash-separated // identifiers to uniquely identify resources within the API. // Create useful helper objects for these. - this._pathTemplates = { + this.pathTemplates = { recommendationPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' ), @@ -167,7 +170,7 @@ export class RecommenderClient { // Some of the methods on this service return "paged" results, // (e.g. 50 results at a time, with tokens to get subsequent // pages). Denote the keys used for pagination and results. - this._descriptors.page = { + this.descriptors.page = { listRecommendations: new this._gaxModule.PageDescriptor( 'pageToken', 'nextPageToken', @@ -186,7 +189,7 @@ export class RecommenderClient { // Set up a dictionary of "inner API calls"; the core implementation // of calling the API is handled in `google-gax`, with this code // merely providing the destination and request information. - this._innerApiCalls = {}; + this.innerApiCalls = {}; } /** @@ -213,7 +216,7 @@ export class RecommenderClient { ? (this._protos as protobuf.Root).lookupService( 'google.cloud.recommender.v1.Recommender' ) - : // tslint:disable-next-line no-any + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.recommender.v1.Recommender, this._opts ) as Promise<{[method: string]: Function}>; @@ -227,9 +230,8 @@ export class RecommenderClient { 'markRecommendationSucceeded', 'markRecommendationFailed', ]; - for (const methodName of recommenderStubMethods) { - const innerCallPromise = this.recommenderStub.then( + const callPromise = this.recommenderStub.then( stub => (...args: Array<{}>) => { if (this._terminated) { return Promise.reject('The client has already been closed.'); @@ -243,20 +245,14 @@ export class RecommenderClient { ); const apiCall = this._gaxModule.createApiCall( - innerCallPromise, + callPromise, this._defaults[methodName], - this._descriptors.page[methodName] || - this._descriptors.stream[methodName] || - this._descriptors.longrunning[methodName] + this.descriptors.page[methodName] || + this.descriptors.stream[methodName] || + this.descriptors.longrunning[methodName] ); - this._innerApiCalls[methodName] = ( - argument: {}, - callOptions?: CallOptions, - callback?: APICallback - ) => { - return apiCall(argument, callOptions, callback); - }; + this.innerApiCalls[methodName] = apiCall; } return this.recommenderStub; @@ -313,26 +309,34 @@ export class RecommenderClient { // -- Service calls -- // ------------------- getRecommendation( - request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest, + request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, options?: gax.CallOptions ): Promise< [ - protosTypes.google.cloud.recommender.v1.IRecommendation, - ( - | protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest - | undefined - ), + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IGetRecommendationRequest | undefined, {} | undefined ] >; getRecommendation( - request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest, + request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, options: gax.CallOptions, callback: Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation, - | protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IGetRecommendationRequest + | null | undefined, - {} | undefined + {} | null | undefined + > + ): void; + getRecommendation( + request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IGetRecommendationRequest + | null + | undefined, + {} | null | undefined > ): void; /** @@ -350,28 +354,27 @@ export class RecommenderClient { * The promise has a method named "cancel" which cancels the ongoing API call. */ getRecommendation( - request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest, + request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, optionsOrCallback?: | gax.CallOptions | Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation, - | protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IGetRecommendationRequest + | null | undefined, - {} | undefined + {} | null | undefined >, callback?: Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation, - | protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IGetRecommendationRequest + | null | undefined, - {} | undefined + {} | null | undefined > ): Promise< [ - protosTypes.google.cloud.recommender.v1.IRecommendation, - ( - | protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest - | undefined - ), + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IGetRecommendationRequest | undefined, {} | undefined ] > | void { @@ -392,29 +395,40 @@ export class RecommenderClient { name: request.name || '', }); this.initialize(); - return this._innerApiCalls.getRecommendation(request, options, callback); + return this.innerApiCalls.getRecommendation(request, options, callback); } markRecommendationClaimed( - request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, + request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, options?: gax.CallOptions ): Promise< [ - protosTypes.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest | undefined ), {} | undefined ] >; markRecommendationClaimed( - request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, + request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, options: gax.CallOptions, callback: Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation, - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + | null | undefined, - {} | undefined + {} | null | undefined + > + ): void; + markRecommendationClaimed( + request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + | null + | undefined, + {} | null | undefined > ): void; /** @@ -447,26 +461,28 @@ export class RecommenderClient { * The promise has a method named "cancel" which cancels the ongoing API call. */ markRecommendationClaimed( - request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, + request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, optionsOrCallback?: | gax.CallOptions | Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation, - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + | null | undefined, - {} | undefined + {} | null | undefined >, callback?: Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation, - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + | null | undefined, - {} | undefined + {} | null | undefined > ): Promise< [ - protosTypes.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest | undefined ), {} | undefined @@ -489,33 +505,44 @@ export class RecommenderClient { name: request.name || '', }); this.initialize(); - return this._innerApiCalls.markRecommendationClaimed( + return this.innerApiCalls.markRecommendationClaimed( request, options, callback ); } markRecommendationSucceeded( - request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, + request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, options?: gax.CallOptions ): Promise< [ - protosTypes.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest | undefined ), {} | undefined ] >; markRecommendationSucceeded( - request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, + request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, options: gax.CallOptions, callback: Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation, - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + | null | undefined, - {} | undefined + {} | null | undefined + > + ): void; + markRecommendationSucceeded( + request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + | null + | undefined, + {} | null | undefined > ): void; /** @@ -548,26 +575,28 @@ export class RecommenderClient { * The promise has a method named "cancel" which cancels the ongoing API call. */ markRecommendationSucceeded( - request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, + request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, optionsOrCallback?: | gax.CallOptions | Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation, - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + | null | undefined, - {} | undefined + {} | null | undefined >, callback?: Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation, - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + | null | undefined, - {} | undefined + {} | null | undefined > ): Promise< [ - protosTypes.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest | undefined ), {} | undefined @@ -590,33 +619,44 @@ export class RecommenderClient { name: request.name || '', }); this.initialize(); - return this._innerApiCalls.markRecommendationSucceeded( + return this.innerApiCalls.markRecommendationSucceeded( request, options, callback ); } markRecommendationFailed( - request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, + request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, options?: gax.CallOptions ): Promise< [ - protosTypes.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest | undefined ), {} | undefined ] >; markRecommendationFailed( - request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, + request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, options: gax.CallOptions, callback: Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation, - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + | null | undefined, - {} | undefined + {} | null | undefined + > + ): void; + markRecommendationFailed( + request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + | null + | undefined, + {} | null | undefined > ): void; /** @@ -649,26 +689,28 @@ export class RecommenderClient { * The promise has a method named "cancel" which cancels the ongoing API call. */ markRecommendationFailed( - request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, + request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, optionsOrCallback?: | gax.CallOptions | Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation, - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + | null | undefined, - {} | undefined + {} | null | undefined >, callback?: Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation, - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + | null | undefined, - {} | undefined + {} | null | undefined > ): Promise< [ - protosTypes.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IRecommendation, ( - | protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest | undefined ), {} | undefined @@ -691,7 +733,7 @@ export class RecommenderClient { name: request.name || '', }); this.initialize(); - return this._innerApiCalls.markRecommendationFailed( + return this.innerApiCalls.markRecommendationFailed( request, options, callback @@ -699,22 +741,34 @@ export class RecommenderClient { } listRecommendations( - request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest, + request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, options?: gax.CallOptions ): Promise< [ - protosTypes.google.cloud.recommender.v1.IRecommendation[], - protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest | null, - protosTypes.google.cloud.recommender.v1.IListRecommendationsResponse + protos.google.cloud.recommender.v1.IRecommendation[], + protos.google.cloud.recommender.v1.IListRecommendationsRequest | null, + protos.google.cloud.recommender.v1.IListRecommendationsResponse ] >; listRecommendations( - request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest, + request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, options: gax.CallOptions, - callback: Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation[], - protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest | null, - protosTypes.google.cloud.recommender.v1.IListRecommendationsResponse + callback: PaginationCallback< + protos.google.cloud.recommender.v1.IListRecommendationsRequest, + | protos.google.cloud.recommender.v1.IListRecommendationsResponse + | null + | undefined, + protos.google.cloud.recommender.v1.IRecommendation + > + ): void; + listRecommendations( + request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + callback: PaginationCallback< + protos.google.cloud.recommender.v1.IListRecommendationsRequest, + | protos.google.cloud.recommender.v1.IListRecommendationsResponse + | null + | undefined, + protos.google.cloud.recommender.v1.IRecommendation > ): void; /** @@ -764,24 +818,28 @@ export class RecommenderClient { * The promise has a method named "cancel" which cancels the ongoing API call. */ listRecommendations( - request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest, + request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, optionsOrCallback?: | gax.CallOptions - | Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation[], - protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest | null, - protosTypes.google.cloud.recommender.v1.IListRecommendationsResponse + | PaginationCallback< + protos.google.cloud.recommender.v1.IListRecommendationsRequest, + | protos.google.cloud.recommender.v1.IListRecommendationsResponse + | null + | undefined, + protos.google.cloud.recommender.v1.IRecommendation >, - callback?: Callback< - protosTypes.google.cloud.recommender.v1.IRecommendation[], - protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest | null, - protosTypes.google.cloud.recommender.v1.IListRecommendationsResponse + callback?: PaginationCallback< + protos.google.cloud.recommender.v1.IListRecommendationsRequest, + | protos.google.cloud.recommender.v1.IListRecommendationsResponse + | null + | undefined, + protos.google.cloud.recommender.v1.IRecommendation > ): Promise< [ - protosTypes.google.cloud.recommender.v1.IRecommendation[], - protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest | null, - protosTypes.google.cloud.recommender.v1.IListRecommendationsResponse + protos.google.cloud.recommender.v1.IRecommendation[], + protos.google.cloud.recommender.v1.IListRecommendationsRequest | null, + protos.google.cloud.recommender.v1.IListRecommendationsResponse ] > | void { request = request || {}; @@ -801,7 +859,7 @@ export class RecommenderClient { parent: request.parent || '', }); this.initialize(); - return this._innerApiCalls.listRecommendations(request, options, callback); + return this.innerApiCalls.listRecommendations(request, options, callback); } /** @@ -847,7 +905,7 @@ export class RecommenderClient { * An object stream which emits an object representing [Recommendation]{@link google.cloud.recommender.v1.Recommendation} on 'data' event. */ listRecommendationsStream( - request?: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest, + request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, options?: gax.CallOptions ): Transform { request = request || {}; @@ -861,12 +919,69 @@ export class RecommenderClient { }); const callSettings = new gax.CallSettings(options); this.initialize(); - return this._descriptors.page.listRecommendations.createStream( - this._innerApiCalls.listRecommendations as gax.GaxCall, + return this.descriptors.page.listRecommendations.createStream( + this.innerApiCalls.listRecommendations as gax.GaxCall, request, callSettings ); } + + /** + * Equivalent to {@link listRecommendations}, but returns an iterable object. + * + * for-await-of syntax is used with the iterable to recursively get response element on-demand. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The container resource on which to execute the request. + * Acceptable formats: + * + * 1. + * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", + * + * LOCATION here refers to GCP Locations: + * https://cloud.google.com/about/locations/ + * @param {number} [request.pageSize] + * Optional. The maximum number of results to return from this request. Non-positive + * values are ignored. If not specified, the server will determine the number + * of results to return. + * @param {string} [request.pageToken] + * Optional. If present, retrieves the next batch of results from the preceding call to + * this method. `page_token` must be the value of `next_page_token` from the + * previous response. The values of other method parameters must be identical + * to those in the previous call. + * @param {string} request.filter + * Filter expression to restrict the recommendations returned. Supported + * filter fields: state_info.state + * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" + * @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 conforms to @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols. + */ + listRecommendationsAsync( + request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + options?: gax.CallOptions + ): AsyncIterable { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + options = options || {}; + const callSettings = new gax.CallSettings(options); + this.initialize(); + return this.descriptors.page.listRecommendations.asyncIterate( + this.innerApiCalls['listRecommendations'] as GaxCall, + (request as unknown) as RequestType, + callSettings + ) as AsyncIterable; + } // -------------------- // -- Path templates -- // -------------------- @@ -886,11 +1001,11 @@ export class RecommenderClient { recommender: string, recommendation: string ) { - return this._pathTemplates.recommendationPathTemplate.render({ - project, - location, - recommender, - recommendation, + return this.pathTemplates.recommendationPathTemplate.render({ + project: project, + location: location, + recommender: recommender, + recommendation: recommendation, }); } @@ -902,7 +1017,7 @@ export class RecommenderClient { * @returns {string} A string representing the project. */ matchProjectFromRecommendationName(recommendationName: string) { - return this._pathTemplates.recommendationPathTemplate.match( + return this.pathTemplates.recommendationPathTemplate.match( recommendationName ).project; } @@ -915,7 +1030,7 @@ export class RecommenderClient { * @returns {string} A string representing the location. */ matchLocationFromRecommendationName(recommendationName: string) { - return this._pathTemplates.recommendationPathTemplate.match( + return this.pathTemplates.recommendationPathTemplate.match( recommendationName ).location; } @@ -928,7 +1043,7 @@ export class RecommenderClient { * @returns {string} A string representing the recommender. */ matchRecommenderFromRecommendationName(recommendationName: string) { - return this._pathTemplates.recommendationPathTemplate.match( + return this.pathTemplates.recommendationPathTemplate.match( recommendationName ).recommender; } @@ -941,7 +1056,7 @@ export class RecommenderClient { * @returns {string} A string representing the recommendation. */ matchRecommendationFromRecommendationName(recommendationName: string) { - return this._pathTemplates.recommendationPathTemplate.match( + return this.pathTemplates.recommendationPathTemplate.match( recommendationName ).recommendation; } @@ -955,10 +1070,10 @@ export class RecommenderClient { * @returns {string} Resource name string. */ recommenderPath(project: string, location: string, recommender: string) { - return this._pathTemplates.recommenderPathTemplate.render({ - project, - location, - recommender, + return this.pathTemplates.recommenderPathTemplate.render({ + project: project, + location: location, + recommender: recommender, }); } @@ -970,7 +1085,7 @@ export class RecommenderClient { * @returns {string} A string representing the project. */ matchProjectFromRecommenderName(recommenderName: string) { - return this._pathTemplates.recommenderPathTemplate.match(recommenderName) + return this.pathTemplates.recommenderPathTemplate.match(recommenderName) .project; } @@ -982,7 +1097,7 @@ export class RecommenderClient { * @returns {string} A string representing the location. */ matchLocationFromRecommenderName(recommenderName: string) { - return this._pathTemplates.recommenderPathTemplate.match(recommenderName) + return this.pathTemplates.recommenderPathTemplate.match(recommenderName) .location; } @@ -994,7 +1109,7 @@ export class RecommenderClient { * @returns {string} A string representing the recommender. */ matchRecommenderFromRecommenderName(recommenderName: string) { - return this._pathTemplates.recommenderPathTemplate.match(recommenderName) + return this.pathTemplates.recommenderPathTemplate.match(recommenderName) .recommender; } diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 745a854ae60..de95383594d 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -1,23 +1,5 @@ { - "updateTime": "2020-03-22T11:42:18.872862Z", - "sources": [ - { - "git": { - "name": "googleapis", - "remote": "https://github.com/googleapis/googleapis.git", - "sha": "0be7105dc52590fa9a24e784052298ae37ce53aa", - "internalRef": "302154871", - "log": "0be7105dc52590fa9a24e784052298ae37ce53aa\nAdd BUILD.bazel file to asset/v1p1beta1\n\nPiperOrigin-RevId: 302154871\n\n6c248fd13e8543f8d22cbf118d978301a9fbe2a8\nAdd missing resource annotations and additional_bindings to dialogflow v2 API.\n\nPiperOrigin-RevId: 302063117\n\n9a3a7f33be9eeacf7b3e98435816b7022d206bd7\nChange the service name from \"chromeos-moblab.googleapis.com\" to \"chromeosmoblab.googleapis.com\"\n\nPiperOrigin-RevId: 302060989\n\n98a339237577e3de26cb4921f75fb5c57cc7a19f\nfeat: devtools/build/v1 publish client library config annotations\n\n* add details field to some of the BuildEvents\n* add final_invocation_id and build_tool_exit_code fields to BuildStatus\n\nPiperOrigin-RevId: 302044087\n\ncfabc98c6bbbb22d1aeaf7612179c0be193b3a13\nfeat: home/graph/v1 publish client library config annotations & comment updates\n\nThis change includes adding the client library configuration annotations, updated proto comments, and some client library configuration files.\n\nPiperOrigin-RevId: 302042647\n\nc8c8c0bd15d082db9546253dbaad1087c7a9782c\nchore: use latest gapic-generator in bazel WORKSPACE.\nincluding the following commits from gapic-generator:\n- feat: take source protos in all sub-packages (#3144)\n\nPiperOrigin-RevId: 301843591\n\ne4daf5202ea31cb2cb6916fdbfa9d6bd771aeb4c\nAdd bazel file for v1 client lib generation\n\nPiperOrigin-RevId: 301802926\n\n275fbcce2c900278d487c33293a3c7e1fbcd3a34\nfeat: pubsub/v1 add an experimental filter field to Subscription\n\nPiperOrigin-RevId: 301661567\n\nf2b18cec51d27c999ad30011dba17f3965677e9c\nFix: UpdateBackupRequest.backup is a resource, not a resource reference - remove annotation.\n\nPiperOrigin-RevId: 301636171\n\n800384063ac93a0cac3a510d41726fa4b2cd4a83\nCloud Billing Budget API v1beta1\nModified api documentation to include warnings about the new filter field.\n\nPiperOrigin-RevId: 301634389\n\n0cc6c146b660db21f04056c3d58a4b752ee445e3\nCloud Billing Budget API v1alpha1\nModified api documentation to include warnings about the new filter field.\n\nPiperOrigin-RevId: 301630018\n\nff2ea00f69065585c3ac0993c8b582af3b6fc215\nFix: Add resource definition for a parent of InspectTemplate which was otherwise missing.\n\nPiperOrigin-RevId: 301623052\n\n55fa441c9daf03173910760191646399338f2b7c\nAdd proto definition for AccessLevel, AccessPolicy, and ServicePerimeter.\n\nPiperOrigin-RevId: 301620844\n\ne7b10591c5408a67cf14ffafa267556f3290e262\nCloud Bigtable Managed Backup service and message proto files.\n\nPiperOrigin-RevId: 301585144\n\nd8e226f702f8ddf92915128c9f4693b63fb8685d\nfeat: Add time-to-live in a queue for builds\n\nPiperOrigin-RevId: 301579876\n\n430375af011f8c7a5174884f0d0e539c6ffa7675\ndocs: add missing closing backtick\n\nPiperOrigin-RevId: 301538851\n\n0e9f1f60ded9ad1c2e725e37719112f5b487ab65\nbazel: Use latest release of gax_java\n\nPiperOrigin-RevId: 301480457\n\n5058c1c96d0ece7f5301a154cf5a07b2ad03a571\nUpdate GAPIC v2 with batching parameters for Logging API\n\nPiperOrigin-RevId: 301443847\n\n64ab9744073de81fec1b3a6a931befc8a90edf90\nFix: Introduce location-based organization/folder/billing-account resources\nChore: Update copyright years\n\nPiperOrigin-RevId: 301373760\n\n23d5f09e670ebb0c1b36214acf78704e2ecfc2ac\nUpdate field_behavior annotations in V1 and V2.\n\nPiperOrigin-RevId: 301337970\n\nb2cf37e7fd62383a811aa4d54d013ecae638851d\nData Catalog V1 API\n\nPiperOrigin-RevId: 301282503\n\n1976b9981e2900c8172b7d34b4220bdb18c5db42\nCloud DLP api update. Adds missing fields to Finding and adds support for hybrid jobs.\n\nPiperOrigin-RevId: 301205325\n\nae78682c05e864d71223ce22532219813b0245ac\nfix: several sample code blocks in comments are now properly indented for markdown\n\nPiperOrigin-RevId: 301185150\n\ndcd171d04bda5b67db13049320f97eca3ace3731\nPublish Media Translation API V1Beta1\n\nPiperOrigin-RevId: 301180096\n\nff1713453b0fbc5a7544a1ef6828c26ad21a370e\nAdd protos and BUILD rules for v1 API.\n\nPiperOrigin-RevId: 301179394\n\n8386761d09819b665b6a6e1e6d6ff884bc8ff781\nfeat: chromeos/modlab publish protos and config for Chrome OS Moblab API.\n\nPiperOrigin-RevId: 300843960\n\nb2e2bc62fab90e6829e62d3d189906d9b79899e4\nUpdates to GCS gRPC API spec:\n\n1. Changed GetIamPolicy and TestBucketIamPermissions to use wrapper messages around google.iam.v1 IAM requests messages, and added CommonRequestParams. This lets us support RequesterPays buckets.\n2. Added a metadata field to GetObjectMediaResponse, to support resuming an object media read safely (by extracting the generation of the object being read, and using it in the resumed read request).\n\nPiperOrigin-RevId: 300817706\n\n7fd916ce12335cc9e784bb9452a8602d00b2516c\nAdd deprecated_collections field for backward-compatiblity in PHP and monolith-generated Python and Ruby clients.\n\nGenerate TopicName class in Java which covers the functionality of both ProjectTopicName and DeletedTopicName. Introduce breaking changes to be fixed by synth.py.\n\nDelete default retry parameters.\n\nRetry codes defs can be deleted once # https://github.com/googleapis/gapic-generator/issues/3137 is fixed.\n\nPiperOrigin-RevId: 300813135\n\n047d3a8ac7f75383855df0166144f891d7af08d9\nfix!: google/rpc refactor ErrorInfo.type to ErrorInfo.reason and comment updates.\n\nPiperOrigin-RevId: 300773211\n\nfae4bb6d5aac52aabe5f0bb4396466c2304ea6f6\nAdding RetryPolicy to pubsub.proto\n\nPiperOrigin-RevId: 300769420\n\n7d569be2928dbd72b4e261bf9e468f23afd2b950\nAdding additional protocol buffer annotations to v3.\n\nPiperOrigin-RevId: 300718800\n\n13942d1a85a337515040a03c5108993087dc0e4f\nAdd logging protos for Recommender v1.\n\nPiperOrigin-RevId: 300689896\n\na1a573c3eecfe2c404892bfa61a32dd0c9fb22b6\nfix: change go package to use cloud.google.com/go/maps\n\nPiperOrigin-RevId: 300661825\n\nc6fbac11afa0c7ab2972d9df181493875c566f77\nfeat: publish documentai/v1beta2 protos\n\nPiperOrigin-RevId: 300656808\n\n5202a9e0d9903f49e900f20fe5c7f4e42dd6588f\nProtos for v1beta1 release of Cloud Security Center Settings API\n\nPiperOrigin-RevId: 300580858\n\n83518e18655d9d4ac044acbda063cc6ecdb63ef8\nAdds gapic.yaml file and BUILD.bazel file.\n\nPiperOrigin-RevId: 300554200\n\n836c196dc8ef8354bbfb5f30696bd3477e8db5e2\nRegenerate recommender v1beta1 gRPC ServiceConfig file for Insights methods.\n\nPiperOrigin-RevId: 300549302\n\n34a5450c591b6be3d6566f25ac31caa5211b2f3f\nIncreases the default timeout from 20s to 30s for MetricService\n\nPiperOrigin-RevId: 300474272\n\n5d8bffe87cd01ba390c32f1714230e5a95d5991d\nfeat: use the latest gapic-generator in WORKSPACE for bazel build.\n\nPiperOrigin-RevId: 300461878\n\nd631c651e3bcfac5d371e8560c27648f7b3e2364\nUpdated the GAPIC configs to include parameters for Backups APIs.\n\nPiperOrigin-RevId: 300443402\n\n678afc7055c1adea9b7b54519f3bdb228013f918\nAdding Game Servers v1beta API.\n\nPiperOrigin-RevId: 300433218\n\n80d2bd2c652a5e213302041b0620aff423132589\nEnable proto annotation and gapic v2 for talent API.\n\nPiperOrigin-RevId: 300393997\n\n85e454be7a353f7fe1bf2b0affb753305785b872\ndocs(google/maps/roads): remove mention of nonexported api\n\nPiperOrigin-RevId: 300367734\n\nbf839ae632e0f263a729569e44be4b38b1c85f9c\nAdding protocol buffer annotations and updated config info for v1 and v2.\n\nPiperOrigin-RevId: 300276913\n\n309b899ca18a4c604bce63882a161d44854da549\nPublish `Backup` APIs and protos.\n\nPiperOrigin-RevId: 300246038\n\neced64c3f122421350b4aca68a28e89121d20db8\nadd PHP client libraries\n\nPiperOrigin-RevId: 300193634\n\n7727af0e39df1ae9ad715895c8576d7b65cf6c6d\nfeat: use the latest gapic-generator and protoc-java-resource-name-plugin in googleapis/WORKSPACE.\n\nPiperOrigin-RevId: 300188410\n\n2a25aa351dd5b5fe14895266aff5824d90ce757b\nBreaking change: remove the ProjectOrTenant resource and its references.\n\nPiperOrigin-RevId: 300182152\n\na499dbb28546379415f51803505cfb6123477e71\nUpdate web risk v1 gapic config and BUILD file.\n\nPiperOrigin-RevId: 300152177\n\n52701da10fec2a5f9796e8d12518c0fe574488fe\nFix: apply appropriate namespace/package options for C#, PHP and Ruby.\n\nPiperOrigin-RevId: 300123508\n\n365c029b8cdb63f7751b92ab490f1976e616105c\nAdd CC targets to the kms protos.\n\nThese are needed by go/tink.\n\nPiperOrigin-RevId: 300038469\n\n4ba9aa8a4a1413b88dca5a8fa931824ee9c284e6\nExpose logo recognition API proto for GA.\n\nPiperOrigin-RevId: 299971671\n\n1c9fc2c9e03dadf15f16b1c4f570955bdcebe00e\nAdding ruby_package option to accessapproval.proto for the Ruby client libraries generation.\n\nPiperOrigin-RevId: 299955924\n\n1cc6f0a7bfb147e6f2ede911d9b01e7a9923b719\nbuild(google/maps/routes): generate api clients\n\nPiperOrigin-RevId: 299955905\n\n29a47c965aac79e3fe8e3314482ca0b5967680f0\nIncrease timeout to 1hr for method `dropRange` in bigtable/admin/v2, which is\nsynced with the timeout setting in gapic_yaml.\n\nPiperOrigin-RevId: 299917154\n\n8f631c4c70a60a9c7da3749511ee4ad432b62898\nbuild(google/maps/roads/v1op): move go to monorepo pattern\n\nPiperOrigin-RevId: 299885195\n\nd66816518844ebbf63504c9e8dfc7133921dd2cd\nbuild(google/maps/roads/v1op): Add bazel build files to generate clients.\n\nPiperOrigin-RevId: 299851148\n\naf7dff701fabe029672168649c62356cf1bb43d0\nAdd LogPlayerReports and LogImpressions to Playable Locations service\n\nPiperOrigin-RevId: 299724050\n\nb6927fca808f38df32a642c560082f5bf6538ced\nUpdate BigQuery Connection API v1beta1 proto: added credential to CloudSqlProperties.\n\nPiperOrigin-RevId: 299503150\n\n91e1fb5ef9829c0c7a64bfa5bde330e6ed594378\nchore: update protobuf (protoc) version to 3.11.2\n\nPiperOrigin-RevId: 299404145\n\n30e36b4bee6749c4799f4fc1a51cc8f058ba167d\nUpdate cloud asset api v1p4beta1.\n\nPiperOrigin-RevId: 299399890\n\nffbb493674099f265693872ae250711b2238090c\nfeat: cloudbuild/v1 add new fields and annotate OUTPUT_OUT fields.\n\nPiperOrigin-RevId: 299397780\n\nbc973a15818e00c19e121959832676e9b7607456\nbazel: Fix broken common dependency\n\nPiperOrigin-RevId: 299397431\n\n71094a343e3b962e744aa49eb9338219537474e4\nchore: bigtable/admin/v2 publish retry config\n\nPiperOrigin-RevId: 299391875\n\n8f488efd7bda33885cb674ddd023b3678c40bd82\nfeat: Migrate logging to GAPIC v2; release new features.\n\nIMPORTANT: This is a breaking change for client libraries\nin all languages.\n\nCommitter: @lukesneeringer, @jskeet\nPiperOrigin-RevId: 299370279\n\n007605bf9ad3a1fd775014ebefbf7f1e6b31ee71\nUpdate API for bigqueryreservation v1beta1.\n- Adds flex capacity commitment plan to CapacityCommitment.\n- Adds methods for getting and updating BiReservations.\n- Adds methods for updating/splitting/merging CapacityCommitments.\n\nPiperOrigin-RevId: 299368059\n\n" - } - }, - { - "git": { - "name": "synthtool", - "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7e98e1609c91082f4eeb63b530c6468aefd18cfd" - } - } - ], + "updateTime": "2020-03-31T19:57:39.633417Z", "destinations": [ { "client": { diff --git a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js index 59a3c7d7ef0..e8f4e4a22a6 100644 --- a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js +++ b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js @@ -16,7 +16,6 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** - /* eslint-disable node/no-missing-require, no-unused-vars */ const recommender = require('@google-cloud/recommender'); diff --git a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts index 42fb9640ee5..e34cf834f4e 100644 --- a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts +++ b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts @@ -19,7 +19,7 @@ import {RecommenderClient} from '@google-cloud/recommender'; function main() { - const recommenderClient = new RecommenderClient(); + new RecommenderClient(); } main(); diff --git a/packages/google-cloud-recommender/test/gapic-recommender-v1.ts b/packages/google-cloud-recommender/test/gapic-recommender-v1.ts deleted file mode 100644 index f4d8860e786..00000000000 --- a/packages/google-cloud-recommender/test/gapic-recommender-v1.ts +++ /dev/null @@ -1,380 +0,0 @@ -// Copyright 2020 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -import * as protosTypes from '../protos/protos'; -import * as assert from 'assert'; -import {describe, it} from 'mocha'; -const recommenderModule = require('../src'); - -const FAKE_STATUS_CODE = 1; -class FakeError { - name: string; - message: string; - code: number; - constructor(n: number) { - this.name = 'fakeName'; - this.message = 'fake message'; - this.code = n; - } -} -const error = new FakeError(FAKE_STATUS_CODE); -export interface Callback { - (err: FakeError | null, response?: {} | null): void; -} - -export class Operation { - constructor() {} - promise() {} -} -function mockSimpleGrpcMethod( - expectedRequest: {}, - response: {} | null, - error: FakeError | null -) { - return (actualRequest: {}, options: {}, callback: Callback) => { - assert.deepStrictEqual(actualRequest, expectedRequest); - if (error) { - callback(error); - } else if (response) { - callback(null, response); - } else { - callback(null); - } - }; -} -describe('v1.RecommenderClient', () => { - it('has servicePath', () => { - const servicePath = recommenderModule.v1.RecommenderClient.servicePath; - assert(servicePath); - }); - it('has apiEndpoint', () => { - const apiEndpoint = recommenderModule.v1.RecommenderClient.apiEndpoint; - assert(apiEndpoint); - }); - it('has port', () => { - const port = recommenderModule.v1.RecommenderClient.port; - assert(port); - assert(typeof port === 'number'); - }); - it('should create a client with no option', () => { - const client = new recommenderModule.v1.RecommenderClient(); - assert(client); - }); - it('should create a client with gRPC fallback', () => { - const client = new recommenderModule.v1.RecommenderClient({ - fallback: true, - }); - assert(client); - }); - it('has initialize method and supports deferred initialization', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.recommenderStub, undefined); - await client.initialize(); - assert(client.recommenderStub); - }); - it('has close method', () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.close(); - }); - describe('getRecommendation', () => { - it('invokes getRecommendation without error', done => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - // Initialize client before mocking - client.initialize(); - // Mock request - const request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest = {}; - request.name = ''; - // Mock response - const expectedResponse = {}; - // Mock gRPC layer - client._innerApiCalls.getRecommendation = mockSimpleGrpcMethod( - request, - expectedResponse, - null - ); - client.getRecommendation(request, (err: {}, response: {}) => { - assert.ifError(err); - assert.deepStrictEqual(response, expectedResponse); - done(); - }); - }); - - it('invokes getRecommendation with error', done => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - // Initialize client before mocking - client.initialize(); - // Mock request - const request: protosTypes.google.cloud.recommender.v1.IGetRecommendationRequest = {}; - request.name = ''; - // Mock response - const expectedResponse = {}; - // Mock gRPC layer - client._innerApiCalls.getRecommendation = mockSimpleGrpcMethod( - request, - null, - error - ); - client.getRecommendation(request, (err: FakeError, response: {}) => { - assert(err instanceof FakeError); - assert.strictEqual(err.code, FAKE_STATUS_CODE); - assert(typeof response === 'undefined'); - done(); - }); - }); - }); - describe('markRecommendationClaimed', () => { - it('invokes markRecommendationClaimed without error', done => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - // Initialize client before mocking - client.initialize(); - // Mock request - const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest = {}; - request.name = ''; - // Mock response - const expectedResponse = {}; - // Mock gRPC layer - client._innerApiCalls.markRecommendationClaimed = mockSimpleGrpcMethod( - request, - expectedResponse, - null - ); - client.markRecommendationClaimed(request, (err: {}, response: {}) => { - assert.ifError(err); - assert.deepStrictEqual(response, expectedResponse); - done(); - }); - }); - - it('invokes markRecommendationClaimed with error', done => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - // Initialize client before mocking - client.initialize(); - // Mock request - const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest = {}; - request.name = ''; - // Mock response - const expectedResponse = {}; - // Mock gRPC layer - client._innerApiCalls.markRecommendationClaimed = mockSimpleGrpcMethod( - request, - null, - error - ); - client.markRecommendationClaimed( - request, - (err: FakeError, response: {}) => { - assert(err instanceof FakeError); - assert.strictEqual(err.code, FAKE_STATUS_CODE); - assert(typeof response === 'undefined'); - done(); - } - ); - }); - }); - describe('markRecommendationSucceeded', () => { - it('invokes markRecommendationSucceeded without error', done => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - // Initialize client before mocking - client.initialize(); - // Mock request - const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest = {}; - request.name = ''; - // Mock response - const expectedResponse = {}; - // Mock gRPC layer - client._innerApiCalls.markRecommendationSucceeded = mockSimpleGrpcMethod( - request, - expectedResponse, - null - ); - client.markRecommendationSucceeded(request, (err: {}, response: {}) => { - assert.ifError(err); - assert.deepStrictEqual(response, expectedResponse); - done(); - }); - }); - - it('invokes markRecommendationSucceeded with error', done => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - // Initialize client before mocking - client.initialize(); - // Mock request - const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest = {}; - request.name = ''; - // Mock response - const expectedResponse = {}; - // Mock gRPC layer - client._innerApiCalls.markRecommendationSucceeded = mockSimpleGrpcMethod( - request, - null, - error - ); - client.markRecommendationSucceeded( - request, - (err: FakeError, response: {}) => { - assert(err instanceof FakeError); - assert.strictEqual(err.code, FAKE_STATUS_CODE); - assert(typeof response === 'undefined'); - done(); - } - ); - }); - }); - describe('markRecommendationFailed', () => { - it('invokes markRecommendationFailed without error', done => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - // Initialize client before mocking - client.initialize(); - // Mock request - const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest = {}; - request.name = ''; - // Mock response - const expectedResponse = {}; - // Mock gRPC layer - client._innerApiCalls.markRecommendationFailed = mockSimpleGrpcMethod( - request, - expectedResponse, - null - ); - client.markRecommendationFailed(request, (err: {}, response: {}) => { - assert.ifError(err); - assert.deepStrictEqual(response, expectedResponse); - done(); - }); - }); - - it('invokes markRecommendationFailed with error', done => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - // Initialize client before mocking - client.initialize(); - // Mock request - const request: protosTypes.google.cloud.recommender.v1.IMarkRecommendationFailedRequest = {}; - request.name = ''; - // Mock response - const expectedResponse = {}; - // Mock gRPC layer - client._innerApiCalls.markRecommendationFailed = mockSimpleGrpcMethod( - request, - null, - error - ); - client.markRecommendationFailed( - request, - (err: FakeError, response: {}) => { - assert(err instanceof FakeError); - assert.strictEqual(err.code, FAKE_STATUS_CODE); - assert(typeof response === 'undefined'); - done(); - } - ); - }); - }); - describe('listRecommendations', () => { - it('invokes listRecommendations without error', done => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - // Initialize client before mocking - client.initialize(); - // Mock request - const request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest = {}; - request.parent = ''; - // Mock response - const expectedResponse = {}; - // Mock Grpc layer - client._innerApiCalls.listRecommendations = ( - actualRequest: {}, - options: {}, - callback: Callback - ) => { - assert.deepStrictEqual(actualRequest, request); - callback(null, expectedResponse); - }; - client.listRecommendations(request, (err: FakeError, response: {}) => { - assert.ifError(err); - assert.deepStrictEqual(response, expectedResponse); - done(); - }); - }); - }); - describe('listRecommendationsStream', () => { - it('invokes listRecommendationsStream without error', done => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - // Initialize client before mocking - client.initialize(); - // Mock request - const request: protosTypes.google.cloud.recommender.v1.IListRecommendationsRequest = {}; - request.parent = ''; - // Mock response - const expectedResponse = {response: 'data'}; - // Mock Grpc layer - client._innerApiCalls.listRecommendations = ( - actualRequest: {}, - options: {}, - callback: Callback - ) => { - assert.deepStrictEqual(actualRequest, request); - callback(null, expectedResponse); - }; - const stream = client - .listRecommendationsStream(request, {}) - .on('data', (response: {}) => { - assert.deepStrictEqual(response, expectedResponse); - done(); - }) - .on('error', (err: FakeError) => { - done(err); - }); - stream.write(expectedResponse); - }); - }); -}); diff --git a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts new file mode 100644 index 00000000000..f6585cf746a --- /dev/null +++ b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts @@ -0,0 +1,1122 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +import * as protos from '../protos/protos'; +import * as assert from 'assert'; +import * as sinon from 'sinon'; +import {SinonStub} from 'sinon'; +import {describe, it} from 'mocha'; +import * as recommenderModule from '../src'; + +import {PassThrough} from 'stream'; + +import {protobuf} from 'google-gax'; + +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; +} + +function stubSimpleCall(response?: ResponseType, error?: Error) { + 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 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({}); + }); + } + setImmediate(() => { + mockStream.end(); + }); + } else { + setImmediate(() => { + mockStream.write({}); + }); + setImmediate(() => { + mockStream.end(); + }); + } + 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); +} + +describe('v1.RecommenderClient', () => { + it('has servicePath', () => { + const servicePath = recommenderModule.v1.RecommenderClient.servicePath; + assert(servicePath); + }); + + it('has apiEndpoint', () => { + const apiEndpoint = recommenderModule.v1.RecommenderClient.apiEndpoint; + assert(apiEndpoint); + }); + + it('has port', () => { + const port = recommenderModule.v1.RecommenderClient.port; + assert(port); + assert(typeof port === 'number'); + }); + + it('should create a client with no option', () => { + const client = new recommenderModule.v1.RecommenderClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = new recommenderModule.v1.RecommenderClient({ + fallback: true, + }); + assert(client); + }); + + it('has initialize method and supports deferred initialization', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + assert.strictEqual(client.recommenderStub, undefined); + await client.initialize(); + assert(client.recommenderStub); + }); + + it('has close method', () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.close(); + }); + + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new recommenderModule.v1.RecommenderClient({ + 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 recommenderModule.v1.RecommenderClient({ + 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('getRecommendation', () => { + it('invokes getRecommendation without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.GetRecommendationRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.getRecommendation = stubSimpleCall(expectedResponse); + const [response] = await client.getRecommendation(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.getRecommendation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes getRecommendation without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.GetRecommendationRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.getRecommendation = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.getRecommendation( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IRecommendation | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.getRecommendation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); + + it('invokes getRecommendation with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.GetRecommendationRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.getRecommendation = stubSimpleCall( + undefined, + expectedError + ); + assert.rejects(async () => { + await client.getRecommendation(request); + }, expectedError); + assert( + (client.innerApiCalls.getRecommendation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + }); + + describe('markRecommendationClaimed', () => { + it('invokes markRecommendationClaimed without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.markRecommendationClaimed = stubSimpleCall( + expectedResponse + ); + const [response] = await client.markRecommendationClaimed(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markRecommendationClaimed as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes markRecommendationClaimed without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.markRecommendationClaimed = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.markRecommendationClaimed( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IRecommendation | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markRecommendationClaimed as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); + + it('invokes markRecommendationClaimed with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.markRecommendationClaimed = stubSimpleCall( + undefined, + expectedError + ); + assert.rejects(async () => { + await client.markRecommendationClaimed(request); + }, expectedError); + assert( + (client.innerApiCalls.markRecommendationClaimed as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + }); + + describe('markRecommendationSucceeded', () => { + it('invokes markRecommendationSucceeded without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.markRecommendationSucceeded = stubSimpleCall( + expectedResponse + ); + const [response] = await client.markRecommendationSucceeded(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markRecommendationSucceeded as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes markRecommendationSucceeded without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.markRecommendationSucceeded = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.markRecommendationSucceeded( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IRecommendation | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markRecommendationSucceeded as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); + + it('invokes markRecommendationSucceeded with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.markRecommendationSucceeded = stubSimpleCall( + undefined, + expectedError + ); + assert.rejects(async () => { + await client.markRecommendationSucceeded(request); + }, expectedError); + assert( + (client.innerApiCalls.markRecommendationSucceeded as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + }); + + describe('markRecommendationFailed', () => { + it('invokes markRecommendationFailed without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.markRecommendationFailed = stubSimpleCall( + expectedResponse + ); + const [response] = await client.markRecommendationFailed(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markRecommendationFailed as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes markRecommendationFailed without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.markRecommendationFailed = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.markRecommendationFailed( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IRecommendation | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markRecommendationFailed as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); + + it('invokes markRecommendationFailed with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.markRecommendationFailed = stubSimpleCall( + undefined, + expectedError + ); + assert.rejects(async () => { + await client.markRecommendationFailed(request); + }, expectedError); + assert( + (client.innerApiCalls.markRecommendationFailed as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + }); + + describe('listRecommendations', () => { + it('invokes listRecommendations without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + ]; + client.innerApiCalls.listRecommendations = stubSimpleCall( + expectedResponse + ); + const [response] = await client.listRecommendations(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.listRecommendations as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes listRecommendations without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + ]; + client.innerApiCalls.listRecommendations = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.listRecommendations( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IRecommendation[] | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.listRecommendations as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); + + it('invokes listRecommendations with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.listRecommendations = stubSimpleCall( + undefined, + expectedError + ); + assert.rejects(async () => { + await client.listRecommendations(request); + }, expectedError); + assert( + (client.innerApiCalls.listRecommendations as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes listRecommendationsStream without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + ]; + client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall( + expectedResponse + ); + const stream = client.listRecommendationsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; + stream.on( + 'data', + (response: protos.google.cloud.recommender.v1.Recommendation) => { + 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.listRecommendations.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listRecommendations, request) + ); + assert.strictEqual( + (client.descriptors.page.listRecommendations + .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ + 'x-goog-request-params' + ], + expectedHeaderRequestParams + ); + }); + + it('invokes listRecommendationsStream with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedError = new Error('expected'); + client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall( + undefined, + expectedError + ); + const stream = client.listRecommendationsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; + stream.on( + 'data', + (response: protos.google.cloud.recommender.v1.Recommendation) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + assert.rejects(async () => { + await promise; + }, expectedError); + assert( + (client.descriptors.page.listRecommendations.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listRecommendations, request) + ); + assert.strictEqual( + (client.descriptors.page.listRecommendations + .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ + 'x-goog-request-params' + ], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with listRecommendations without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + ]; + client.descriptors.page.listRecommendations.asyncIterate = stubAsyncIterationCall( + expectedResponse + ); + const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; + const iterable = client.listRecommendationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + (client.descriptors.page.listRecommendations + .asyncIterate as SinonStub).getCall(0).args[1], + request + ); + assert.strictEqual( + (client.descriptors.page.listRecommendations + .asyncIterate as SinonStub).getCall(0).args[2].otherArgs.headers[ + 'x-goog-request-params' + ], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with listRecommendations with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedError = new Error('expected'); + client.descriptors.page.listRecommendations.asyncIterate = stubAsyncIterationCall( + undefined, + expectedError + ); + const iterable = client.listRecommendationsAsync(request); + assert.rejects(async () => { + const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + (client.descriptors.page.listRecommendations + .asyncIterate as SinonStub).getCall(0).args[1], + request + ); + assert.strictEqual( + (client.descriptors.page.listRecommendations + .asyncIterate as SinonStub).getCall(0).args[2].otherArgs.headers[ + 'x-goog-request-params' + ], + expectedHeaderRequestParams + ); + }); + }); + + describe('Path templates', () => { + describe('recommendation', () => { + const fakePath = '/rendered/path/recommendation'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + recommender: 'recommenderValue', + recommendation: 'recommendationValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.recommendationPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.recommendationPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('recommendationPath', () => { + const result = client.recommendationPath( + 'projectValue', + 'locationValue', + 'recommenderValue', + 'recommendationValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.recommendationPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromRecommendationName', () => { + const result = client.matchProjectFromRecommendationName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.recommendationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromRecommendationName', () => { + const result = client.matchLocationFromRecommendationName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.recommendationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommenderFromRecommendationName', () => { + const result = client.matchRecommenderFromRecommendationName(fakePath); + assert.strictEqual(result, 'recommenderValue'); + assert( + (client.pathTemplates.recommendationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommendationFromRecommendationName', () => { + const result = client.matchRecommendationFromRecommendationName( + fakePath + ); + assert.strictEqual(result, 'recommendationValue'); + assert( + (client.pathTemplates.recommendationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('recommender', () => { + const fakePath = '/rendered/path/recommender'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + recommender: 'recommenderValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.recommenderPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.recommenderPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('recommenderPath', () => { + const result = client.recommenderPath( + 'projectValue', + 'locationValue', + 'recommenderValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.recommenderPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromRecommenderName', () => { + const result = client.matchProjectFromRecommenderName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.recommenderPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromRecommenderName', () => { + const result = client.matchLocationFromRecommenderName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.recommenderPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommenderFromRecommenderName', () => { + const result = client.matchRecommenderFromRecommenderName(fakePath); + assert.strictEqual(result, 'recommenderValue'); + assert( + (client.pathTemplates.recommenderPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + }); +}); diff --git a/packages/google-cloud-recommender/webpack.config.js b/packages/google-cloud-recommender/webpack.config.js index ae0c62f95e1..40a80f89007 100644 --- a/packages/google-cloud-recommender/webpack.config.js +++ b/packages/google-cloud-recommender/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', }, ], }, From 993f92ac6e07bb151db263a7e2b40f711ba87276 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 31 Mar 2020 18:38:42 -0700 Subject: [PATCH 036/158] build: set AUTOSYNTH_MULTIPLE_COMMITS=true for context aware commits (#55) --- packages/google-cloud-recommender/synth.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/google-cloud-recommender/synth.py b/packages/google-cloud-recommender/synth.py index df668128fbf..8ffabbb6db6 100644 --- a/packages/google-cloud-recommender/synth.py +++ b/packages/google-cloud-recommender/synth.py @@ -21,6 +21,9 @@ logging.basicConfig(level=logging.DEBUG) +AUTOSYNTH_MULTIPLE_COMMITS = True + + # Run the gapic generator gapic = gcp.GAPICMicrogenerator() name = 'recommender' From 38443bb6d8150a3931e7c24787ea3478fe60a69a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 1 Apr 2020 23:36:29 +0200 Subject: [PATCH 037/158] chore(deps): update dependency @types/sinon to v9 (#56) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@types/sinon](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | devDependencies | major | [`^7.5.2` -> `^9.0.0`](https://renovatebot.com/diffs/npm/@types%2fsinon/7.5.2/9.0.0) | --- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index a3075ad0fe9..38170f71f72 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -31,7 +31,7 @@ "devDependencies": { "@types/mocha": "^7.0.0", "@types/node": "^12.0.0", - "@types/sinon": "^7.5.2", + "@types/sinon": "^9.0.0", "c8": "^7.0.0", "eslint": "^6.8.0", "eslint-config-prettier": "^6.9.0", From b2092e721c7ae7dc1e959dd9242f0f6dc979c2a1 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Sun, 5 Apr 2020 12:49:27 -0700 Subject: [PATCH 038/158] chore: remove duplicate mocha config (#59) --- packages/google-cloud-recommender/.mocharc.json | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 packages/google-cloud-recommender/.mocharc.json diff --git a/packages/google-cloud-recommender/.mocharc.json b/packages/google-cloud-recommender/.mocharc.json deleted file mode 100644 index 670c5e2c24b..00000000000 --- a/packages/google-cloud-recommender/.mocharc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "enable-source-maps": true, - "throw-deprecation": true, - "timeout": 10000 -} From f78bf8d91ce23bc4014c4403c4e64704ab58a587 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 7 Apr 2020 00:10:18 -0700 Subject: [PATCH 039/158] fix: export explicit version from protos.js (#58) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/1630485f-7526-4afd-9c13-b5660664d6a2/targets --- .../google-cloud-recommender/protos/protos.js | 2 +- .../google-cloud-recommender/synth.metadata | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index bfd2de0c152..35429fe4443 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -28,7 +28,7 @@ var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util; // Exported root namespace - var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {}); + var $root = $protobuf.roots._google_cloud_recommender_2_2_0_protos || ($protobuf.roots._google_cloud_recommender_2_2_0_protos = {}); $root.google = (function() { diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index de95383594d..237237f203e 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -1,5 +1,22 @@ { - "updateTime": "2020-03-31T19:57:39.633417Z", + "updateTime": "2020-04-03T12:03:39.993401Z", + "sources": [ + { + "git": { + "name": "googleapis", + "remote": "https://github.com/googleapis/googleapis.git", + "sha": "3d5d228a58bdf875e6147b228db3159010c735ee", + "internalRef": "304500143" + } + }, + { + "git": { + "name": "synthtool", + "remote": "https://github.com/googleapis/synthtool.git", + "sha": "99820243d348191bc9c634f2b48ddf65096285ed" + } + } + ], "destinations": [ { "client": { From 936c7fc28e114c8432b4251d88984d5ddb1aa8bf Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 10 Apr 2020 20:58:27 +0200 Subject: [PATCH 040/158] chore(deps): update dependency gts to v2.0.0 (#62) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [gts](https://togithub.com/google/gts) | devDependencies | patch | [`2.0.0-alpha.9` -> `2.0.0`](https://renovatebot.com/diffs/npm/gts/2.0.0-alpha.9/2.0.0) | --- ### Release Notes
google/gts ### [`v2.0.0`](https://togithub.com/google/gts/blob/master/CHANGELOG.md#​200-httpswwwgithubcomgooglegtscomparev112v200-2020-04-02) [Compare Source](https://togithub.com/google/gts/compare/39a2705e51b4b6329a70f91f8293a2d7a363bf5d...v2.0.0) ##### ⚠ BREAKING CHANGES ⚠ This is a major rewrite of the tool. Based on community guidance, we've switched from using [tslint](https://palantir.github.io/tslint/) to [eslint](https://eslint.org/). _Please read all of the steps below to upgrade_. ##### Configuring `eslint` With the shift to `eslint`, `gts` now will format and lint JavaScript _as well_ as TypeScript. Upgrading will require a number of manual steps. To format JavaScript and TypeScript, you can run: $ npx gts fix To specify only TypeScript: $ npx gts fix '**/*.ts' ##### Delete `tslint.json` This file is no longer used, and can lead to confusion. ##### Create a `.eslintrc.json` Now that we're using eslint, you need to extend the eslint configuration baked into the module. Create a new file named `.eslintrc.json`, and paste the following: ```js { "extends": "./node_modules/gts" } ``` ##### Create a `.eslintignore` The `.eslintignore` file lets you ignore specific directories. This tool now lints and formats JavaScript, so it's _really_ important to ignore your build directory! Here is an example of a `.eslintignore` file: **/node_modules build/ ##### Rule changes The underlying linter was changed, so naturally there are going to be a variety of rule changes along the way. To see the full list, check out [.eslintrc.json](https://togithub.com/google/gts/blob/master/.eslintrc.json). ##### Require Node.js 10.x and up Node.js 8.x is now end of life - this module now requires Ndoe.js 10.x and up. ##### Features - add the eol-last rule ([#​425](https://www.github.com/google/gts/issues/425)) ([50ebd4d](https://www.github.com/google/gts/commit/50ebd4dbaf063615f4c025f567ca28076a734223)) - allow eslintrc to run over tsx files ([#​469](https://www.github.com/google/gts/issues/469)) ([a21db94](https://www.github.com/google/gts/commit/a21db94601def563952d677cb0980a12b6730f4c)) - disable global rule for checking TODO comments ([#​459](https://www.github.com/google/gts/issues/459)) ([96aa84a](https://www.github.com/google/gts/commit/96aa84a0a42181046daa248750cc8fef0c320619)) - override require-atomic-updates ([#​468](https://www.github.com/google/gts/issues/468)) ([8105c93](https://www.github.com/google/gts/commit/8105c9334ee5104b05f6b1b2f150e51419637262)) - prefer single quotes if possible ([#​475](https://www.github.com/google/gts/issues/475)) ([39a2705](https://www.github.com/google/gts/commit/39a2705e51b4b6329a70f91f8293a2d7a363bf5d)) - use eslint instead of tslint ([#​400](https://www.github.com/google/gts/issues/400)) ([b3096fb](https://www.github.com/google/gts/commit/b3096fbd5076d302d93c2307bf627e12c423e726)) ##### Bug Fixes - use .prettierrc.js ([#​437](https://www.github.com/google/gts/issues/437)) ([06efa84](https://www.github.com/google/gts/commit/06efa8444cdf1064b64f3e8d61ebd04f45d90b4c)) - **deps:** update dependency chalk to v4 ([#​477](https://www.github.com/google/gts/issues/477)) ([061d64e](https://www.github.com/google/gts/commit/061d64e29d37b93ce55228937cc100e05ddef352)) - **deps:** update dependency eslint-plugin-node to v11 ([#​426](https://www.github.com/google/gts/issues/426)) ([a394b7c](https://www.github.com/google/gts/commit/a394b7c1f80437f25017ca5c500b968ebb789ece)) - **deps:** update dependency execa to v4 ([#​427](https://www.github.com/google/gts/issues/427)) ([f42ef36](https://www.github.com/google/gts/commit/f42ef36709251553342e655e287e889df72ee3e3)) - **deps:** update dependency prettier to v2 ([#​464](https://www.github.com/google/gts/issues/464)) ([20ef43d](https://www.github.com/google/gts/commit/20ef43d566df17d3c93949ef7db3b72ee9123ca3)) - disable no-use-before-define ([#​431](https://www.github.com/google/gts/issues/431)) ([dea2c22](https://www.github.com/google/gts/commit/dea2c223d1d3a60a1786aa820eebb93be27016a7)) - **deps:** update dependency update-notifier to v4 ([#​403](https://www.github.com/google/gts/issues/403)) ([57393b7](https://www.github.com/google/gts/commit/57393b74c6cf299e8ae09311f0382226b8baa3e3)) - **deps:** upgrade to meow 6.x ([#​423](https://www.github.com/google/gts/issues/423)) ([8f93d00](https://www.github.com/google/gts/commit/8f93d0049337a832d9a22b6ae4e86fd41140ec56)) - align back to the google style guide ([#​440](https://www.github.com/google/gts/issues/440)) ([8bd78c4](https://www.github.com/google/gts/commit/8bd78c4c78526a72400f618a95a987d2a7c1a8db)) - disable empty-function check ([#​467](https://www.github.com/google/gts/issues/467)) ([6455d7a](https://www.github.com/google/gts/commit/6455d7a9d227320d3ffe1b00c9c739b846f339a8)) - drop support for node 8 ([#​422](https://www.github.com/google/gts/issues/422)) ([888c686](https://www.github.com/google/gts/commit/888c68692079065f38ce66ec84472f1f3311a050)) - emit .prettierrc.js with init ([#​462](https://www.github.com/google/gts/issues/462)) ([b114614](https://www.github.com/google/gts/commit/b114614d22ab5560d2d1dd5cb6695968cc80027b)) - enable trailing comma ([#​470](https://www.github.com/google/gts/issues/470)) ([6518f58](https://www.github.com/google/gts/commit/6518f5843d3093e3beb7d3371b56d9aecedf3924)) - include _.tsx and _.jsx in default fix command ([#​473](https://www.github.com/google/gts/issues/473)) ([0509780](https://www.github.com/google/gts/commit/050978005ad089d9b3b5d8895b25ea1175d75db2)) ##### [1.1.2](https://www.github.com/google/gts/compare/v1.1.1...v1.1.2) (2019-11-20) ##### Bug Fixes - **deps:** update to newest prettier (with support for optional chain) ([#​396](https://www.github.com/google/gts/issues/396)) ([ce8ad06](https://www.github.com/google/gts/commit/ce8ad06c8489c44a9e2ed5292382637b3ebb7601)) ##### [1.1.1](https://www.github.com/google/gts/compare/v1.1.0...v1.1.1) (2019-11-11) ##### Bug Fixes - **deps:** update dependency chalk to v3 ([#​389](https://www.github.com/google/gts/issues/389)) ([1ce0f45](https://www.github.com/google/gts/commit/1ce0f450677e143a27efc39def617d13c66503e8)) - **deps:** update dependency inquirer to v7 ([#​377](https://www.github.com/google/gts/issues/377)) ([bf2c349](https://www.github.com/google/gts/commit/bf2c349b2208ac63e551542599ac9cd27b461338)) - **deps:** update dependency rimraf to v3 ([#​374](https://www.github.com/google/gts/issues/374)) ([2058eaa](https://www.github.com/google/gts/commit/2058eaa682f4baae978b469fd708d1f866e7da74)) - **deps:** update dependency write-file-atomic to v3 ([#​353](https://www.github.com/google/gts/issues/353)) ([59e6aa8](https://www.github.com/google/gts/commit/59e6aa8580a2f8e9457d2d2b6fa9e18e86347592))
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 38170f71f72..15ae66c4792 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -37,7 +37,7 @@ "eslint-config-prettier": "^6.9.0", "eslint-plugin-node": "^11.0.0", "eslint-plugin-prettier": "^3.1.2", - "gts": "2.0.0-alpha.9", + "gts": "2.0.0", "jsdoc": "^3.5.5", "jsdoc-fresh": "^1.0.1", "jsdoc-region-tag": "^1.0.2", From 3cf636975b123357ab8d62b8797e748d41f49182 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Fri, 10 Apr 2020 18:50:54 -0700 Subject: [PATCH 041/158] fix: remove eslint, update gax, fix generated protos, run the generator (#63) Run the latest version of the generator, update google-gax, update gts, and remove direct dependencies on eslint. --- packages/google-cloud-recommender/.jsdoc.js | 2 +- packages/google-cloud-recommender/.prettierrc.js | 2 +- packages/google-cloud-recommender/package.json | 14 +++++--------- packages/google-cloud-recommender/synth.metadata | 13 +++---------- packages/google-cloud-recommender/synth.py | 2 +- .../test/gapic_recommender_v1.ts | 14 +++++++------- 6 files changed, 18 insertions(+), 29 deletions(-) diff --git a/packages/google-cloud-recommender/.jsdoc.js b/packages/google-cloud-recommender/.jsdoc.js index 8b17ad10b0a..71f54bf72c0 100644 --- a/packages/google-cloud-recommender/.jsdoc.js +++ b/packages/google-cloud-recommender/.jsdoc.js @@ -40,7 +40,7 @@ module.exports = { includePattern: '\\.js$' }, templates: { - copyright: 'Copyright 2019 Google, LLC.', + copyright: 'Copyright 2020 Google LLC', includeDate: false, sourceFiles: false, systemName: '@google-cloud/recommender', diff --git a/packages/google-cloud-recommender/.prettierrc.js b/packages/google-cloud-recommender/.prettierrc.js index 08cba3775be..d1b95106f4c 100644 --- a/packages/google-cloud-recommender/.prettierrc.js +++ b/packages/google-cloud-recommender/.prettierrc.js @@ -4,7 +4,7 @@ // 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 +// 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, diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 15ae66c4792..4ecd0838cab 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -16,28 +16,24 @@ "compile-protos": "compileProtos src", "docs": "jsdoc -c .jsdoc.js", "docs-test": "linkinator docs", - "fix": "gts fix && eslint samples --fix", - "lint": "gts check && eslint samples", + "fix": "gts fix", + "lint": "gts fix", "predocs-test": "npm run docs", "prepare": "npm run compile-protos && npm run compile", "system-test": "c8 mocha build/system-test", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test": "c8 mocha build/test", - "prelint": "cd samples; npm link ../; npm i" + "prelint": "cd samples; npm link ../; npm install" }, "dependencies": { - "google-gax": "^2.0.1" + "google-gax": "^2.1.0" }, "devDependencies": { "@types/mocha": "^7.0.0", "@types/node": "^12.0.0", "@types/sinon": "^9.0.0", "c8": "^7.0.0", - "eslint": "^6.8.0", - "eslint-config-prettier": "^6.9.0", - "eslint-plugin-node": "^11.0.0", - "eslint-plugin-prettier": "^3.1.2", - "gts": "2.0.0", + "gts": "^2.0.0", "jsdoc": "^3.5.5", "jsdoc-fresh": "^1.0.1", "jsdoc-region-tag": "^1.0.2", diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 237237f203e..dfa09d0e93a 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -1,19 +1,12 @@ { - "updateTime": "2020-04-03T12:03:39.993401Z", + "updateTime": "2020-04-11T00:44:38.031540Z", "sources": [ - { - "git": { - "name": "googleapis", - "remote": "https://github.com/googleapis/googleapis.git", - "sha": "3d5d228a58bdf875e6147b228db3159010c735ee", - "internalRef": "304500143" - } - }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "99820243d348191bc9c634f2b48ddf65096285ed" + "sha": "6f32150677c9784f3c3a7e1949472bd29c9d72c5", + "log": "6f32150677c9784f3c3a7e1949472bd29c9d72c5\nfix: installs test_utils from its common repo (#480)\n\n\n74ce986d3b5431eb66985e9a00c4eb45295a4020\nfix: stop recording update_time in synth.metadata (#478)\n\n\n7f8e62aa3edd225f76347a16f92e400661fdfb52\nchore(java): release-please only updates non maven versions in README (#476)\n\nPrevent release-please and synthtool from fighting over the released library version. Synthtool updates the install snippets from the samples pom.xml files so the bots fight if they are temporarily out of sync after a release.\nc7e0e517d7f46f77bebd27da2e5afcaa6eee7e25\nbuild(java): fix nightly integration test config to run integrations (#465)\n\nThis was only running the units.\nbd69a2aa7b70875f3c988e269706b22fefbef40e\nbuild(java): fix retry_with_backoff when -e option set (#475)\n\n\nd9b173c427bfa0c6cca818233562e7e8841a357c\nfix: record version of working repo in synth.metadata (#473)\n\nPartial revert of b37cf74d12e9a42b9de9e61a4f26133d7cd9c168.\nf73a541770d95a609e5be6bf6b3b220d17cefcbe\nfeat(discogapic): allow local discovery-artifact-manager (#474)\n\n\n8cf0f5d93a70c3dcb0b4999d3152c46d4d9264bf\ndoc: describe the Autosynth & Synthtool protocol (#472)\n\n* doc: describe the Autosynth & Synthtool protocol\n\n* Accommodate review comments.\n980baaa738a1ad8fa02b4fdbd56be075ee77ece5\nfix: pin sphinx to <3.0.0 as new version causes new error (#471)\n\nThe error `toctree contains reference to document changlelog that doesn't have a title: no link will be generated` occurs as of 3.0.0. Pinning to 2.x until we address the docs build issue.\n\nTowards #470\n\nI did this manually for python-datastore https://github.com/googleapis/python-datastore/pull/22\n928b2998ac5023e7c7e254ab935f9ef022455aad\nchore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.15 (#466)\n\nCo-authored-by: Jeffrey Rennie \n188f1b1d53181f739b98f8aa5d40cfe99eb90c47\nfix: allow local and external deps to be specified (#469)\n\nModify noxfile.py to allow local and external dependencies for\nsystem tests to be specified.\n1df68ed6735ddce6797d0f83641a731c3c3f75b4\nfix: apache license URL (#468)\n\n\nf4a59efa54808c4b958263de87bc666ce41e415f\nfeat: Add discogapic support for GAPICBazel generation (#459)\n\n* feat: Add discogapic support for GAPICBazel generation\n\n* reformat with black\n\n* Rename source repository variable\n\nCo-authored-by: Jeffrey Rennie \n" } } ], diff --git a/packages/google-cloud-recommender/synth.py b/packages/google-cloud-recommender/synth.py index 8ffabbb6db6..eaf83e2b748 100644 --- a/packages/google-cloud-recommender/synth.py +++ b/packages/google-cloud-recommender/synth.py @@ -49,5 +49,5 @@ # Node.js specific cleanup subprocess.run(['npm', 'install']) -subprocess.run(['npm', 'run', 'fix']) +subprocess.run(['npm', 'run', 'lint']) subprocess.run(['npx', 'compileProtos', 'src']) diff --git a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts index f6585cf746a..ef26fb78af5 100644 --- a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts +++ b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts @@ -297,7 +297,7 @@ describe('v1.RecommenderClient', () => { undefined, expectedError ); - assert.rejects(async () => { + await assert.rejects(async () => { await client.getRecommendation(request); }, expectedError); assert( @@ -413,7 +413,7 @@ describe('v1.RecommenderClient', () => { undefined, expectedError ); - assert.rejects(async () => { + await assert.rejects(async () => { await client.markRecommendationClaimed(request); }, expectedError); assert( @@ -529,7 +529,7 @@ describe('v1.RecommenderClient', () => { undefined, expectedError ); - assert.rejects(async () => { + await assert.rejects(async () => { await client.markRecommendationSucceeded(request); }, expectedError); assert( @@ -645,7 +645,7 @@ describe('v1.RecommenderClient', () => { undefined, expectedError ); - assert.rejects(async () => { + await assert.rejects(async () => { await client.markRecommendationFailed(request); }, expectedError); assert( @@ -777,7 +777,7 @@ describe('v1.RecommenderClient', () => { undefined, expectedError ); - assert.rejects(async () => { + await assert.rejects(async () => { await client.listRecommendations(request); }, expectedError); assert( @@ -876,7 +876,7 @@ describe('v1.RecommenderClient', () => { reject(err); }); }); - assert.rejects(async () => { + await assert.rejects(async () => { await promise; }, expectedError); assert( @@ -955,7 +955,7 @@ describe('v1.RecommenderClient', () => { expectedError ); const iterable = client.listRecommendationsAsync(request); - assert.rejects(async () => { + await assert.rejects(async () => { const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; for await (const resource of iterable) { responses.push(resource!); From e233107292bc523d1bfd297066b56c94f531a2ab Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Sat, 11 Apr 2020 19:15:12 -0700 Subject: [PATCH 042/158] build: remove unused codecov config (#64) --- packages/google-cloud-recommender/codecov.yaml | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 packages/google-cloud-recommender/codecov.yaml diff --git a/packages/google-cloud-recommender/codecov.yaml b/packages/google-cloud-recommender/codecov.yaml deleted file mode 100644 index 5724ea9478d..00000000000 --- a/packages/google-cloud-recommender/codecov.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -codecov: - ci: - - source.cloud.google.com From d4e02cb751ae3f587da63d071730a8bf33b43827 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 13 Apr 2020 14:56:25 -0700 Subject: [PATCH 043/158] chore: update lint ignore files (#65) --- packages/google-cloud-recommender/.eslintignore | 3 ++- packages/google-cloud-recommender/.prettierignore | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/google-cloud-recommender/.eslintignore b/packages/google-cloud-recommender/.eslintignore index 09b31fe735a..9340ad9b86d 100644 --- a/packages/google-cloud-recommender/.eslintignore +++ b/packages/google-cloud-recommender/.eslintignore @@ -1,5 +1,6 @@ **/node_modules -src/**/doc/* +**/coverage +test/fixtures build/ docs/ protos/ diff --git a/packages/google-cloud-recommender/.prettierignore b/packages/google-cloud-recommender/.prettierignore index f6fac98b0a8..9340ad9b86d 100644 --- a/packages/google-cloud-recommender/.prettierignore +++ b/packages/google-cloud-recommender/.prettierignore @@ -1,3 +1,6 @@ -node_modules/* -samples/node_modules/* -src/**/doc/* +**/node_modules +**/coverage +test/fixtures +build/ +docs/ +protos/ From 1d3bf8879b5bd851110cda020cf3fe08eb1ef00a Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 13 Apr 2020 19:32:58 -0700 Subject: [PATCH 044/158] chore: remove tslint.json (#66) --- packages/google-cloud-recommender/tslint.json | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 packages/google-cloud-recommender/tslint.json diff --git a/packages/google-cloud-recommender/tslint.json b/packages/google-cloud-recommender/tslint.json deleted file mode 100644 index 617dc975bae..00000000000 --- a/packages/google-cloud-recommender/tslint.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "gts/tslint.json" -} From f7eaa8b5466287f57c9136ac86d12952f7859a43 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 14 Apr 2020 09:56:29 -0700 Subject: [PATCH 045/158] chore: remove unused dev packages (#67) --- packages/google-cloud-recommender/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 4ecd0838cab..8b48a6063eb 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -41,7 +41,6 @@ "mocha": "^7.0.0", "null-loader": "^3.0.0", "pack-n-play": "^1.0.0-2", - "prettier": "^1.19.1", "sinon": "^9.0.1", "ts-loader": "^6.2.1", "typescript": "^3.8.3", From c661edf0a06dc56aee5fcd617b0eb02f5fb70195 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 15 Apr 2020 17:30:30 +0200 Subject: [PATCH 046/158] chore(deps): update dependency ts-loader to v7 (#68) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ts-loader](https://togithub.com/TypeStrong/ts-loader) | devDependencies | major | [`^6.2.1` -> `^7.0.0`](https://renovatebot.com/diffs/npm/ts-loader/6.2.2/7.0.0) | --- ### Release Notes
TypeStrong/ts-loader ### [`v7.0.0`](https://togithub.com/TypeStrong/ts-loader/blob/master/CHANGELOG.md#v700) [Compare Source](https://togithub.com/TypeStrong/ts-loader/compare/v6.2.2...v7.0.0) - [Project reference support enhancements](https://togithub.com/TypeStrong/ts-loader/pull/1076) - thanks [@​sheetalkamat](https://togithub.com/sheetalkamat)! - Following the end of life of Node 8, `ts-loader` no longer supports Node 8 **BREAKING CHANGE**
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 8b48a6063eb..4d4a95c435d 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -42,7 +42,7 @@ "null-loader": "^3.0.0", "pack-n-play": "^1.0.0-2", "sinon": "^9.0.1", - "ts-loader": "^6.2.1", + "ts-loader": "^7.0.0", "typescript": "^3.8.3", "webpack": "^4.41.2", "webpack-cli": "^3.3.10" From 9eeb760ff98e2856be60f4c16de11bcd40e0e2cb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 15 Apr 2020 17:50:10 +0200 Subject: [PATCH 047/158] chore(deps): update dependency null-loader to v4 (#69) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [null-loader](https://togithub.com/webpack-contrib/null-loader) | devDependencies | major | [`^3.0.0` -> `^4.0.0`](https://renovatebot.com/diffs/npm/null-loader/3.0.0/4.0.0) | --- ### Release Notes
webpack-contrib/null-loader ### [`v4.0.0`](https://togithub.com/webpack-contrib/null-loader/blob/master/CHANGELOG.md#​400-httpsgithubcomwebpack-contribnull-loadercomparev300v400-2020-04-15) [Compare Source](https://togithub.com/webpack-contrib/null-loader/compare/v3.0.0...v4.0.0) ##### Bug Fixes - support `webpack@5` ##### ⚠ BREAKING CHANGES - minimum required Nodejs version is `10.13`
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 4d4a95c435d..2fbadf4cc91 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -39,7 +39,7 @@ "jsdoc-region-tag": "^1.0.2", "linkinator": "^2.0.0", "mocha": "^7.0.0", - "null-loader": "^3.0.0", + "null-loader": "^4.0.0", "pack-n-play": "^1.0.0-2", "sinon": "^9.0.1", "ts-loader": "^7.0.0", From 79fd2bffb1baf11b927c9d6aa94a71cfcdb034ee Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 15 Apr 2020 10:30:37 -0700 Subject: [PATCH 048/158] chore: run fix instead of lint in synthfile (#71) --- packages/google-cloud-recommender/synth.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/synth.py b/packages/google-cloud-recommender/synth.py index eaf83e2b748..8ffabbb6db6 100644 --- a/packages/google-cloud-recommender/synth.py +++ b/packages/google-cloud-recommender/synth.py @@ -49,5 +49,5 @@ # Node.js specific cleanup subprocess.run(['npm', 'install']) -subprocess.run(['npm', 'run', 'lint']) +subprocess.run(['npm', 'run', 'fix']) subprocess.run(['npx', 'compileProtos', 'src']) From 97d8e6a2106237eff4610baafc25230f90fdf087 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 20 Apr 2020 16:02:08 -0700 Subject: [PATCH 049/158] chore: remove unused dev packages (#67) (#72) --- .../google-cloud-recommender/src/index.ts | 2 +- .../src/v1/recommender_client.ts | 1070 +++++----- .../google-cloud-recommender/synth.metadata | 19 +- .../system-test/fixtures/sample/src/index.js | 1 + .../system-test/install.ts | 28 +- .../test/gapic_recommender_v1.ts | 1770 +++++++---------- .../webpack.config.js | 12 +- 7 files changed, 1220 insertions(+), 1682 deletions(-) diff --git a/packages/google-cloud-recommender/src/index.ts b/packages/google-cloud-recommender/src/index.ts index bab729506af..83fe9c83967 100644 --- a/packages/google-cloud-recommender/src/index.ts +++ b/packages/google-cloud-recommender/src/index.ts @@ -21,4 +21,4 @@ const RecommenderClient = v1.RecommenderClient; export {v1, RecommenderClient}; export default {v1, RecommenderClient}; import * as protos from '../protos/protos'; -export {protos}; +export {protos} diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 513c2b28824..11d653f5f1c 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -17,18 +17,11 @@ // ** All changes to this file may be overwritten. ** import * as gax from 'google-gax'; -import { - Callback, - CallOptions, - Descriptors, - ClientOptions, - PaginationCallback, - GaxCall, -} from 'google-gax'; +import {Callback, CallOptions, Descriptors, ClientOptions, PaginationCallback, GaxCall} from 'google-gax'; import * as path from 'path'; -import {Transform} from 'stream'; -import {RequestType} from 'google-gax/build/src/apitypes'; +import { Transform } from 'stream'; +import { RequestType } from 'google-gax/build/src/apitypes'; import * as protos from '../../protos/protos'; import * as gapicConfig from './recommender_client_config.json'; @@ -50,12 +43,7 @@ export class RecommenderClient { private _protos: {}; private _defaults: {[method: string]: gax.CallSettings}; auth: gax.GoogleAuth; - descriptors: Descriptors = { - page: {}, - stream: {}, - longrunning: {}, - batching: {}, - }; + descriptors: Descriptors = {page: {}, stream: {}, longrunning: {}, batching: {}}; innerApiCalls: {[name: string]: Function}; pathTemplates: {[name: string]: gax.PathTemplate}; recommenderStub?: Promise<{[name: string]: Function}>; @@ -89,12 +77,10 @@ export class RecommenderClient { constructor(opts?: ClientOptions) { // Ensure that options include the service address and port. const staticMembers = this.constructor as typeof RecommenderClient; - const servicePath = - opts && opts.servicePath - ? opts.servicePath - : opts && opts.apiEndpoint - ? opts.apiEndpoint - : staticMembers.servicePath; + const servicePath = opts && opts.servicePath ? + opts.servicePath : + ((opts && opts.apiEndpoint) ? opts.apiEndpoint : + staticMembers.servicePath); const port = opts && opts.port ? opts.port : staticMembers.port; if (!opts) { @@ -104,8 +90,8 @@ export class RecommenderClient { opts.port = opts.port || port; opts.clientConfig = opts.clientConfig || {}; - const isBrowser = typeof window !== 'undefined'; - if (isBrowser) { + const isBrowser = (typeof window !== 'undefined'); + if (isBrowser){ opts.fallback = true; } // If we are in browser, we are already using fallback because of the @@ -122,10 +108,13 @@ export class RecommenderClient { 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); // Determine the client header string. - const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; + const clientHeader = [ + `gax/${this._gaxModule.version}`, + `gapic/${version}`, + ]; if (typeof process !== 'undefined' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -141,18 +130,12 @@ export class RecommenderClient { // For Node.js, pass the path to JSON proto file. // For browsers, pass the JSON content. - const nodejsProtoPath = path.join( - __dirname, - '..', - '..', - 'protos', - 'protos.json' - ); + const nodejsProtoPath = path.join(__dirname, '..', '..', 'protos', 'protos.json'); this._protos = this._gaxGrpc.loadProto( - opts.fallback - ? // eslint-disable-next-line @typescript-eslint/no-var-requires - require('../../protos/protos.json') - : nodejsProtoPath + opts.fallback ? + // eslint-disable-next-line @typescript-eslint/no-var-requires + require("../../protos/protos.json") : + nodejsProtoPath ); // This API contains "path templates"; forward-slash-separated @@ -171,20 +154,14 @@ export class RecommenderClient { // (e.g. 50 results at a time, with tokens to get subsequent // pages). Denote the keys used for pagination and results. this.descriptors.page = { - listRecommendations: new this._gaxModule.PageDescriptor( - 'pageToken', - 'nextPageToken', - 'recommendations' - ), + listRecommendations: + new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'recommendations') }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.recommender.v1.Recommender', - gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, - {'x-goog-api-client': clientHeader.join(' ')} - ); + 'google.cloud.recommender.v1.Recommender', 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 @@ -212,24 +189,16 @@ export class RecommenderClient { // Put together the "service stub" for // google.cloud.recommender.v1.Recommender. this.recommenderStub = this._gaxGrpc.createStub( - this._opts.fallback - ? (this._protos as protobuf.Root).lookupService( - 'google.cloud.recommender.v1.Recommender' - ) - : // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback ? + (this._protos as protobuf.Root).lookupService('google.cloud.recommender.v1.Recommender') : + // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.recommender.v1.Recommender, - this._opts - ) as Promise<{[method: string]: Function}>; + this._opts) as Promise<{[method: string]: Function}>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const recommenderStubMethods = [ - 'listRecommendations', - 'getRecommendation', - 'markRecommendationClaimed', - 'markRecommendationSucceeded', - 'markRecommendationFailed', - ]; + const recommenderStubMethods = + ['listRecommendations', 'getRecommendation', 'markRecommendationClaimed', 'markRecommendationSucceeded', 'markRecommendationFailed']; for (const methodName of recommenderStubMethods) { const callPromise = this.recommenderStub.then( stub => (...args: Array<{}>) => { @@ -239,17 +208,16 @@ export class RecommenderClient { const func = stub[methodName]; return func.apply(stub, args); }, - (err: Error | null | undefined) => () => { + (err: Error|null|undefined) => () => { throw err; - } - ); + }); const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], this.descriptors.page[methodName] || - this.descriptors.stream[methodName] || - this.descriptors.longrunning[methodName] + this.descriptors.stream[methodName] || + this.descriptors.longrunning[methodName] ); this.innerApiCalls[methodName] = apiCall; @@ -285,7 +253,9 @@ export class RecommenderClient { * in this service. */ static get scopes() { - return ['https://www.googleapis.com/auth/cloud-platform']; + return [ + 'https://www.googleapis.com/auth/cloud-platform' + ]; } getProjectId(): Promise; @@ -295,9 +265,8 @@ export class RecommenderClient { * @param {function(Error, string)} callback - the callback to * be called with the current project Id. */ - getProjectId( - callback?: Callback - ): Promise | void { + getProjectId(callback?: Callback): + Promise|void { if (callback) { this.auth.getProjectId(callback); return; @@ -309,81 +278,60 @@ export class RecommenderClient { // -- Service calls -- // ------------------- getRecommendation( - request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, - options?: gax.CallOptions - ): Promise< - [ - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IGetRecommendationRequest | undefined, - {} | undefined - ] - >; + request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, + options?: gax.CallOptions): + Promise<[ + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IGetRecommendationRequest|undefined, {}|undefined + ]>; getRecommendation( - request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, - options: gax.CallOptions, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IGetRecommendationRequest - | null - | undefined, - {} | null | undefined - > - ): void; + request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, + options: gax.CallOptions, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IGetRecommendationRequest|null|undefined, + {}|null|undefined>): void; getRecommendation( - request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IGetRecommendationRequest - | null - | undefined, - {} | null | undefined - > - ): void; - /** - * Gets the requested recommendation. Requires the recommender.*.get - * IAM permission for the specified recommender. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the recommendation. - * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The promise has a method named "cancel" which cancels the ongoing API call. - */ + request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IGetRecommendationRequest|null|undefined, + {}|null|undefined>): void; +/** + * Gets the requested recommendation. Requires the recommender.*.get + * IAM permission for the specified recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the recommendation. + * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ getRecommendation( - request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, - optionsOrCallback?: - | gax.CallOptions - | Callback< + request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, + optionsOrCallback?: gax.CallOptions|Callback< + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IGetRecommendationRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IGetRecommendationRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IGetRecommendationRequest - | null - | undefined, - {} | null | undefined - > - ): Promise< - [ - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IGetRecommendationRequest | undefined, - {} | undefined - ] - > | void { + protos.google.cloud.recommender.v1.IGetRecommendationRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IGetRecommendationRequest|undefined, {}|undefined + ]>|void { request = request || {}; let options: gax.CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } else { + } + else { options = optionsOrCallback as gax.CallOptions; } options = options || {}; @@ -392,108 +340,81 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - name: request.name || '', + 'name': request.name || '', }); this.initialize(); return this.innerApiCalls.getRecommendation(request, options, callback); } markRecommendationClaimed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, - options?: gax.CallOptions - ): Promise< - [ - protos.google.cloud.recommender.v1.IRecommendation, - ( - | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest - | undefined - ), - {} | undefined - ] - >; + request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, + options?: gax.CallOptions): + Promise<[ + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest|undefined, {}|undefined + ]>; markRecommendationClaimed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, - options: gax.CallOptions, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest - | null - | undefined, - {} | null | undefined - > - ): void; + request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, + options: gax.CallOptions, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest|null|undefined, + {}|null|undefined>): void; markRecommendationClaimed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest - | null - | undefined, - {} | null | undefined - > - ): void; - /** - * Mark the Recommendation State as Claimed. Users can use this method to - * indicate to the Recommender API that they are starting to apply the - * recommendation themselves. This stops the recommendation content from being - * updated. - * - * MarkRecommendationClaimed can be applied to recommendations in CLAIMED, - * SUCCEEDED, FAILED, or ACTIVE state. - * - * Requires the recommender.*.update IAM permission for the specified - * recommender. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the recommendation. - * @param {number[]} request.stateMetadata - * State properties to include with this state. Overwrites any existing - * `state_metadata`. - * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. - * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. - * @param {string} request.etag - * Required. Fingerprint of the Recommendation. Provides optimistic locking. - * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The promise has a method named "cancel" which cancels the ongoing API call. - */ + request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest|null|undefined, + {}|null|undefined>): void; +/** + * Mark the Recommendation State as Claimed. Users can use this method to + * indicate to the Recommender API that they are starting to apply the + * recommendation themselves. This stops the recommendation content from being + * updated. + * + * MarkRecommendationClaimed can be applied to recommendations in CLAIMED, + * SUCCEEDED, FAILED, or ACTIVE state. + * + * Requires the recommender.*.update IAM permission for the specified + * recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the recommendation. + * @param {number[]} request.stateMetadata + * State properties to include with this state. Overwrites any existing + * `state_metadata`. + * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. + * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. + * @param {string} request.etag + * Required. Fingerprint of the Recommendation. Provides optimistic locking. + * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ markRecommendationClaimed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, - optionsOrCallback?: - | gax.CallOptions - | Callback< + request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, + optionsOrCallback?: gax.CallOptions|Callback< protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest - | null - | undefined, - {} | null | undefined - > - ): Promise< - [ - protos.google.cloud.recommender.v1.IRecommendation, - ( - | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest - | undefined - ), - {} | undefined - ] - > | void { + protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest|undefined, {}|undefined + ]>|void { request = request || {}; let options: gax.CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } else { + } + else { options = optionsOrCallback as gax.CallOptions; } options = options || {}; @@ -502,112 +423,81 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - name: request.name || '', + 'name': request.name || '', }); this.initialize(); - return this.innerApiCalls.markRecommendationClaimed( - request, - options, - callback - ); + return this.innerApiCalls.markRecommendationClaimed(request, options, callback); } markRecommendationSucceeded( - request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, - options?: gax.CallOptions - ): Promise< - [ - protos.google.cloud.recommender.v1.IRecommendation, - ( - | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest - | undefined - ), - {} | undefined - ] - >; + request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, + options?: gax.CallOptions): + Promise<[ + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest|undefined, {}|undefined + ]>; markRecommendationSucceeded( - request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, - options: gax.CallOptions, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest - | null - | undefined, - {} | null | undefined - > - ): void; + request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, + options: gax.CallOptions, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest|null|undefined, + {}|null|undefined>): void; markRecommendationSucceeded( - request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest - | null - | undefined, - {} | null | undefined - > - ): void; - /** - * Mark the Recommendation State as Succeeded. Users can use this method to - * indicate to the Recommender API that they have applied the recommendation - * themselves, and the operation was successful. This stops the recommendation - * content from being updated. - * - * MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, - * CLAIMED, SUCCEEDED, or FAILED state. - * - * Requires the recommender.*.update IAM permission for the specified - * recommender. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the recommendation. - * @param {number[]} request.stateMetadata - * State properties to include with this state. Overwrites any existing - * `state_metadata`. - * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. - * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. - * @param {string} request.etag - * Required. Fingerprint of the Recommendation. Provides optimistic locking. - * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The promise has a method named "cancel" which cancels the ongoing API call. - */ + request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest|null|undefined, + {}|null|undefined>): void; +/** + * Mark the Recommendation State as Succeeded. Users can use this method to + * indicate to the Recommender API that they have applied the recommendation + * themselves, and the operation was successful. This stops the recommendation + * content from being updated. + * + * MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, + * CLAIMED, SUCCEEDED, or FAILED state. + * + * Requires the recommender.*.update IAM permission for the specified + * recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the recommendation. + * @param {number[]} request.stateMetadata + * State properties to include with this state. Overwrites any existing + * `state_metadata`. + * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. + * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. + * @param {string} request.etag + * Required. Fingerprint of the Recommendation. Provides optimistic locking. + * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ markRecommendationSucceeded( - request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, - optionsOrCallback?: - | gax.CallOptions - | Callback< + request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, + optionsOrCallback?: gax.CallOptions|Callback< protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest - | null - | undefined, - {} | null | undefined - > - ): Promise< - [ - protos.google.cloud.recommender.v1.IRecommendation, - ( - | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest - | undefined - ), - {} | undefined - ] - > | void { + protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest|undefined, {}|undefined + ]>|void { request = request || {}; let options: gax.CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } else { + } + else { options = optionsOrCallback as gax.CallOptions; } options = options || {}; @@ -616,112 +506,81 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - name: request.name || '', + 'name': request.name || '', }); this.initialize(); - return this.innerApiCalls.markRecommendationSucceeded( - request, - options, - callback - ); + return this.innerApiCalls.markRecommendationSucceeded(request, options, callback); } markRecommendationFailed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, - options?: gax.CallOptions - ): Promise< - [ - protos.google.cloud.recommender.v1.IRecommendation, - ( - | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest - | undefined - ), - {} | undefined - ] - >; + request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, + options?: gax.CallOptions): + Promise<[ + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest|undefined, {}|undefined + ]>; markRecommendationFailed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, - options: gax.CallOptions, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest - | null - | undefined, - {} | null | undefined - > - ): void; + request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, + options: gax.CallOptions, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest|null|undefined, + {}|null|undefined>): void; markRecommendationFailed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest - | null - | undefined, - {} | null | undefined - > - ): void; - /** - * Mark the Recommendation State as Failed. Users can use this method to - * indicate to the Recommender API that they have applied the recommendation - * themselves, and the operation failed. This stops the recommendation content - * from being updated. - * - * MarkRecommendationFailed can be applied to recommendations in ACTIVE, - * CLAIMED, SUCCEEDED, or FAILED state. - * - * Requires the recommender.*.update IAM permission for the specified - * recommender. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the recommendation. - * @param {number[]} request.stateMetadata - * State properties to include with this state. Overwrites any existing - * `state_metadata`. - * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. - * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. - * @param {string} request.etag - * Required. Fingerprint of the Recommendation. Provides optimistic locking. - * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The promise has a method named "cancel" which cancels the ongoing API call. - */ + request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest|null|undefined, + {}|null|undefined>): void; +/** + * Mark the Recommendation State as Failed. Users can use this method to + * indicate to the Recommender API that they have applied the recommendation + * themselves, and the operation failed. This stops the recommendation content + * from being updated. + * + * MarkRecommendationFailed can be applied to recommendations in ACTIVE, + * CLAIMED, SUCCEEDED, or FAILED state. + * + * Requires the recommender.*.update IAM permission for the specified + * recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the recommendation. + * @param {number[]} request.stateMetadata + * State properties to include with this state. Overwrites any existing + * `state_metadata`. + * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. + * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. + * @param {string} request.etag + * Required. Fingerprint of the Recommendation. Provides optimistic locking. + * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ markRecommendationFailed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, - optionsOrCallback?: - | gax.CallOptions - | Callback< + request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, + optionsOrCallback?: gax.CallOptions|Callback< protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest - | null - | undefined, - {} | null | undefined - > - ): Promise< - [ - protos.google.cloud.recommender.v1.IRecommendation, - ( - | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest - | undefined - ), - {} | undefined - ] - > | void { + protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest|undefined, {}|undefined + ]>|void { request = request || {}; let options: gax.CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } else { + } + else { options = optionsOrCallback as gax.CallOptions; } options = options || {}; @@ -730,124 +589,101 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - name: request.name || '', + 'name': request.name || '', }); this.initialize(); - return this.innerApiCalls.markRecommendationFailed( - request, - options, - callback - ); + return this.innerApiCalls.markRecommendationFailed(request, options, callback); } listRecommendations( - request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - options?: gax.CallOptions - ): Promise< - [ - protos.google.cloud.recommender.v1.IRecommendation[], - protos.google.cloud.recommender.v1.IListRecommendationsRequest | null, - protos.google.cloud.recommender.v1.IListRecommendationsResponse - ] - >; + request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + options?: gax.CallOptions): + Promise<[ + protos.google.cloud.recommender.v1.IRecommendation[], + protos.google.cloud.recommender.v1.IListRecommendationsRequest|null, + protos.google.cloud.recommender.v1.IListRecommendationsResponse + ]>; listRecommendations( - request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - options: gax.CallOptions, - callback: PaginationCallback< - protos.google.cloud.recommender.v1.IListRecommendationsRequest, - | protos.google.cloud.recommender.v1.IListRecommendationsResponse - | null - | undefined, - protos.google.cloud.recommender.v1.IRecommendation - > - ): void; + request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + options: gax.CallOptions, + callback: PaginationCallback< + protos.google.cloud.recommender.v1.IListRecommendationsRequest, + protos.google.cloud.recommender.v1.IListRecommendationsResponse|null|undefined, + protos.google.cloud.recommender.v1.IRecommendation>): void; listRecommendations( - request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - callback: PaginationCallback< - protos.google.cloud.recommender.v1.IListRecommendationsRequest, - | protos.google.cloud.recommender.v1.IListRecommendationsResponse - | null - | undefined, - protos.google.cloud.recommender.v1.IRecommendation - > - ): void; - /** - * Lists recommendations for a Cloud project. Requires the recommender.*.list - * IAM permission for the specified recommender. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The container resource on which to execute the request. - * Acceptable formats: - * - * 1. - * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", - * - * LOCATION here refers to GCP Locations: - * https://cloud.google.com/about/locations/ - * @param {number} [request.pageSize] - * Optional. The maximum number of results to return from this request. Non-positive - * values are ignored. If not specified, the server will determine the number - * of results to return. - * @param {string} [request.pageToken] - * Optional. If present, retrieves the next batch of results from the preceding call to - * this method. `page_token` must be the value of `next_page_token` from the - * previous response. The values of other method parameters must be identical - * to those in the previous call. - * @param {string} request.filter - * Filter expression to restrict the recommendations returned. Supported - * filter fields: state_info.state - * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" - * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The client library support 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. - * - * When autoPaginate: false is specified through options, the array has three elements. - * The first element is Array of [Recommendation]{@link google.cloud.recommender.v1.Recommendation} that corresponds to - * the one page received from the API server. - * If the second element is not null it contains the request object of type [ListRecommendationsRequest]{@link google.cloud.recommender.v1.ListRecommendationsRequest} - * that can be used to obtain the next page of the results. - * If it is null, the next page does not exist. - * The third element contains the raw response received from the API server. Its type is - * [ListRecommendationsResponse]{@link google.cloud.recommender.v1.ListRecommendationsResponse}. - * - * The promise has a method named "cancel" which cancels the ongoing API call. - */ + request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + callback: PaginationCallback< + protos.google.cloud.recommender.v1.IListRecommendationsRequest, + protos.google.cloud.recommender.v1.IListRecommendationsResponse|null|undefined, + protos.google.cloud.recommender.v1.IRecommendation>): void; +/** + * Lists recommendations for a Cloud project. Requires the recommender.*.list + * IAM permission for the specified recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The container resource on which to execute the request. + * Acceptable formats: + * + * 1. + * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", + * + * LOCATION here refers to GCP Locations: + * https://cloud.google.com/about/locations/ + * @param {number} [request.pageSize] + * Optional. The maximum number of results to return from this request. Non-positive + * values are ignored. If not specified, the server will determine the number + * of results to return. + * @param {string} [request.pageToken] + * Optional. If present, retrieves the next batch of results from the preceding call to + * this method. `page_token` must be the value of `next_page_token` from the + * previous response. The values of other method parameters must be identical + * to those in the previous call. + * @param {string} request.filter + * Filter expression to restrict the recommendations returned. Supported + * filter fields: state_info.state + * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" + * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. + * The client library support 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. + * + * When autoPaginate: false is specified through options, the array has three elements. + * The first element is Array of [Recommendation]{@link google.cloud.recommender.v1.Recommendation} that corresponds to + * the one page received from the API server. + * If the second element is not null it contains the request object of type [ListRecommendationsRequest]{@link google.cloud.recommender.v1.ListRecommendationsRequest} + * that can be used to obtain the next page of the results. + * If it is null, the next page does not exist. + * The third element contains the raw response received from the API server. Its type is + * [ListRecommendationsResponse]{@link google.cloud.recommender.v1.ListRecommendationsResponse}. + * + * The promise has a method named "cancel" which cancels the ongoing API call. + */ listRecommendations( - request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - optionsOrCallback?: - | gax.CallOptions - | PaginationCallback< + request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + optionsOrCallback?: gax.CallOptions|PaginationCallback< + protos.google.cloud.recommender.v1.IListRecommendationsRequest, + protos.google.cloud.recommender.v1.IListRecommendationsResponse|null|undefined, + protos.google.cloud.recommender.v1.IRecommendation>, + callback?: PaginationCallback< protos.google.cloud.recommender.v1.IListRecommendationsRequest, - | protos.google.cloud.recommender.v1.IListRecommendationsResponse - | null - | undefined, - protos.google.cloud.recommender.v1.IRecommendation - >, - callback?: PaginationCallback< - protos.google.cloud.recommender.v1.IListRecommendationsRequest, - | protos.google.cloud.recommender.v1.IListRecommendationsResponse - | null - | undefined, - protos.google.cloud.recommender.v1.IRecommendation - > - ): Promise< - [ - protos.google.cloud.recommender.v1.IRecommendation[], - protos.google.cloud.recommender.v1.IListRecommendationsRequest | null, - protos.google.cloud.recommender.v1.IListRecommendationsResponse - ] - > | void { + protos.google.cloud.recommender.v1.IListRecommendationsResponse|null|undefined, + protos.google.cloud.recommender.v1.IRecommendation>): + Promise<[ + protos.google.cloud.recommender.v1.IRecommendation[], + protos.google.cloud.recommender.v1.IListRecommendationsRequest|null, + protos.google.cloud.recommender.v1.IListRecommendationsResponse + ]>|void { request = request || {}; let options: gax.CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } else { + } + else { options = optionsOrCallback as gax.CallOptions; } options = options || {}; @@ -856,58 +692,58 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - parent: request.parent || '', + 'parent': request.parent || '', }); this.initialize(); return this.innerApiCalls.listRecommendations(request, options, callback); } - /** - * Equivalent to {@link listRecommendations}, but returns a NodeJS Stream object. - * - * This fetches the paged responses for {@link listRecommendations} continuously - * and invokes the callback registered for 'data' event for each element in the - * responses. - * - * The returned object has 'end' method when no more elements are required. - * - * autoPaginate option will be ignored. - * - * @see {@link https://nodejs.org/api/stream.html} - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The container resource on which to execute the request. - * Acceptable formats: - * - * 1. - * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", - * - * LOCATION here refers to GCP Locations: - * https://cloud.google.com/about/locations/ - * @param {number} [request.pageSize] - * Optional. The maximum number of results to return from this request. Non-positive - * values are ignored. If not specified, the server will determine the number - * of results to return. - * @param {string} [request.pageToken] - * Optional. If present, retrieves the next batch of results from the preceding call to - * this method. `page_token` must be the value of `next_page_token` from the - * previous response. The values of other method parameters must be identical - * to those in the previous call. - * @param {string} request.filter - * Filter expression to restrict the recommendations returned. Supported - * filter fields: state_info.state - * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" - * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation} on 'data' event. - */ +/** + * Equivalent to {@link listRecommendations}, but returns a NodeJS Stream object. + * + * This fetches the paged responses for {@link listRecommendations} continuously + * and invokes the callback registered for 'data' event for each element in the + * responses. + * + * The returned object has 'end' method when no more elements are required. + * + * autoPaginate option will be ignored. + * + * @see {@link https://nodejs.org/api/stream.html} + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The container resource on which to execute the request. + * Acceptable formats: + * + * 1. + * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", + * + * LOCATION here refers to GCP Locations: + * https://cloud.google.com/about/locations/ + * @param {number} [request.pageSize] + * Optional. The maximum number of results to return from this request. Non-positive + * values are ignored. If not specified, the server will determine the number + * of results to return. + * @param {string} [request.pageToken] + * Optional. If present, retrieves the next batch of results from the preceding call to + * this method. `page_token` must be the value of `next_page_token` from the + * previous response. The values of other method parameters must be identical + * to those in the previous call. + * @param {string} request.filter + * Filter expression to restrict the recommendations returned. Supported + * filter fields: state_info.state + * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" + * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation} on 'data' event. + */ listRecommendationsStream( - request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - options?: gax.CallOptions - ): Transform { + request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + options?: gax.CallOptions): + Transform{ request = request || {}; options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -915,7 +751,7 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - parent: request.parent || '', + 'parent': request.parent || '', }); const callSettings = new gax.CallSettings(options); this.initialize(); @@ -926,44 +762,44 @@ export class RecommenderClient { ); } - /** - * Equivalent to {@link listRecommendations}, but returns an iterable object. - * - * for-await-of syntax is used with the iterable to recursively get response element on-demand. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The container resource on which to execute the request. - * Acceptable formats: - * - * 1. - * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", - * - * LOCATION here refers to GCP Locations: - * https://cloud.google.com/about/locations/ - * @param {number} [request.pageSize] - * Optional. The maximum number of results to return from this request. Non-positive - * values are ignored. If not specified, the server will determine the number - * of results to return. - * @param {string} [request.pageToken] - * Optional. If present, retrieves the next batch of results from the preceding call to - * this method. `page_token` must be the value of `next_page_token` from the - * previous response. The values of other method parameters must be identical - * to those in the previous call. - * @param {string} request.filter - * Filter expression to restrict the recommendations returned. Supported - * filter fields: state_info.state - * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" - * @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 conforms to @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols. - */ +/** + * Equivalent to {@link listRecommendations}, but returns an iterable object. + * + * for-await-of syntax is used with the iterable to recursively get response element on-demand. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The container resource on which to execute the request. + * Acceptable formats: + * + * 1. + * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", + * + * LOCATION here refers to GCP Locations: + * https://cloud.google.com/about/locations/ + * @param {number} [request.pageSize] + * Optional. The maximum number of results to return from this request. Non-positive + * values are ignored. If not specified, the server will determine the number + * of results to return. + * @param {string} [request.pageToken] + * Optional. If present, retrieves the next batch of results from the preceding call to + * this method. `page_token` must be the value of `next_page_token` from the + * previous response. The values of other method parameters must be identical + * to those in the previous call. + * @param {string} request.filter + * Filter expression to restrict the recommendations returned. Supported + * filter fields: state_info.state + * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" + * @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 conforms to @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols. + */ listRecommendationsAsync( - request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - options?: gax.CallOptions - ): AsyncIterable { + request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + options?: gax.CallOptions): + AsyncIterable{ request = request || {}; options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -971,14 +807,14 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - parent: request.parent || '', + 'parent': request.parent || '', }); options = options || {}; const callSettings = new gax.CallSettings(options); this.initialize(); return this.descriptors.page.listRecommendations.asyncIterate( this.innerApiCalls['listRecommendations'] as GaxCall, - (request as unknown) as RequestType, + request as unknown as RequestType, callSettings ) as AsyncIterable; } @@ -995,12 +831,7 @@ export class RecommenderClient { * @param {string} recommendation * @returns {string} Resource name string. */ - recommendationPath( - project: string, - location: string, - recommender: string, - recommendation: string - ) { + recommendationPath(project:string,location:string,recommender:string,recommendation:string) { return this.pathTemplates.recommendationPathTemplate.render({ project: project, location: location, @@ -1017,9 +848,7 @@ export class RecommenderClient { * @returns {string} A string representing the project. */ matchProjectFromRecommendationName(recommendationName: string) { - return this.pathTemplates.recommendationPathTemplate.match( - recommendationName - ).project; + return this.pathTemplates.recommendationPathTemplate.match(recommendationName).project; } /** @@ -1030,9 +859,7 @@ export class RecommenderClient { * @returns {string} A string representing the location. */ matchLocationFromRecommendationName(recommendationName: string) { - return this.pathTemplates.recommendationPathTemplate.match( - recommendationName - ).location; + return this.pathTemplates.recommendationPathTemplate.match(recommendationName).location; } /** @@ -1043,9 +870,7 @@ export class RecommenderClient { * @returns {string} A string representing the recommender. */ matchRecommenderFromRecommendationName(recommendationName: string) { - return this.pathTemplates.recommendationPathTemplate.match( - recommendationName - ).recommender; + return this.pathTemplates.recommendationPathTemplate.match(recommendationName).recommender; } /** @@ -1056,9 +881,7 @@ export class RecommenderClient { * @returns {string} A string representing the recommendation. */ matchRecommendationFromRecommendationName(recommendationName: string) { - return this.pathTemplates.recommendationPathTemplate.match( - recommendationName - ).recommendation; + return this.pathTemplates.recommendationPathTemplate.match(recommendationName).recommendation; } /** @@ -1069,7 +892,7 @@ export class RecommenderClient { * @param {string} recommender * @returns {string} Resource name string. */ - recommenderPath(project: string, location: string, recommender: string) { + recommenderPath(project:string,location:string,recommender:string) { return this.pathTemplates.recommenderPathTemplate.render({ project: project, location: location, @@ -1085,8 +908,7 @@ export class RecommenderClient { * @returns {string} A string representing the project. */ matchProjectFromRecommenderName(recommenderName: string) { - return this.pathTemplates.recommenderPathTemplate.match(recommenderName) - .project; + return this.pathTemplates.recommenderPathTemplate.match(recommenderName).project; } /** @@ -1097,8 +919,7 @@ export class RecommenderClient { * @returns {string} A string representing the location. */ matchLocationFromRecommenderName(recommenderName: string) { - return this.pathTemplates.recommenderPathTemplate.match(recommenderName) - .location; + return this.pathTemplates.recommenderPathTemplate.match(recommenderName).location; } /** @@ -1109,8 +930,7 @@ export class RecommenderClient { * @returns {string} A string representing the recommender. */ matchRecommenderFromRecommenderName(recommenderName: string) { - return this.pathTemplates.recommenderPathTemplate.match(recommenderName) - .recommender; + return this.pathTemplates.recommenderPathTemplate.match(recommenderName).recommender; } /** diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index dfa09d0e93a..27c5ea1c239 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -1,12 +1,25 @@ { - "updateTime": "2020-04-11T00:44:38.031540Z", "sources": [ + { + "git": { + "name": ".", + "remote": "https://github.com/googleapis/nodejs-recommender.git", + "sha": "7639dc40c2529290583d00ec67a99f8b3391bf76" + } + }, + { + "git": { + "name": "googleapis", + "remote": "https://github.com/googleapis/googleapis.git", + "sha": "cdf13efacdea0649e940452f9c5d320b93735974", + "internalRef": "306783437" + } + }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "6f32150677c9784f3c3a7e1949472bd29c9d72c5", - "log": "6f32150677c9784f3c3a7e1949472bd29c9d72c5\nfix: installs test_utils from its common repo (#480)\n\n\n74ce986d3b5431eb66985e9a00c4eb45295a4020\nfix: stop recording update_time in synth.metadata (#478)\n\n\n7f8e62aa3edd225f76347a16f92e400661fdfb52\nchore(java): release-please only updates non maven versions in README (#476)\n\nPrevent release-please and synthtool from fighting over the released library version. Synthtool updates the install snippets from the samples pom.xml files so the bots fight if they are temporarily out of sync after a release.\nc7e0e517d7f46f77bebd27da2e5afcaa6eee7e25\nbuild(java): fix nightly integration test config to run integrations (#465)\n\nThis was only running the units.\nbd69a2aa7b70875f3c988e269706b22fefbef40e\nbuild(java): fix retry_with_backoff when -e option set (#475)\n\n\nd9b173c427bfa0c6cca818233562e7e8841a357c\nfix: record version of working repo in synth.metadata (#473)\n\nPartial revert of b37cf74d12e9a42b9de9e61a4f26133d7cd9c168.\nf73a541770d95a609e5be6bf6b3b220d17cefcbe\nfeat(discogapic): allow local discovery-artifact-manager (#474)\n\n\n8cf0f5d93a70c3dcb0b4999d3152c46d4d9264bf\ndoc: describe the Autosynth & Synthtool protocol (#472)\n\n* doc: describe the Autosynth & Synthtool protocol\n\n* Accommodate review comments.\n980baaa738a1ad8fa02b4fdbd56be075ee77ece5\nfix: pin sphinx to <3.0.0 as new version causes new error (#471)\n\nThe error `toctree contains reference to document changlelog that doesn't have a title: no link will be generated` occurs as of 3.0.0. Pinning to 2.x until we address the docs build issue.\n\nTowards #470\n\nI did this manually for python-datastore https://github.com/googleapis/python-datastore/pull/22\n928b2998ac5023e7c7e254ab935f9ef022455aad\nchore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.15 (#466)\n\nCo-authored-by: Jeffrey Rennie \n188f1b1d53181f739b98f8aa5d40cfe99eb90c47\nfix: allow local and external deps to be specified (#469)\n\nModify noxfile.py to allow local and external dependencies for\nsystem tests to be specified.\n1df68ed6735ddce6797d0f83641a731c3c3f75b4\nfix: apache license URL (#468)\n\n\nf4a59efa54808c4b958263de87bc666ce41e415f\nfeat: Add discogapic support for GAPICBazel generation (#459)\n\n* feat: Add discogapic support for GAPICBazel generation\n\n* reformat with black\n\n* Rename source repository variable\n\nCo-authored-by: Jeffrey Rennie \n" + "sha": "52638600f387deb98efb5f9c85fec39e82aa9052" } } ], diff --git a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js index e8f4e4a22a6..59a3c7d7ef0 100644 --- a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js +++ b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js @@ -16,6 +16,7 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** + /* eslint-disable node/no-missing-require, no-unused-vars */ const recommender = require('@google-cloud/recommender'); diff --git a/packages/google-cloud-recommender/system-test/install.ts b/packages/google-cloud-recommender/system-test/install.ts index c4d80e9c0c8..5e4ed636481 100644 --- a/packages/google-cloud-recommender/system-test/install.ts +++ b/packages/google-cloud-recommender/system-test/install.ts @@ -16,36 +16,34 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -import {packNTest} from 'pack-n-play'; -import {readFileSync} from 'fs'; -import {describe, it} from 'mocha'; +import { packNTest } from 'pack-n-play'; +import { readFileSync } from 'fs'; +import { describe, it } from 'mocha'; describe('typescript consumer tests', () => { + it('should have correct type signature for typescript users', async function() { this.timeout(300000); const options = { - packageDir: process.cwd(), // path to your module. + packageDir: process.cwd(), // path to your module. sample: { description: 'typescript based user can use the type definitions', - ts: readFileSync( - './system-test/fixtures/sample/src/index.ts' - ).toString(), - }, + ts: readFileSync('./system-test/fixtures/sample/src/index.ts').toString() + } }; - await packNTest(options); // will throw upon error. + await packNTest(options); // will throw upon error. }); it('should have correct type signature for javascript users', async function() { this.timeout(300000); const options = { - packageDir: process.cwd(), // path to your module. + packageDir: process.cwd(), // path to your module. sample: { description: 'typescript based user can use the type definitions', - ts: readFileSync( - './system-test/fixtures/sample/src/index.js' - ).toString(), - }, + ts: readFileSync('./system-test/fixtures/sample/src/index.js').toString() + } }; - await packNTest(options); // will throw upon error. + await packNTest(options); // will throw upon error. }); + }); diff --git a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts index ef26fb78af5..a1b01d52ecb 100644 --- a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts +++ b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts @@ -20,7 +20,7 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; import {SinonStub} from 'sinon'; -import {describe, it} from 'mocha'; +import { describe, it } from 'mocha'; import * as recommenderModule from '../src'; import {PassThrough} from 'stream'; @@ -28,1095 +28,801 @@ import {PassThrough} from 'stream'; import {protobuf} from 'google-gax'; 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 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({}); - }); +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]); + } } - setImmediate(() => { - mockStream.end(); - }); - } else { - setImmediate(() => { - mockStream.write({}); - }); - setImmediate(() => { - mockStream.end(); + const transformStub = error ? sinon.stub().callsArgWith(2, error) : pagingStub; + const mockStream = new PassThrough({ + objectMode: true, + transform: transformStub, }); - } - return sinon.stub().returns(mockStream); + // 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(); }); + } + 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.RecommenderClient', () => { - it('has servicePath', () => { - const servicePath = recommenderModule.v1.RecommenderClient.servicePath; - assert(servicePath); - }); - - it('has apiEndpoint', () => { - const apiEndpoint = recommenderModule.v1.RecommenderClient.apiEndpoint; - assert(apiEndpoint); - }); - - it('has port', () => { - const port = recommenderModule.v1.RecommenderClient.port; - assert(port); - assert(typeof port === 'number'); - }); - - it('should create a client with no option', () => { - const client = new recommenderModule.v1.RecommenderClient(); - assert(client); - }); - - it('should create a client with gRPC fallback', () => { - const client = new recommenderModule.v1.RecommenderClient({ - fallback: true, - }); - assert(client); - }); - - it('has initialize method and supports deferred initialization', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.recommenderStub, undefined); - await client.initialize(); - assert(client.recommenderStub); - }); - - it('has close method', () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.close(); - }); - - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new recommenderModule.v1.RecommenderClient({ - 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 recommenderModule.v1.RecommenderClient({ - 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); - } - }); + it('has servicePath', () => { + const servicePath = recommenderModule.v1.RecommenderClient.servicePath; + assert(servicePath); }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); - }); - describe('getRecommendation', () => { - it('invokes getRecommendation without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.GetRecommendationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ); - client.innerApiCalls.getRecommendation = stubSimpleCall(expectedResponse); - const [response] = await client.getRecommendation(request); - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getRecommendation as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + it('has apiEndpoint', () => { + const apiEndpoint = recommenderModule.v1.RecommenderClient.apiEndpoint; + assert(apiEndpoint); }); - it('invokes getRecommendation without error using callback', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.GetRecommendationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ); - client.innerApiCalls.getRecommendation = stubSimpleCallWithCallback( - expectedResponse - ); - const promise = new Promise((resolve, reject) => { - client.getRecommendation( - request, - ( - err?: Error | null, - result?: protos.google.cloud.recommender.v1.IRecommendation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - } - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getRecommendation as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + it('has port', () => { + const port = recommenderModule.v1.RecommenderClient.port; + assert(port); + assert(typeof port === 'number'); }); - it('invokes getRecommendation with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.GetRecommendationRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.getRecommendation = stubSimpleCall( - undefined, - expectedError - ); - await assert.rejects(async () => { - await client.getRecommendation(request); - }, expectedError); - assert( - (client.innerApiCalls.getRecommendation as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + it('should create a client with no option', () => { + const client = new recommenderModule.v1.RecommenderClient(); + assert(client); }); - }); - describe('markRecommendationClaimed', () => { - it('invokes markRecommendationClaimed without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ); - client.innerApiCalls.markRecommendationClaimed = stubSimpleCall( - expectedResponse - ); - const [response] = await client.markRecommendationClaimed(request); - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.markRecommendationClaimed as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + it('should create a client with gRPC fallback', () => { + const client = new recommenderModule.v1.RecommenderClient({ + fallback: true, + }); + assert(client); }); - it('invokes markRecommendationClaimed without error using callback', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ); - client.innerApiCalls.markRecommendationClaimed = stubSimpleCallWithCallback( - expectedResponse - ); - const promise = new Promise((resolve, reject) => { - client.markRecommendationClaimed( - request, - ( - err?: Error | null, - result?: protos.google.cloud.recommender.v1.IRecommendation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - } - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.markRecommendationClaimed as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + it('has initialize method and supports deferred initialization', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.recommenderStub, undefined); + await client.initialize(); + assert(client.recommenderStub); }); - it('invokes markRecommendationClaimed with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.markRecommendationClaimed = stubSimpleCall( - undefined, - expectedError - ); - await assert.rejects(async () => { - await client.markRecommendationClaimed(request); - }, expectedError); - assert( - (client.innerApiCalls.markRecommendationClaimed as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + it('has close method', () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.close(); }); - }); - describe('markRecommendationSucceeded', () => { - it('invokes markRecommendationSucceeded without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ); - client.innerApiCalls.markRecommendationSucceeded = stubSimpleCall( - expectedResponse - ); - const [response] = await client.markRecommendationSucceeded(request); - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.markRecommendationSucceeded as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new recommenderModule.v1.RecommenderClient({ + 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('invokes markRecommendationSucceeded without error using callback', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ); - client.innerApiCalls.markRecommendationSucceeded = stubSimpleCallWithCallback( - expectedResponse - ); - const promise = new Promise((resolve, reject) => { - client.markRecommendationSucceeded( - request, - ( - err?: Error | null, - result?: protos.google.cloud.recommender.v1.IRecommendation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - } - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.markRecommendationSucceeded as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new recommenderModule.v1.RecommenderClient({ + 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 markRecommendationSucceeded with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.markRecommendationSucceeded = stubSimpleCall( - undefined, - expectedError - ); - await assert.rejects(async () => { - await client.markRecommendationSucceeded(request); - }, expectedError); - assert( - (client.innerApiCalls.markRecommendationSucceeded as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - }); + describe('getRecommendation', () => { + it('invokes getRecommendation without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.GetRecommendationRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); + client.innerApiCalls.getRecommendation = stubSimpleCall(expectedResponse); + const [response] = await client.getRecommendation(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.getRecommendation as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); - describe('markRecommendationFailed', () => { - it('invokes markRecommendationFailed without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ); - client.innerApiCalls.markRecommendationFailed = stubSimpleCall( - expectedResponse - ); - const [response] = await client.markRecommendationFailed(request); - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.markRecommendationFailed as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); + it('invokes getRecommendation without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.GetRecommendationRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); + client.innerApiCalls.getRecommendation = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getRecommendation( + request, + (err?: Error|null, result?: protos.google.cloud.recommender.v1.IRecommendation|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.getRecommendation as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); - it('invokes markRecommendationFailed without error using callback', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ); - client.innerApiCalls.markRecommendationFailed = stubSimpleCallWithCallback( - expectedResponse - ); - const promise = new Promise((resolve, reject) => { - client.markRecommendationFailed( - request, - ( - err?: Error | null, - result?: protos.google.cloud.recommender.v1.IRecommendation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - } - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.markRecommendationFailed as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + it('invokes getRecommendation with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.GetRecommendationRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.getRecommendation = stubSimpleCall(undefined, expectedError); + await assert.rejects(async () => { await client.getRecommendation(request); }, expectedError); + assert((client.innerApiCalls.getRecommendation as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); }); - it('invokes markRecommendationFailed with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.markRecommendationFailed = stubSimpleCall( - undefined, - expectedError - ); - await assert.rejects(async () => { - await client.markRecommendationFailed(request); - }, expectedError); - assert( - (client.innerApiCalls.markRecommendationFailed as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - }); + describe('markRecommendationClaimed', () => { + it('invokes markRecommendationClaimed without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); + client.innerApiCalls.markRecommendationClaimed = stubSimpleCall(expectedResponse); + const [response] = await client.markRecommendationClaimed(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.markRecommendationClaimed as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); - describe('listRecommendations', () => { - it('invokes listRecommendations without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() - ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - ]; - client.innerApiCalls.listRecommendations = stubSimpleCall( - expectedResponse - ); - const [response] = await client.listRecommendations(request); - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listRecommendations as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); + it('invokes markRecommendationClaimed without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); + client.innerApiCalls.markRecommendationClaimed = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.markRecommendationClaimed( + request, + (err?: Error|null, result?: protos.google.cloud.recommender.v1.IRecommendation|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.markRecommendationClaimed as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); - it('invokes listRecommendations without error using callback', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() - ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - ]; - client.innerApiCalls.listRecommendations = stubSimpleCallWithCallback( - expectedResponse - ); - const promise = new Promise((resolve, reject) => { - client.listRecommendations( - request, - ( - err?: Error | null, - result?: protos.google.cloud.recommender.v1.IRecommendation[] | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - } - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listRecommendations as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); + it('invokes markRecommendationClaimed with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.markRecommendationClaimed = stubSimpleCall(undefined, expectedError); + await assert.rejects(async () => { await client.markRecommendationClaimed(request); }, expectedError); + assert((client.innerApiCalls.markRecommendationClaimed as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); }); - it('invokes listRecommendations with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() - ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.listRecommendations = stubSimpleCall( - undefined, - expectedError - ); - await assert.rejects(async () => { - await client.listRecommendations(request); - }, expectedError); - assert( - (client.innerApiCalls.listRecommendations as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); + describe('markRecommendationSucceeded', () => { + it('invokes markRecommendationSucceeded without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); + client.innerApiCalls.markRecommendationSucceeded = stubSimpleCall(expectedResponse); + const [response] = await client.markRecommendationSucceeded(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.markRecommendationSucceeded as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); - it('invokes listRecommendationsStream without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() - ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - ]; - client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall( - expectedResponse - ); - const stream = client.listRecommendationsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; - stream.on( - 'data', - (response: protos.google.cloud.recommender.v1.Recommendation) => { - responses.push(response); - } - ); - stream.on('end', () => { - resolve(responses); + it('invokes markRecommendationSucceeded without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); + client.innerApiCalls.markRecommendationSucceeded = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.markRecommendationSucceeded( + request, + (err?: Error|null, result?: protos.google.cloud.recommender.v1.IRecommendation|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.markRecommendationSucceeded as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); }); - stream.on('error', (err: Error) => { - reject(err); + + it('invokes markRecommendationSucceeded with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.markRecommendationSucceeded = stubSimpleCall(undefined, expectedError); + await assert.rejects(async () => { await client.markRecommendationSucceeded(request); }, expectedError); + assert((client.innerApiCalls.markRecommendationSucceeded as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); }); - }); - const responses = await promise; - assert.deepStrictEqual(responses, expectedResponse); - assert( - (client.descriptors.page.listRecommendations.createStream as SinonStub) - .getCall(0) - .calledWith(client.innerApiCalls.listRecommendations, request) - ); - assert.strictEqual( - (client.descriptors.page.listRecommendations - .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ - 'x-goog-request-params' - ], - expectedHeaderRequestParams - ); }); - it('invokes listRecommendationsStream with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() - ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedError = new Error('expected'); - client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall( - undefined, - expectedError - ); - const stream = client.listRecommendationsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; - stream.on( - 'data', - (response: protos.google.cloud.recommender.v1.Recommendation) => { - responses.push(response); - } - ); - stream.on('end', () => { - resolve(responses); + describe('markRecommendationFailed', () => { + it('invokes markRecommendationFailed without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); + client.innerApiCalls.markRecommendationFailed = stubSimpleCall(expectedResponse); + const [response] = await client.markRecommendationFailed(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.markRecommendationFailed as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); }); - stream.on('error', (err: Error) => { - reject(err); + + it('invokes markRecommendationFailed without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); + client.innerApiCalls.markRecommendationFailed = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.markRecommendationFailed( + request, + (err?: Error|null, result?: protos.google.cloud.recommender.v1.IRecommendation|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.markRecommendationFailed as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); }); - }); - await assert.rejects(async () => { - await promise; - }, expectedError); - assert( - (client.descriptors.page.listRecommendations.createStream as SinonStub) - .getCall(0) - .calledWith(client.innerApiCalls.listRecommendations, request) - ); - assert.strictEqual( - (client.descriptors.page.listRecommendations - .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ - 'x-goog-request-params' - ], - expectedHeaderRequestParams - ); - }); - it('uses async iteration with listRecommendations without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() - ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - ]; - client.descriptors.page.listRecommendations.asyncIterate = stubAsyncIterationCall( - expectedResponse - ); - const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; - const iterable = client.listRecommendationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listRecommendations - .asyncIterate as SinonStub).getCall(0).args[1], - request - ); - assert.strictEqual( - (client.descriptors.page.listRecommendations - .asyncIterate as SinonStub).getCall(0).args[2].otherArgs.headers[ - 'x-goog-request-params' - ], - expectedHeaderRequestParams - ); + it('invokes markRecommendationFailed with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.markRecommendationFailed = stubSimpleCall(undefined, expectedError); + await assert.rejects(async () => { await client.markRecommendationFailed(request); }, expectedError); + assert((client.innerApiCalls.markRecommendationFailed as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); }); - it('uses async iteration with listRecommendations with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() - ); - request.parent = ''; - const expectedHeaderRequestParams = 'parent='; - const expectedError = new Error('expected'); - client.descriptors.page.listRecommendations.asyncIterate = stubAsyncIterationCall( - undefined, - expectedError - ); - const iterable = client.listRecommendationsAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listRecommendations - .asyncIterate as SinonStub).getCall(0).args[1], - request - ); - assert.strictEqual( - (client.descriptors.page.listRecommendations - .asyncIterate as SinonStub).getCall(0).args[2].otherArgs.headers[ - 'x-goog-request-params' - ], - expectedHeaderRequestParams - ); - }); - }); + describe('listRecommendations', () => { + it('invokes listRecommendations without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), + ]; + client.innerApiCalls.listRecommendations = stubSimpleCall(expectedResponse); + const [response] = await client.listRecommendations(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.listRecommendations as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); - describe('Path templates', () => { - describe('recommendation', () => { - const fakePath = '/rendered/path/recommendation'; - const expectedParameters = { - project: 'projectValue', - location: 'locationValue', - recommender: 'recommenderValue', - recommendation: 'recommendationValue', - }; - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - client.pathTemplates.recommendationPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.recommendationPathTemplate.match = sinon - .stub() - .returns(expectedParameters); + it('invokes listRecommendations without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), + ]; + client.innerApiCalls.listRecommendations = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listRecommendations( + request, + (err?: Error|null, result?: protos.google.cloud.recommender.v1.IRecommendation[]|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.listRecommendations as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); - it('recommendationPath', () => { - const result = client.recommendationPath( - 'projectValue', - 'locationValue', - 'recommenderValue', - 'recommendationValue' - ); - assert.strictEqual(result, fakePath); - assert( - (client.pathTemplates.recommendationPathTemplate.render as SinonStub) - .getCall(-1) - .calledWith(expectedParameters) - ); - }); + it('invokes listRecommendations with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.listRecommendations = stubSimpleCall(undefined, expectedError); + await assert.rejects(async () => { await client.listRecommendations(request); }, expectedError); + assert((client.innerApiCalls.listRecommendations as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); - it('matchProjectFromRecommendationName', () => { - const result = client.matchProjectFromRecommendationName(fakePath); - assert.strictEqual(result, 'projectValue'); - assert( - (client.pathTemplates.recommendationPathTemplate.match as SinonStub) - .getCall(-1) - .calledWith(fakePath) - ); - }); + it('invokes listRecommendationsStream without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), + ]; + client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall(expectedResponse); + const stream = client.listRecommendationsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; + stream.on('data', (response: protos.google.cloud.recommender.v1.Recommendation) => { + 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.listRecommendations.createStream as SinonStub) + .getCall(0).calledWith(client.innerApiCalls.listRecommendations, request)); + assert.strictEqual( + (client.descriptors.page.listRecommendations.createStream as SinonStub) + .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); - it('matchLocationFromRecommendationName', () => { - const result = client.matchLocationFromRecommendationName(fakePath); - assert.strictEqual(result, 'locationValue'); - assert( - (client.pathTemplates.recommendationPathTemplate.match as SinonStub) - .getCall(-1) - .calledWith(fakePath) - ); - }); + it('invokes listRecommendationsStream with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedError = new Error('expected'); + client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall(undefined, expectedError); + const stream = client.listRecommendationsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; + stream.on('data', (response: protos.google.cloud.recommender.v1.Recommendation) => { + responses.push(response); + }); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(async () => { await promise; }, expectedError); + assert((client.descriptors.page.listRecommendations.createStream as SinonStub) + .getCall(0).calledWith(client.innerApiCalls.listRecommendations, request)); + assert.strictEqual( + (client.descriptors.page.listRecommendations.createStream as SinonStub) + .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); - it('matchRecommenderFromRecommendationName', () => { - const result = client.matchRecommenderFromRecommendationName(fakePath); - assert.strictEqual(result, 'recommenderValue'); - assert( - (client.pathTemplates.recommendationPathTemplate.match as SinonStub) - .getCall(-1) - .calledWith(fakePath) - ); - }); + it('uses async iteration with listRecommendations without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent=";const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), + ]; + client.descriptors.page.listRecommendations.asyncIterate = stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; + const iterable = client.listRecommendationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + (client.descriptors.page.listRecommendations.asyncIterate as SinonStub) + .getCall(0).args[1], request); + assert.strictEqual( + (client.descriptors.page.listRecommendations.asyncIterate as SinonStub) + .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); - it('matchRecommendationFromRecommendationName', () => { - const result = client.matchRecommendationFromRecommendationName( - fakePath - ); - assert.strictEqual(result, 'recommendationValue'); - assert( - (client.pathTemplates.recommendationPathTemplate.match as SinonStub) - .getCall(-1) - .calledWith(fakePath) - ); - }); + it('uses async iteration with listRecommendations with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent=";const expectedError = new Error('expected'); + client.descriptors.page.listRecommendations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listRecommendationsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + (client.descriptors.page.listRecommendations.asyncIterate as SinonStub) + .getCall(0).args[1], request); + assert.strictEqual( + (client.descriptors.page.listRecommendations.asyncIterate as SinonStub) + .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); }); - describe('recommender', () => { - const fakePath = '/rendered/path/recommender'; - const expectedParameters = { - project: 'projectValue', - location: 'locationValue', - recommender: 'recommenderValue', - }; - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - client.pathTemplates.recommenderPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.recommenderPathTemplate.match = sinon - .stub() - .returns(expectedParameters); - - it('recommenderPath', () => { - const result = client.recommenderPath( - 'projectValue', - 'locationValue', - 'recommenderValue' - ); - assert.strictEqual(result, fakePath); - assert( - (client.pathTemplates.recommenderPathTemplate.render as SinonStub) - .getCall(-1) - .calledWith(expectedParameters) - ); - }); - - it('matchProjectFromRecommenderName', () => { - const result = client.matchProjectFromRecommenderName(fakePath); - assert.strictEqual(result, 'projectValue'); - assert( - (client.pathTemplates.recommenderPathTemplate.match as SinonStub) - .getCall(-1) - .calledWith(fakePath) - ); - }); - - it('matchLocationFromRecommenderName', () => { - const result = client.matchLocationFromRecommenderName(fakePath); - assert.strictEqual(result, 'locationValue'); - assert( - (client.pathTemplates.recommenderPathTemplate.match as SinonStub) - .getCall(-1) - .calledWith(fakePath) - ); - }); + describe('Path templates', () => { + + describe('recommendation', () => { + const fakePath = "/rendered/path/recommendation"; + const expectedParameters = { + project: "projectValue", + location: "locationValue", + recommender: "recommenderValue", + recommendation: "recommendationValue", + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.recommendationPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.recommendationPathTemplate.match = + sinon.stub().returns(expectedParameters); + + it('recommendationPath', () => { + const result = client.recommendationPath("projectValue", "locationValue", "recommenderValue", "recommendationValue"); + assert.strictEqual(result, fakePath); + assert((client.pathTemplates.recommendationPathTemplate.render as SinonStub) + .getCall(-1).calledWith(expectedParameters)); + }); + + it('matchProjectFromRecommendationName', () => { + const result = client.matchProjectFromRecommendationName(fakePath); + assert.strictEqual(result, "projectValue"); + assert((client.pathTemplates.recommendationPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchLocationFromRecommendationName', () => { + const result = client.matchLocationFromRecommendationName(fakePath); + assert.strictEqual(result, "locationValue"); + assert((client.pathTemplates.recommendationPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchRecommenderFromRecommendationName', () => { + const result = client.matchRecommenderFromRecommendationName(fakePath); + assert.strictEqual(result, "recommenderValue"); + assert((client.pathTemplates.recommendationPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchRecommendationFromRecommendationName', () => { + const result = client.matchRecommendationFromRecommendationName(fakePath); + assert.strictEqual(result, "recommendationValue"); + assert((client.pathTemplates.recommendationPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + }); - it('matchRecommenderFromRecommenderName', () => { - const result = client.matchRecommenderFromRecommenderName(fakePath); - assert.strictEqual(result, 'recommenderValue'); - assert( - (client.pathTemplates.recommenderPathTemplate.match as SinonStub) - .getCall(-1) - .calledWith(fakePath) - ); - }); + describe('recommender', () => { + const fakePath = "/rendered/path/recommender"; + const expectedParameters = { + project: "projectValue", + location: "locationValue", + recommender: "recommenderValue", + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.recommenderPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.recommenderPathTemplate.match = + sinon.stub().returns(expectedParameters); + + it('recommenderPath', () => { + const result = client.recommenderPath("projectValue", "locationValue", "recommenderValue"); + assert.strictEqual(result, fakePath); + assert((client.pathTemplates.recommenderPathTemplate.render as SinonStub) + .getCall(-1).calledWith(expectedParameters)); + }); + + it('matchProjectFromRecommenderName', () => { + const result = client.matchProjectFromRecommenderName(fakePath); + assert.strictEqual(result, "projectValue"); + assert((client.pathTemplates.recommenderPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchLocationFromRecommenderName', () => { + const result = client.matchLocationFromRecommenderName(fakePath); + assert.strictEqual(result, "locationValue"); + assert((client.pathTemplates.recommenderPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchRecommenderFromRecommenderName', () => { + const result = client.matchRecommenderFromRecommenderName(fakePath); + assert.strictEqual(result, "recommenderValue"); + assert((client.pathTemplates.recommenderPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + }); }); - }); }); diff --git a/packages/google-cloud-recommender/webpack.config.js b/packages/google-cloud-recommender/webpack.config.js index 40a80f89007..ae0c62f95e1 100644 --- a/packages/google-cloud-recommender/webpack.config.js +++ b/packages/google-cloud-recommender/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' }, ], }, From bfba5664250fe448df34d5424a62827a8d1768bc Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 21 Apr 2020 20:31:32 -0700 Subject: [PATCH 050/158] build: adopt changes to generator formatting (#73) --- .../google-cloud-recommender/protos/protos.js | 350 ++-- .../google-cloud-recommender/src/index.ts | 2 +- .../src/v1/recommender_client.ts | 1070 +++++----- .../google-cloud-recommender/synth.metadata | 8 +- .../system-test/fixtures/sample/src/index.js | 1 - .../system-test/install.ts | 32 +- .../test/gapic_recommender_v1.ts | 1770 ++++++++++------- .../webpack.config.js | 12 +- 8 files changed, 1860 insertions(+), 1385 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index 35429fe4443..2ef5334c93d 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -195,24 +195,24 @@ Recommendation.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.description != null && message.hasOwnProperty("description")) + if (message.description != null && Object.hasOwnProperty.call(message, "description")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.description); - if (message.lastRefreshTime != null && message.hasOwnProperty("lastRefreshTime")) + if (message.lastRefreshTime != null && Object.hasOwnProperty.call(message, "lastRefreshTime")) $root.google.protobuf.Timestamp.encode(message.lastRefreshTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.primaryImpact != null && message.hasOwnProperty("primaryImpact")) + if (message.primaryImpact != null && Object.hasOwnProperty.call(message, "primaryImpact")) $root.google.cloud.recommender.v1.Impact.encode(message.primaryImpact, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); if (message.additionalImpact != null && message.additionalImpact.length) for (var i = 0; i < message.additionalImpact.length; ++i) $root.google.cloud.recommender.v1.Impact.encode(message.additionalImpact[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.content != null && message.hasOwnProperty("content")) + if (message.content != null && Object.hasOwnProperty.call(message, "content")) $root.google.cloud.recommender.v1.RecommendationContent.encode(message.content, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) + if (message.stateInfo != null && Object.hasOwnProperty.call(message, "stateInfo")) $root.google.cloud.recommender.v1.RecommendationStateInfo.encode(message.stateInfo, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.etag); - if (message.recommenderSubtype != null && message.hasOwnProperty("recommenderSubtype")) + if (message.recommenderSubtype != null && Object.hasOwnProperty.call(message, "recommenderSubtype")) writer.uint32(/* id 12, wireType 2 =*/98).string(message.recommenderSubtype); return writer; }; @@ -1041,28 +1041,28 @@ Operation.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.action != null && message.hasOwnProperty("action")) + if (message.action != null && Object.hasOwnProperty.call(message, "action")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.action); - if (message.resourceType != null && message.hasOwnProperty("resourceType")) + if (message.resourceType != null && Object.hasOwnProperty.call(message, "resourceType")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.resourceType); - if (message.resource != null && message.hasOwnProperty("resource")) + if (message.resource != null && Object.hasOwnProperty.call(message, "resource")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.resource); - if (message.path != null && message.hasOwnProperty("path")) + if (message.path != null && Object.hasOwnProperty.call(message, "path")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.path); - if (message.sourceResource != null && message.hasOwnProperty("sourceResource")) + if (message.sourceResource != null && Object.hasOwnProperty.call(message, "sourceResource")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.sourceResource); - if (message.sourcePath != null && message.hasOwnProperty("sourcePath")) + if (message.sourcePath != null && Object.hasOwnProperty.call(message, "sourcePath")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.sourcePath); - if (message.value != null && message.hasOwnProperty("value")) + if (message.value != null && Object.hasOwnProperty.call(message, "value")) $root.google.protobuf.Value.encode(message.value, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.pathFilters != null && message.hasOwnProperty("pathFilters")) + if (message.pathFilters != null && Object.hasOwnProperty.call(message, "pathFilters")) for (var keys = Object.keys(message.pathFilters), i = 0; i < keys.length; ++i) { writer.uint32(/* id 8, wireType 2 =*/66).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); $root.google.protobuf.Value.encode(message.pathFilters[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); } - if (message.valueMatcher != null && message.hasOwnProperty("valueMatcher")) + if (message.valueMatcher != null && Object.hasOwnProperty.call(message, "valueMatcher")) $root.google.cloud.recommender.v1.ValueMatcher.encode(message.valueMatcher, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); - if (message.pathValueMatchers != null && message.hasOwnProperty("pathValueMatchers")) + if (message.pathValueMatchers != null && Object.hasOwnProperty.call(message, "pathValueMatchers")) for (var keys = Object.keys(message.pathValueMatchers), i = 0; i < keys.length; ++i) { writer.uint32(/* id 11, wireType 2 =*/90).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); $root.google.cloud.recommender.v1.ValueMatcher.encode(message.pathValueMatchers[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); @@ -1438,7 +1438,7 @@ ValueMatcher.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.matchesPattern != null && message.hasOwnProperty("matchesPattern")) + if (message.matchesPattern != null && Object.hasOwnProperty.call(message, "matchesPattern")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.matchesPattern); return writer; }; @@ -1638,9 +1638,9 @@ CostProjection.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.cost != null && message.hasOwnProperty("cost")) + if (message.cost != null && Object.hasOwnProperty.call(message, "cost")) $root.google.type.Money.encode(message.cost, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.duration != null && message.hasOwnProperty("duration")) + if (message.duration != null && Object.hasOwnProperty.call(message, "duration")) $root.google.protobuf.Duration.encode(message.duration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; @@ -1872,9 +1872,9 @@ Impact.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.category != null && message.hasOwnProperty("category")) + if (message.category != null && Object.hasOwnProperty.call(message, "category")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.category); - if (message.costProjection != null && message.hasOwnProperty("costProjection")) + if (message.costProjection != null && Object.hasOwnProperty.call(message, "costProjection")) $root.google.cloud.recommender.v1.CostProjection.encode(message.costProjection, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); return writer; }; @@ -2055,7 +2055,7 @@ /** * Category enum. * @name google.cloud.recommender.v1.Impact.Category - * @enum {string} + * @enum {number} * @property {number} CATEGORY_UNSPECIFIED=0 CATEGORY_UNSPECIFIED value * @property {number} COST=1 COST value * @property {number} SECURITY=2 SECURITY value @@ -2141,9 +2141,9 @@ RecommendationStateInfo.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.state != null && message.hasOwnProperty("state")) + if (message.state != null && Object.hasOwnProperty.call(message, "state")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.state); - if (message.stateMetadata != null && message.hasOwnProperty("stateMetadata")) + if (message.stateMetadata != null && Object.hasOwnProperty.call(message, "stateMetadata")) for (var keys = Object.keys(message.stateMetadata), i = 0; i < keys.length; ++i) writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.stateMetadata[keys[i]]).ldelim(); return writer; @@ -2339,7 +2339,7 @@ /** * State enum. * @name google.cloud.recommender.v1.RecommendationStateInfo.State - * @enum {string} + * @enum {number} * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value * @property {number} ACTIVE=1 ACTIVE value * @property {number} CLAIMED=6 CLAIMED value @@ -2644,13 +2644,13 @@ ListRecommendationsRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.parent != null && message.hasOwnProperty("parent")) + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); - if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.pageSize); - if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.pageToken); - if (message.filter != null && message.hasOwnProperty("filter")) + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.filter); return writer; }; @@ -2884,7 +2884,7 @@ if (message.recommendations != null && message.recommendations.length) for (var i = 0; i < message.recommendations.length; ++i) $root.google.cloud.recommender.v1.Recommendation.encode(message.recommendations[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); return writer; }; @@ -3102,7 +3102,7 @@ GetRecommendationRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); return writer; }; @@ -3308,12 +3308,12 @@ MarkRecommendationClaimedRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.stateMetadata != null && message.hasOwnProperty("stateMetadata")) + if (message.stateMetadata != null && Object.hasOwnProperty.call(message, "stateMetadata")) for (var keys = Object.keys(message.stateMetadata), i = 0; i < keys.length; ++i) writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.stateMetadata[keys[i]]).ldelim(); - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.etag); return writer; }; @@ -3562,12 +3562,12 @@ MarkRecommendationSucceededRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.stateMetadata != null && message.hasOwnProperty("stateMetadata")) + if (message.stateMetadata != null && Object.hasOwnProperty.call(message, "stateMetadata")) for (var keys = Object.keys(message.stateMetadata), i = 0; i < keys.length; ++i) writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.stateMetadata[keys[i]]).ldelim(); - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.etag); return writer; }; @@ -3816,12 +3816,12 @@ MarkRecommendationFailedRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.stateMetadata != null && message.hasOwnProperty("stateMetadata")) + if (message.stateMetadata != null && Object.hasOwnProperty.call(message, "stateMetadata")) for (var keys = Object.keys(message.stateMetadata), i = 0; i < keys.length; ++i) writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.stateMetadata[keys[i]]).ldelim(); - if (message.etag != null && message.hasOwnProperty("etag")) + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.etag); return writer; }; @@ -4115,18 +4115,18 @@ ResourceDescriptor.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.type); if (message.pattern != null && message.pattern.length) for (var i = 0; i < message.pattern.length; ++i) writer.uint32(/* id 2, wireType 2 =*/18).string(message.pattern[i]); - if (message.nameField != null && message.hasOwnProperty("nameField")) + if (message.nameField != null && Object.hasOwnProperty.call(message, "nameField")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.nameField); - if (message.history != null && message.hasOwnProperty("history")) + if (message.history != null && Object.hasOwnProperty.call(message, "history")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.history); - if (message.plural != null && message.hasOwnProperty("plural")) + if (message.plural != null && Object.hasOwnProperty.call(message, "plural")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.plural); - if (message.singular != null && message.hasOwnProperty("singular")) + if (message.singular != null && Object.hasOwnProperty.call(message, "singular")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.singular); return writer; }; @@ -4346,7 +4346,7 @@ /** * History enum. * @name google.api.ResourceDescriptor.History - * @enum {string} + * @enum {number} * @property {number} HISTORY_UNSPECIFIED=0 HISTORY_UNSPECIFIED value * @property {number} ORIGINALLY_SINGLE_PATTERN=1 ORIGINALLY_SINGLE_PATTERN value * @property {number} FUTURE_MULTI_PATTERN=2 FUTURE_MULTI_PATTERN value @@ -4427,9 +4427,9 @@ ResourceReference.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.type); - if (message.childType != null && message.hasOwnProperty("childType")) + if (message.childType != null && Object.hasOwnProperty.call(message, "childType")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.childType); return writer; }; @@ -4641,7 +4641,7 @@ if (message.rules != null && message.rules.length) for (var i = 0; i < message.rules.length; ++i) $root.google.api.HttpRule.encode(message.rules[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.fullyDecodeReservedExpansion != null && message.hasOwnProperty("fullyDecodeReservedExpansion")) + if (message.fullyDecodeReservedExpansion != null && Object.hasOwnProperty.call(message, "fullyDecodeReservedExpansion")) writer.uint32(/* id 2, wireType 0 =*/16).bool(message.fullyDecodeReservedExpansion); return writer; }; @@ -4955,26 +4955,26 @@ HttpRule.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.selector != null && message.hasOwnProperty("selector")) + if (message.selector != null && Object.hasOwnProperty.call(message, "selector")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.selector); - if (message.get != null && message.hasOwnProperty("get")) + if (message.get != null && Object.hasOwnProperty.call(message, "get")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.get); - if (message.put != null && message.hasOwnProperty("put")) + if (message.put != null && Object.hasOwnProperty.call(message, "put")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.put); - if (message.post != null && message.hasOwnProperty("post")) + if (message.post != null && Object.hasOwnProperty.call(message, "post")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.post); - if (message["delete"] != null && message.hasOwnProperty("delete")) + if (message["delete"] != null && Object.hasOwnProperty.call(message, "delete")) writer.uint32(/* id 5, wireType 2 =*/42).string(message["delete"]); - if (message.patch != null && message.hasOwnProperty("patch")) + if (message.patch != null && Object.hasOwnProperty.call(message, "patch")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.patch); - if (message.body != null && message.hasOwnProperty("body")) + if (message.body != null && Object.hasOwnProperty.call(message, "body")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.body); - if (message.custom != null && message.hasOwnProperty("custom")) + if (message.custom != null && Object.hasOwnProperty.call(message, "custom")) $root.google.api.CustomHttpPattern.encode(message.custom, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); if (message.additionalBindings != null && message.additionalBindings.length) for (var i = 0; i < message.additionalBindings.length; ++i) $root.google.api.HttpRule.encode(message.additionalBindings[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); - if (message.responseBody != null && message.hasOwnProperty("responseBody")) + if (message.responseBody != null && Object.hasOwnProperty.call(message, "responseBody")) writer.uint32(/* id 12, wireType 2 =*/98).string(message.responseBody); return writer; }; @@ -5331,9 +5331,9 @@ CustomHttpPattern.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.kind != null && message.hasOwnProperty("kind")) + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); - if (message.path != null && message.hasOwnProperty("path")) + if (message.path != null && Object.hasOwnProperty.call(message, "path")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.path); return writer; }; @@ -5479,7 +5479,7 @@ /** * FieldBehavior enum. * @name google.api.FieldBehavior - * @enum {string} + * @enum {number} * @property {number} FIELD_BEHAVIOR_UNSPECIFIED=0 FIELD_BEHAVIOR_UNSPECIFIED value * @property {number} OPTIONAL=1 OPTIONAL value * @property {number} REQUIRED=2 REQUIRED value @@ -5880,9 +5880,9 @@ FileDescriptorProto.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message["package"] != null && message.hasOwnProperty("package")) + if (message["package"] != null && Object.hasOwnProperty.call(message, "package")) writer.uint32(/* id 2, wireType 2 =*/18).string(message["package"]); if (message.dependency != null && message.dependency.length) for (var i = 0; i < message.dependency.length; ++i) @@ -5899,9 +5899,9 @@ if (message.extension != null && message.extension.length) for (var i = 0; i < message.extension.length; ++i) $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.options != null && message.hasOwnProperty("options")) + if (message.options != null && Object.hasOwnProperty.call(message, "options")) $root.google.protobuf.FileOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.sourceCodeInfo != null && message.hasOwnProperty("sourceCodeInfo")) + if (message.sourceCodeInfo != null && Object.hasOwnProperty.call(message, "sourceCodeInfo")) $root.google.protobuf.SourceCodeInfo.encode(message.sourceCodeInfo, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); if (message.publicDependency != null && message.publicDependency.length) for (var i = 0; i < message.publicDependency.length; ++i) @@ -5909,7 +5909,7 @@ if (message.weakDependency != null && message.weakDependency.length) for (var i = 0; i < message.weakDependency.length; ++i) writer.uint32(/* id 11, wireType 0 =*/88).int32(message.weakDependency[i]); - if (message.syntax != null && message.hasOwnProperty("syntax")) + if (message.syntax != null && Object.hasOwnProperty.call(message, "syntax")) writer.uint32(/* id 12, wireType 2 =*/98).string(message.syntax); return writer; }; @@ -6447,7 +6447,7 @@ DescriptorProto.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.field != null && message.field.length) for (var i = 0; i < message.field.length; ++i) @@ -6464,7 +6464,7 @@ if (message.extension != null && message.extension.length) for (var i = 0; i < message.extension.length; ++i) $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.options != null && message.hasOwnProperty("options")) + if (message.options != null && Object.hasOwnProperty.call(message, "options")) $root.google.protobuf.MessageOptions.encode(message.options, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); if (message.oneofDecl != null && message.oneofDecl.length) for (var i = 0; i < message.oneofDecl.length; ++i) @@ -6929,11 +6929,11 @@ ExtensionRange.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.start != null && message.hasOwnProperty("start")) + if (message.start != null && Object.hasOwnProperty.call(message, "start")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); - if (message.end != null && message.hasOwnProperty("end")) + if (message.end != null && Object.hasOwnProperty.call(message, "end")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); - if (message.options != null && message.hasOwnProperty("options")) + if (message.options != null && Object.hasOwnProperty.call(message, "options")) $root.google.protobuf.ExtensionRangeOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; @@ -7157,9 +7157,9 @@ ReservedRange.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.start != null && message.hasOwnProperty("start")) + if (message.start != null && Object.hasOwnProperty.call(message, "start")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); - if (message.end != null && message.hasOwnProperty("end")) + if (message.end != null && Object.hasOwnProperty.call(message, "end")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); return writer; }; @@ -7650,25 +7650,25 @@ FieldDescriptorProto.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.extendee != null && message.hasOwnProperty("extendee")) + if (message.extendee != null && Object.hasOwnProperty.call(message, "extendee")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.extendee); - if (message.number != null && message.hasOwnProperty("number")) + if (message.number != null && Object.hasOwnProperty.call(message, "number")) writer.uint32(/* id 3, wireType 0 =*/24).int32(message.number); - if (message.label != null && message.hasOwnProperty("label")) + if (message.label != null && Object.hasOwnProperty.call(message, "label")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.label); - if (message.type != null && message.hasOwnProperty("type")) + if (message.type != null && Object.hasOwnProperty.call(message, "type")) writer.uint32(/* id 5, wireType 0 =*/40).int32(message.type); - if (message.typeName != null && message.hasOwnProperty("typeName")) + if (message.typeName != null && Object.hasOwnProperty.call(message, "typeName")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.typeName); - if (message.defaultValue != null && message.hasOwnProperty("defaultValue")) + if (message.defaultValue != null && Object.hasOwnProperty.call(message, "defaultValue")) writer.uint32(/* id 7, wireType 2 =*/58).string(message.defaultValue); - if (message.options != null && message.hasOwnProperty("options")) + if (message.options != null && Object.hasOwnProperty.call(message, "options")) $root.google.protobuf.FieldOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.oneofIndex != null && message.hasOwnProperty("oneofIndex")) + if (message.oneofIndex != null && Object.hasOwnProperty.call(message, "oneofIndex")) writer.uint32(/* id 9, wireType 0 =*/72).int32(message.oneofIndex); - if (message.jsonName != null && message.hasOwnProperty("jsonName")) + if (message.jsonName != null && Object.hasOwnProperty.call(message, "jsonName")) writer.uint32(/* id 10, wireType 2 =*/82).string(message.jsonName); return writer; }; @@ -8015,7 +8015,7 @@ /** * Type enum. * @name google.protobuf.FieldDescriptorProto.Type - * @enum {string} + * @enum {number} * @property {number} TYPE_DOUBLE=1 TYPE_DOUBLE value * @property {number} TYPE_FLOAT=2 TYPE_FLOAT value * @property {number} TYPE_INT64=3 TYPE_INT64 value @@ -8061,7 +8061,7 @@ /** * Label enum. * @name google.protobuf.FieldDescriptorProto.Label - * @enum {string} + * @enum {number} * @property {number} LABEL_OPTIONAL=1 LABEL_OPTIONAL value * @property {number} LABEL_REQUIRED=2 LABEL_REQUIRED value * @property {number} LABEL_REPEATED=3 LABEL_REPEATED value @@ -8142,9 +8142,9 @@ OneofDescriptorProto.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.options != null && message.hasOwnProperty("options")) + if (message.options != null && Object.hasOwnProperty.call(message, "options")) $root.google.protobuf.OneofOptions.encode(message.options, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; @@ -8387,12 +8387,12 @@ EnumDescriptorProto.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.value != null && message.value.length) for (var i = 0; i < message.value.length; ++i) $root.google.protobuf.EnumValueDescriptorProto.encode(message.value[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.options != null && message.hasOwnProperty("options")) + if (message.options != null && Object.hasOwnProperty.call(message, "options")) $root.google.protobuf.EnumOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); if (message.reservedRange != null && message.reservedRange.length) for (var i = 0; i < message.reservedRange.length; ++i) @@ -8695,9 +8695,9 @@ EnumReservedRange.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.start != null && message.hasOwnProperty("start")) + if (message.start != null && Object.hasOwnProperty.call(message, "start")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); - if (message.end != null && message.hasOwnProperty("end")) + if (message.end != null && Object.hasOwnProperty.call(message, "end")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); return writer; }; @@ -8917,11 +8917,11 @@ EnumValueDescriptorProto.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.number != null && message.hasOwnProperty("number")) + if (message.number != null && Object.hasOwnProperty.call(message, "number")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.number); - if (message.options != null && message.hasOwnProperty("options")) + if (message.options != null && Object.hasOwnProperty.call(message, "options")) $root.google.protobuf.EnumValueOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; @@ -9155,12 +9155,12 @@ ServiceDescriptorProto.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); if (message.method != null && message.method.length) for (var i = 0; i < message.method.length; ++i) $root.google.protobuf.MethodDescriptorProto.encode(message.method[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.options != null && message.hasOwnProperty("options")) + if (message.options != null && Object.hasOwnProperty.call(message, "options")) $root.google.protobuf.ServiceOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; @@ -9440,17 +9440,17 @@ MethodDescriptorProto.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.hasOwnProperty("name")) + if (message.name != null && Object.hasOwnProperty.call(message, "name")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.inputType != null && message.hasOwnProperty("inputType")) + if (message.inputType != null && Object.hasOwnProperty.call(message, "inputType")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.inputType); - if (message.outputType != null && message.hasOwnProperty("outputType")) + if (message.outputType != null && Object.hasOwnProperty.call(message, "outputType")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.outputType); - if (message.options != null && message.hasOwnProperty("options")) + if (message.options != null && Object.hasOwnProperty.call(message, "options")) $root.google.protobuf.MethodOptions.encode(message.options, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.clientStreaming != null && message.hasOwnProperty("clientStreaming")) + if (message.clientStreaming != null && Object.hasOwnProperty.call(message, "clientStreaming")) writer.uint32(/* id 5, wireType 0 =*/40).bool(message.clientStreaming); - if (message.serverStreaming != null && message.hasOwnProperty("serverStreaming")) + if (message.serverStreaming != null && Object.hasOwnProperty.call(message, "serverStreaming")) writer.uint32(/* id 6, wireType 0 =*/48).bool(message.serverStreaming); return writer; }; @@ -9889,45 +9889,45 @@ FileOptions.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.javaPackage != null && message.hasOwnProperty("javaPackage")) + if (message.javaPackage != null && Object.hasOwnProperty.call(message, "javaPackage")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.javaPackage); - if (message.javaOuterClassname != null && message.hasOwnProperty("javaOuterClassname")) + if (message.javaOuterClassname != null && Object.hasOwnProperty.call(message, "javaOuterClassname")) writer.uint32(/* id 8, wireType 2 =*/66).string(message.javaOuterClassname); - if (message.optimizeFor != null && message.hasOwnProperty("optimizeFor")) + if (message.optimizeFor != null && Object.hasOwnProperty.call(message, "optimizeFor")) writer.uint32(/* id 9, wireType 0 =*/72).int32(message.optimizeFor); - if (message.javaMultipleFiles != null && message.hasOwnProperty("javaMultipleFiles")) + if (message.javaMultipleFiles != null && Object.hasOwnProperty.call(message, "javaMultipleFiles")) writer.uint32(/* id 10, wireType 0 =*/80).bool(message.javaMultipleFiles); - if (message.goPackage != null && message.hasOwnProperty("goPackage")) + if (message.goPackage != null && Object.hasOwnProperty.call(message, "goPackage")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.goPackage); - if (message.ccGenericServices != null && message.hasOwnProperty("ccGenericServices")) + if (message.ccGenericServices != null && Object.hasOwnProperty.call(message, "ccGenericServices")) writer.uint32(/* id 16, wireType 0 =*/128).bool(message.ccGenericServices); - if (message.javaGenericServices != null && message.hasOwnProperty("javaGenericServices")) + if (message.javaGenericServices != null && Object.hasOwnProperty.call(message, "javaGenericServices")) writer.uint32(/* id 17, wireType 0 =*/136).bool(message.javaGenericServices); - if (message.pyGenericServices != null && message.hasOwnProperty("pyGenericServices")) + if (message.pyGenericServices != null && Object.hasOwnProperty.call(message, "pyGenericServices")) writer.uint32(/* id 18, wireType 0 =*/144).bool(message.pyGenericServices); - if (message.javaGenerateEqualsAndHash != null && message.hasOwnProperty("javaGenerateEqualsAndHash")) + if (message.javaGenerateEqualsAndHash != null && Object.hasOwnProperty.call(message, "javaGenerateEqualsAndHash")) writer.uint32(/* id 20, wireType 0 =*/160).bool(message.javaGenerateEqualsAndHash); - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) writer.uint32(/* id 23, wireType 0 =*/184).bool(message.deprecated); - if (message.javaStringCheckUtf8 != null && message.hasOwnProperty("javaStringCheckUtf8")) + if (message.javaStringCheckUtf8 != null && Object.hasOwnProperty.call(message, "javaStringCheckUtf8")) writer.uint32(/* id 27, wireType 0 =*/216).bool(message.javaStringCheckUtf8); - if (message.ccEnableArenas != null && message.hasOwnProperty("ccEnableArenas")) + if (message.ccEnableArenas != null && Object.hasOwnProperty.call(message, "ccEnableArenas")) writer.uint32(/* id 31, wireType 0 =*/248).bool(message.ccEnableArenas); - if (message.objcClassPrefix != null && message.hasOwnProperty("objcClassPrefix")) + if (message.objcClassPrefix != null && Object.hasOwnProperty.call(message, "objcClassPrefix")) writer.uint32(/* id 36, wireType 2 =*/290).string(message.objcClassPrefix); - if (message.csharpNamespace != null && message.hasOwnProperty("csharpNamespace")) + if (message.csharpNamespace != null && Object.hasOwnProperty.call(message, "csharpNamespace")) writer.uint32(/* id 37, wireType 2 =*/298).string(message.csharpNamespace); - if (message.swiftPrefix != null && message.hasOwnProperty("swiftPrefix")) + if (message.swiftPrefix != null && Object.hasOwnProperty.call(message, "swiftPrefix")) writer.uint32(/* id 39, wireType 2 =*/314).string(message.swiftPrefix); - if (message.phpClassPrefix != null && message.hasOwnProperty("phpClassPrefix")) + if (message.phpClassPrefix != null && Object.hasOwnProperty.call(message, "phpClassPrefix")) writer.uint32(/* id 40, wireType 2 =*/322).string(message.phpClassPrefix); - if (message.phpNamespace != null && message.hasOwnProperty("phpNamespace")) + if (message.phpNamespace != null && Object.hasOwnProperty.call(message, "phpNamespace")) writer.uint32(/* id 41, wireType 2 =*/330).string(message.phpNamespace); - if (message.phpGenericServices != null && message.hasOwnProperty("phpGenericServices")) + if (message.phpGenericServices != null && Object.hasOwnProperty.call(message, "phpGenericServices")) writer.uint32(/* id 42, wireType 0 =*/336).bool(message.phpGenericServices); - if (message.phpMetadataNamespace != null && message.hasOwnProperty("phpMetadataNamespace")) + if (message.phpMetadataNamespace != null && Object.hasOwnProperty.call(message, "phpMetadataNamespace")) writer.uint32(/* id 44, wireType 2 =*/354).string(message.phpMetadataNamespace); - if (message.rubyPackage != null && message.hasOwnProperty("rubyPackage")) + if (message.rubyPackage != null && Object.hasOwnProperty.call(message, "rubyPackage")) writer.uint32(/* id 45, wireType 2 =*/362).string(message.rubyPackage); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) @@ -10354,7 +10354,7 @@ /** * OptimizeMode enum. * @name google.protobuf.FileOptions.OptimizeMode - * @enum {string} + * @enum {number} * @property {number} SPEED=1 SPEED value * @property {number} CODE_SIZE=2 CODE_SIZE value * @property {number} LITE_RUNTIME=3 LITE_RUNTIME value @@ -10472,18 +10472,18 @@ MessageOptions.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.messageSetWireFormat != null && message.hasOwnProperty("messageSetWireFormat")) + if (message.messageSetWireFormat != null && Object.hasOwnProperty.call(message, "messageSetWireFormat")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.messageSetWireFormat); - if (message.noStandardDescriptorAccessor != null && message.hasOwnProperty("noStandardDescriptorAccessor")) + if (message.noStandardDescriptorAccessor != null && Object.hasOwnProperty.call(message, "noStandardDescriptorAccessor")) writer.uint32(/* id 2, wireType 0 =*/16).bool(message.noStandardDescriptorAccessor); - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated); - if (message.mapEntry != null && message.hasOwnProperty("mapEntry")) + if (message.mapEntry != null && Object.hasOwnProperty.call(message, "mapEntry")) writer.uint32(/* id 7, wireType 0 =*/56).bool(message.mapEntry); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); - if (message[".google.api.resource"] != null && message.hasOwnProperty(".google.api.resource")) + if (message[".google.api.resource"] != null && Object.hasOwnProperty.call(message, ".google.api.resource")) $root.google.api.ResourceDescriptor.encode(message[".google.api.resource"], writer.uint32(/* id 1053, wireType 2 =*/8426).fork()).ldelim(); return writer; }; @@ -10825,17 +10825,17 @@ FieldOptions.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.ctype != null && message.hasOwnProperty("ctype")) + if (message.ctype != null && Object.hasOwnProperty.call(message, "ctype")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.ctype); - if (message.packed != null && message.hasOwnProperty("packed")) + if (message.packed != null && Object.hasOwnProperty.call(message, "packed")) writer.uint32(/* id 2, wireType 0 =*/16).bool(message.packed); - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated); - if (message.lazy != null && message.hasOwnProperty("lazy")) + if (message.lazy != null && Object.hasOwnProperty.call(message, "lazy")) writer.uint32(/* id 5, wireType 0 =*/40).bool(message.lazy); - if (message.jstype != null && message.hasOwnProperty("jstype")) + if (message.jstype != null && Object.hasOwnProperty.call(message, "jstype")) writer.uint32(/* id 6, wireType 0 =*/48).int32(message.jstype); - if (message.weak != null && message.hasOwnProperty("weak")) + if (message.weak != null && Object.hasOwnProperty.call(message, "weak")) writer.uint32(/* id 10, wireType 0 =*/80).bool(message.weak); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) @@ -10846,7 +10846,7 @@ writer.int32(message[".google.api.fieldBehavior"][i]); writer.ldelim(); } - if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) + if (message[".google.api.resourceReference"] != null && Object.hasOwnProperty.call(message, ".google.api.resourceReference")) $root.google.api.ResourceReference.encode(message[".google.api.resourceReference"], writer.uint32(/* id 1055, wireType 2 =*/8442).fork()).ldelim(); return writer; }; @@ -11182,7 +11182,7 @@ /** * CType enum. * @name google.protobuf.FieldOptions.CType - * @enum {string} + * @enum {number} * @property {number} STRING=0 STRING value * @property {number} CORD=1 CORD value * @property {number} STRING_PIECE=2 STRING_PIECE value @@ -11198,7 +11198,7 @@ /** * JSType enum. * @name google.protobuf.FieldOptions.JSType - * @enum {string} + * @enum {number} * @property {number} JS_NORMAL=0 JS_NORMAL value * @property {number} JS_STRING=1 JS_STRING value * @property {number} JS_NUMBER=2 JS_NUMBER value @@ -11497,9 +11497,9 @@ EnumOptions.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.allowAlias != null && message.hasOwnProperty("allowAlias")) + if (message.allowAlias != null && Object.hasOwnProperty.call(message, "allowAlias")) writer.uint32(/* id 2, wireType 0 =*/16).bool(message.allowAlias); - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) @@ -11742,7 +11742,7 @@ EnumValueOptions.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) writer.uint32(/* id 1, wireType 0 =*/8).bool(message.deprecated); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) @@ -11991,14 +11991,14 @@ ServiceOptions.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) writer.uint32(/* id 33, wireType 0 =*/264).bool(message.deprecated); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); - if (message[".google.api.defaultHost"] != null && message.hasOwnProperty(".google.api.defaultHost")) + if (message[".google.api.defaultHost"] != null && Object.hasOwnProperty.call(message, ".google.api.defaultHost")) writer.uint32(/* id 1049, wireType 2 =*/8394).string(message[".google.api.defaultHost"]); - if (message[".google.api.oauthScopes"] != null && message.hasOwnProperty(".google.api.oauthScopes")) + if (message[".google.api.oauthScopes"] != null && Object.hasOwnProperty.call(message, ".google.api.oauthScopes")) writer.uint32(/* id 1050, wireType 2 =*/8402).string(message[".google.api.oauthScopes"]); return writer; }; @@ -12277,9 +12277,9 @@ MethodOptions.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) writer.uint32(/* id 33, wireType 0 =*/264).bool(message.deprecated); - if (message.idempotencyLevel != null && message.hasOwnProperty("idempotencyLevel")) + if (message.idempotencyLevel != null && Object.hasOwnProperty.call(message, "idempotencyLevel")) writer.uint32(/* id 34, wireType 0 =*/272).int32(message.idempotencyLevel); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) @@ -12287,7 +12287,7 @@ if (message[".google.api.methodSignature"] != null && message[".google.api.methodSignature"].length) for (var i = 0; i < message[".google.api.methodSignature"].length; ++i) writer.uint32(/* id 1051, wireType 2 =*/8410).string(message[".google.api.methodSignature"][i]); - if (message[".google.api.http"] != null && message.hasOwnProperty(".google.api.http")) + if (message[".google.api.http"] != null && Object.hasOwnProperty.call(message, ".google.api.http")) $root.google.api.HttpRule.encode(message[".google.api.http"], writer.uint32(/* id 72295728, wireType 2 =*/578365826).fork()).ldelim(); return writer; }; @@ -12521,7 +12521,7 @@ /** * IdempotencyLevel enum. * @name google.protobuf.MethodOptions.IdempotencyLevel - * @enum {string} + * @enum {number} * @property {number} IDEMPOTENCY_UNKNOWN=0 IDEMPOTENCY_UNKNOWN value * @property {number} NO_SIDE_EFFECTS=1 NO_SIDE_EFFECTS value * @property {number} IDEMPOTENT=2 IDEMPOTENT value @@ -12651,17 +12651,17 @@ if (message.name != null && message.name.length) for (var i = 0; i < message.name.length; ++i) $root.google.protobuf.UninterpretedOption.NamePart.encode(message.name[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.identifierValue != null && message.hasOwnProperty("identifierValue")) + if (message.identifierValue != null && Object.hasOwnProperty.call(message, "identifierValue")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.identifierValue); - if (message.positiveIntValue != null && message.hasOwnProperty("positiveIntValue")) + if (message.positiveIntValue != null && Object.hasOwnProperty.call(message, "positiveIntValue")) writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.positiveIntValue); - if (message.negativeIntValue != null && message.hasOwnProperty("negativeIntValue")) + if (message.negativeIntValue != null && Object.hasOwnProperty.call(message, "negativeIntValue")) writer.uint32(/* id 5, wireType 0 =*/40).int64(message.negativeIntValue); - if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) + if (message.doubleValue != null && Object.hasOwnProperty.call(message, "doubleValue")) writer.uint32(/* id 6, wireType 1 =*/49).double(message.doubleValue); - if (message.stringValue != null && message.hasOwnProperty("stringValue")) + if (message.stringValue != null && Object.hasOwnProperty.call(message, "stringValue")) writer.uint32(/* id 7, wireType 2 =*/58).bytes(message.stringValue); - if (message.aggregateValue != null && message.hasOwnProperty("aggregateValue")) + if (message.aggregateValue != null && Object.hasOwnProperty.call(message, "aggregateValue")) writer.uint32(/* id 8, wireType 2 =*/66).string(message.aggregateValue); return writer; }; @@ -13438,9 +13438,9 @@ writer.int32(message.span[i]); writer.ldelim(); } - if (message.leadingComments != null && message.hasOwnProperty("leadingComments")) + if (message.leadingComments != null && Object.hasOwnProperty.call(message, "leadingComments")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.leadingComments); - if (message.trailingComments != null && message.hasOwnProperty("trailingComments")) + if (message.trailingComments != null && Object.hasOwnProperty.call(message, "trailingComments")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.trailingComments); if (message.leadingDetachedComments != null && message.leadingDetachedComments.length) for (var i = 0; i < message.leadingDetachedComments.length; ++i) @@ -13971,11 +13971,11 @@ writer.int32(message.path[i]); writer.ldelim(); } - if (message.sourceFile != null && message.hasOwnProperty("sourceFile")) + if (message.sourceFile != null && Object.hasOwnProperty.call(message, "sourceFile")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.sourceFile); - if (message.begin != null && message.hasOwnProperty("begin")) + if (message.begin != null && Object.hasOwnProperty.call(message, "begin")) writer.uint32(/* id 3, wireType 0 =*/24).int32(message.begin); - if (message.end != null && message.hasOwnProperty("end")) + if (message.end != null && Object.hasOwnProperty.call(message, "end")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.end); return writer; }; @@ -14228,9 +14228,9 @@ Duration.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.seconds != null && message.hasOwnProperty("seconds")) + if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds); - if (message.nanos != null && message.hasOwnProperty("nanos")) + if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos); return writer; }; @@ -14444,7 +14444,7 @@ Struct.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.fields != null && message.hasOwnProperty("fields")) + if (message.fields != null && Object.hasOwnProperty.call(message, "fields")) for (var keys = Object.keys(message.fields), i = 0; i < keys.length; ++i) { writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); $root.google.protobuf.Value.encode(message.fields[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); @@ -14717,17 +14717,17 @@ Value.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.nullValue != null && message.hasOwnProperty("nullValue")) + if (message.nullValue != null && Object.hasOwnProperty.call(message, "nullValue")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.nullValue); - if (message.numberValue != null && message.hasOwnProperty("numberValue")) + if (message.numberValue != null && Object.hasOwnProperty.call(message, "numberValue")) writer.uint32(/* id 2, wireType 1 =*/17).double(message.numberValue); - if (message.stringValue != null && message.hasOwnProperty("stringValue")) + if (message.stringValue != null && Object.hasOwnProperty.call(message, "stringValue")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.stringValue); - if (message.boolValue != null && message.hasOwnProperty("boolValue")) + if (message.boolValue != null && Object.hasOwnProperty.call(message, "boolValue")) writer.uint32(/* id 4, wireType 0 =*/32).bool(message.boolValue); - if (message.structValue != null && message.hasOwnProperty("structValue")) + if (message.structValue != null && Object.hasOwnProperty.call(message, "structValue")) $root.google.protobuf.Struct.encode(message.structValue, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.listValue != null && message.hasOwnProperty("listValue")) + if (message.listValue != null && Object.hasOwnProperty.call(message, "listValue")) $root.google.protobuf.ListValue.encode(message.listValue, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); return writer; }; @@ -14970,7 +14970,7 @@ /** * NullValue enum. * @name google.protobuf.NullValue - * @enum {string} + * @enum {number} * @property {number} NULL_VALUE=0 NULL_VALUE value */ protobuf.NullValue = (function() { @@ -15252,9 +15252,9 @@ Timestamp.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.seconds != null && message.hasOwnProperty("seconds")) + if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds")) writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds); - if (message.nanos != null && message.hasOwnProperty("nanos")) + if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos); return writer; }; @@ -15497,11 +15497,11 @@ Money.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) + if (message.currencyCode != null && Object.hasOwnProperty.call(message, "currencyCode")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.currencyCode); - if (message.units != null && message.hasOwnProperty("units")) + if (message.units != null && Object.hasOwnProperty.call(message, "units")) writer.uint32(/* id 2, wireType 0 =*/16).int64(message.units); - if (message.nanos != null && message.hasOwnProperty("nanos")) + if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos")) writer.uint32(/* id 3, wireType 0 =*/24).int32(message.nanos); return writer; }; diff --git a/packages/google-cloud-recommender/src/index.ts b/packages/google-cloud-recommender/src/index.ts index 83fe9c83967..bab729506af 100644 --- a/packages/google-cloud-recommender/src/index.ts +++ b/packages/google-cloud-recommender/src/index.ts @@ -21,4 +21,4 @@ const RecommenderClient = v1.RecommenderClient; export {v1, RecommenderClient}; export default {v1, RecommenderClient}; import * as protos from '../protos/protos'; -export {protos} +export {protos}; diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 11d653f5f1c..513c2b28824 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -17,11 +17,18 @@ // ** All changes to this file may be overwritten. ** import * as gax from 'google-gax'; -import {Callback, CallOptions, Descriptors, ClientOptions, PaginationCallback, GaxCall} from 'google-gax'; +import { + Callback, + CallOptions, + Descriptors, + ClientOptions, + PaginationCallback, + GaxCall, +} from 'google-gax'; import * as path from 'path'; -import { Transform } from 'stream'; -import { RequestType } from 'google-gax/build/src/apitypes'; +import {Transform} from 'stream'; +import {RequestType} from 'google-gax/build/src/apitypes'; import * as protos from '../../protos/protos'; import * as gapicConfig from './recommender_client_config.json'; @@ -43,7 +50,12 @@ export class RecommenderClient { private _protos: {}; private _defaults: {[method: string]: gax.CallSettings}; auth: gax.GoogleAuth; - descriptors: Descriptors = {page: {}, stream: {}, longrunning: {}, batching: {}}; + descriptors: Descriptors = { + page: {}, + stream: {}, + longrunning: {}, + batching: {}, + }; innerApiCalls: {[name: string]: Function}; pathTemplates: {[name: string]: gax.PathTemplate}; recommenderStub?: Promise<{[name: string]: Function}>; @@ -77,10 +89,12 @@ export class RecommenderClient { constructor(opts?: ClientOptions) { // Ensure that options include the service address and port. const staticMembers = this.constructor as typeof RecommenderClient; - const servicePath = opts && opts.servicePath ? - opts.servicePath : - ((opts && opts.apiEndpoint) ? opts.apiEndpoint : - staticMembers.servicePath); + const servicePath = + opts && opts.servicePath + ? opts.servicePath + : opts && opts.apiEndpoint + ? opts.apiEndpoint + : staticMembers.servicePath; const port = opts && opts.port ? opts.port : staticMembers.port; if (!opts) { @@ -90,8 +104,8 @@ export class RecommenderClient { opts.port = opts.port || port; opts.clientConfig = opts.clientConfig || {}; - const isBrowser = (typeof window !== 'undefined'); - if (isBrowser){ + const isBrowser = typeof window !== 'undefined'; + if (isBrowser) { opts.fallback = true; } // If we are in browser, we are already using fallback because of the @@ -108,13 +122,10 @@ export class RecommenderClient { 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; // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; + const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process !== 'undefined' && 'versions' in process) { clientHeader.push(`gl-node/${process.versions.node}`); } else { @@ -130,12 +141,18 @@ export class RecommenderClient { // For Node.js, pass the path to JSON proto file. // For browsers, pass the JSON content. - const nodejsProtoPath = path.join(__dirname, '..', '..', 'protos', 'protos.json'); + const nodejsProtoPath = path.join( + __dirname, + '..', + '..', + 'protos', + 'protos.json' + ); this._protos = this._gaxGrpc.loadProto( - opts.fallback ? - // eslint-disable-next-line @typescript-eslint/no-var-requires - require("../../protos/protos.json") : - nodejsProtoPath + opts.fallback + ? // eslint-disable-next-line @typescript-eslint/no-var-requires + require('../../protos/protos.json') + : nodejsProtoPath ); // This API contains "path templates"; forward-slash-separated @@ -154,14 +171,20 @@ export class RecommenderClient { // (e.g. 50 results at a time, with tokens to get subsequent // pages). Denote the keys used for pagination and results. this.descriptors.page = { - listRecommendations: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'recommendations') + listRecommendations: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'recommendations' + ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.recommender.v1.Recommender', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.recommender.v1.Recommender', + 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 @@ -189,16 +212,24 @@ export class RecommenderClient { // Put together the "service stub" for // google.cloud.recommender.v1.Recommender. this.recommenderStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.recommender.v1.Recommender') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.recommender.v1.Recommender' + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.recommender.v1.Recommender, - this._opts) as Promise<{[method: string]: Function}>; + this._opts + ) as Promise<{[method: string]: Function}>; // Iterate over each of the methods that the service provides // and create an API call method for each. - const recommenderStubMethods = - ['listRecommendations', 'getRecommendation', 'markRecommendationClaimed', 'markRecommendationSucceeded', 'markRecommendationFailed']; + const recommenderStubMethods = [ + 'listRecommendations', + 'getRecommendation', + 'markRecommendationClaimed', + 'markRecommendationSucceeded', + 'markRecommendationFailed', + ]; for (const methodName of recommenderStubMethods) { const callPromise = this.recommenderStub.then( stub => (...args: Array<{}>) => { @@ -208,16 +239,17 @@ export class RecommenderClient { const func = stub[methodName]; return func.apply(stub, args); }, - (err: Error|null|undefined) => () => { + (err: Error | null | undefined) => () => { throw err; - }); + } + ); const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], this.descriptors.page[methodName] || - this.descriptors.stream[methodName] || - this.descriptors.longrunning[methodName] + this.descriptors.stream[methodName] || + this.descriptors.longrunning[methodName] ); this.innerApiCalls[methodName] = apiCall; @@ -253,9 +285,7 @@ export class RecommenderClient { * in this service. */ static get scopes() { - return [ - 'https://www.googleapis.com/auth/cloud-platform' - ]; + return ['https://www.googleapis.com/auth/cloud-platform']; } getProjectId(): Promise; @@ -265,8 +295,9 @@ export class RecommenderClient { * @param {function(Error, string)} callback - the callback to * be called with the current project Id. */ - getProjectId(callback?: Callback): - Promise|void { + getProjectId( + callback?: Callback + ): Promise | void { if (callback) { this.auth.getProjectId(callback); return; @@ -278,60 +309,81 @@ export class RecommenderClient { // -- Service calls -- // ------------------- getRecommendation( - request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, - options?: gax.CallOptions): - Promise<[ - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IGetRecommendationRequest|undefined, {}|undefined - ]>; + request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, + options?: gax.CallOptions + ): Promise< + [ + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IGetRecommendationRequest | undefined, + {} | undefined + ] + >; getRecommendation( - request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, - options: gax.CallOptions, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IGetRecommendationRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, + options: gax.CallOptions, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IGetRecommendationRequest + | null + | undefined, + {} | null | undefined + > + ): void; getRecommendation( - request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IGetRecommendationRequest|null|undefined, - {}|null|undefined>): void; -/** - * Gets the requested recommendation. Requires the recommender.*.get - * IAM permission for the specified recommender. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the recommendation. - * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The promise has a method named "cancel" which cancels the ongoing API call. - */ + request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IGetRecommendationRequest + | null + | undefined, + {} | null | undefined + > + ): void; + /** + * Gets the requested recommendation. Requires the recommender.*.get + * IAM permission for the specified recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the recommendation. + * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ getRecommendation( - request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, - optionsOrCallback?: gax.CallOptions|Callback< - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IGetRecommendationRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, + optionsOrCallback?: + | gax.CallOptions + | Callback< protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IGetRecommendationRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IGetRecommendationRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.recommender.v1.IGetRecommendationRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IGetRecommendationRequest + | null + | undefined, + {} | null | undefined + > + ): Promise< + [ + protos.google.cloud.recommender.v1.IRecommendation, + protos.google.cloud.recommender.v1.IGetRecommendationRequest | undefined, + {} | undefined + ] + > | void { request = request || {}; let options: gax.CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as gax.CallOptions; } options = options || {}; @@ -340,81 +392,108 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - 'name': request.name || '', + name: request.name || '', }); this.initialize(); return this.innerApiCalls.getRecommendation(request, options, callback); } markRecommendationClaimed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, - options?: gax.CallOptions): - Promise<[ - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest|undefined, {}|undefined - ]>; + request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, + options?: gax.CallOptions + ): Promise< + [ + protos.google.cloud.recommender.v1.IRecommendation, + ( + | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + | undefined + ), + {} | undefined + ] + >; markRecommendationClaimed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, - options: gax.CallOptions, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, + options: gax.CallOptions, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + | null + | undefined, + {} | null | undefined + > + ): void; markRecommendationClaimed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest|null|undefined, - {}|null|undefined>): void; -/** - * Mark the Recommendation State as Claimed. Users can use this method to - * indicate to the Recommender API that they are starting to apply the - * recommendation themselves. This stops the recommendation content from being - * updated. - * - * MarkRecommendationClaimed can be applied to recommendations in CLAIMED, - * SUCCEEDED, FAILED, or ACTIVE state. - * - * Requires the recommender.*.update IAM permission for the specified - * recommender. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the recommendation. - * @param {number[]} request.stateMetadata - * State properties to include with this state. Overwrites any existing - * `state_metadata`. - * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. - * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. - * @param {string} request.etag - * Required. Fingerprint of the Recommendation. Provides optimistic locking. - * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The promise has a method named "cancel" which cancels the ongoing API call. - */ + request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + | null + | undefined, + {} | null | undefined + > + ): void; + /** + * Mark the Recommendation State as Claimed. Users can use this method to + * indicate to the Recommender API that they are starting to apply the + * recommendation themselves. This stops the recommendation content from being + * updated. + * + * MarkRecommendationClaimed can be applied to recommendations in CLAIMED, + * SUCCEEDED, FAILED, or ACTIVE state. + * + * Requires the recommender.*.update IAM permission for the specified + * recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the recommendation. + * @param {number[]} request.stateMetadata + * State properties to include with this state. Overwrites any existing + * `state_metadata`. + * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. + * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. + * @param {string} request.etag + * Required. Fingerprint of the Recommendation. Provides optimistic locking. + * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ markRecommendationClaimed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, - optionsOrCallback?: gax.CallOptions|Callback< - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, + optionsOrCallback?: + | gax.CallOptions + | Callback< protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + | null + | undefined, + {} | null | undefined + > + ): Promise< + [ + protos.google.cloud.recommender.v1.IRecommendation, + ( + | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest + | undefined + ), + {} | undefined + ] + > | void { request = request || {}; let options: gax.CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as gax.CallOptions; } options = options || {}; @@ -423,81 +502,112 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - 'name': request.name || '', + name: request.name || '', }); this.initialize(); - return this.innerApiCalls.markRecommendationClaimed(request, options, callback); + return this.innerApiCalls.markRecommendationClaimed( + request, + options, + callback + ); } markRecommendationSucceeded( - request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, - options?: gax.CallOptions): - Promise<[ - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest|undefined, {}|undefined - ]>; + request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, + options?: gax.CallOptions + ): Promise< + [ + protos.google.cloud.recommender.v1.IRecommendation, + ( + | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + | undefined + ), + {} | undefined + ] + >; markRecommendationSucceeded( - request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, - options: gax.CallOptions, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, + options: gax.CallOptions, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + | null + | undefined, + {} | null | undefined + > + ): void; markRecommendationSucceeded( - request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest|null|undefined, - {}|null|undefined>): void; -/** - * Mark the Recommendation State as Succeeded. Users can use this method to - * indicate to the Recommender API that they have applied the recommendation - * themselves, and the operation was successful. This stops the recommendation - * content from being updated. - * - * MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, - * CLAIMED, SUCCEEDED, or FAILED state. - * - * Requires the recommender.*.update IAM permission for the specified - * recommender. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the recommendation. - * @param {number[]} request.stateMetadata - * State properties to include with this state. Overwrites any existing - * `state_metadata`. - * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. - * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. - * @param {string} request.etag - * Required. Fingerprint of the Recommendation. Provides optimistic locking. - * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The promise has a method named "cancel" which cancels the ongoing API call. - */ + request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + | null + | undefined, + {} | null | undefined + > + ): void; + /** + * Mark the Recommendation State as Succeeded. Users can use this method to + * indicate to the Recommender API that they have applied the recommendation + * themselves, and the operation was successful. This stops the recommendation + * content from being updated. + * + * MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, + * CLAIMED, SUCCEEDED, or FAILED state. + * + * Requires the recommender.*.update IAM permission for the specified + * recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the recommendation. + * @param {number[]} request.stateMetadata + * State properties to include with this state. Overwrites any existing + * `state_metadata`. + * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. + * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. + * @param {string} request.etag + * Required. Fingerprint of the Recommendation. Provides optimistic locking. + * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ markRecommendationSucceeded( - request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, - optionsOrCallback?: gax.CallOptions|Callback< + request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, + optionsOrCallback?: + | gax.CallOptions + | Callback< protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + | null + | undefined, + {} | null | undefined + > + ): Promise< + [ + protos.google.cloud.recommender.v1.IRecommendation, + ( + | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest + | undefined + ), + {} | undefined + ] + > | void { request = request || {}; let options: gax.CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as gax.CallOptions; } options = options || {}; @@ -506,81 +616,112 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - 'name': request.name || '', + name: request.name || '', }); this.initialize(); - return this.innerApiCalls.markRecommendationSucceeded(request, options, callback); + return this.innerApiCalls.markRecommendationSucceeded( + request, + options, + callback + ); } markRecommendationFailed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, - options?: gax.CallOptions): - Promise<[ - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest|undefined, {}|undefined - ]>; + request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, + options?: gax.CallOptions + ): Promise< + [ + protos.google.cloud.recommender.v1.IRecommendation, + ( + | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + | undefined + ), + {} | undefined + ] + >; markRecommendationFailed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, - options: gax.CallOptions, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, + options: gax.CallOptions, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + | null + | undefined, + {} | null | undefined + > + ): void; markRecommendationFailed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, - callback: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest|null|undefined, - {}|null|undefined>): void; -/** - * Mark the Recommendation State as Failed. Users can use this method to - * indicate to the Recommender API that they have applied the recommendation - * themselves, and the operation failed. This stops the recommendation content - * from being updated. - * - * MarkRecommendationFailed can be applied to recommendations in ACTIVE, - * CLAIMED, SUCCEEDED, or FAILED state. - * - * Requires the recommender.*.update IAM permission for the specified - * recommender. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the recommendation. - * @param {number[]} request.stateMetadata - * State properties to include with this state. Overwrites any existing - * `state_metadata`. - * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. - * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. - * @param {string} request.etag - * Required. Fingerprint of the Recommendation. Provides optimistic locking. - * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The promise has a method named "cancel" which cancels the ongoing API call. - */ + request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + | null + | undefined, + {} | null | undefined + > + ): void; + /** + * Mark the Recommendation State as Failed. Users can use this method to + * indicate to the Recommender API that they have applied the recommendation + * themselves, and the operation failed. This stops the recommendation content + * from being updated. + * + * MarkRecommendationFailed can be applied to recommendations in ACTIVE, + * CLAIMED, SUCCEEDED, or FAILED state. + * + * Requires the recommender.*.update IAM permission for the specified + * recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the recommendation. + * @param {number[]} request.stateMetadata + * State properties to include with this state. Overwrites any existing + * `state_metadata`. + * Keys must match the regex /^{@link a-z0-9_.-|a-z0-9}{0,62}$/. + * Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/. + * @param {string} request.etag + * Required. Fingerprint of the Recommendation. Provides optimistic locking. + * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ markRecommendationFailed( - request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, - optionsOrCallback?: gax.CallOptions|Callback< + request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, + optionsOrCallback?: + | gax.CallOptions + | Callback< protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.recommender.v1.IRecommendation, - protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.recommender.v1.IRecommendation, + | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + | null + | undefined, + {} | null | undefined + > + ): Promise< + [ + protos.google.cloud.recommender.v1.IRecommendation, + ( + | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest + | undefined + ), + {} | undefined + ] + > | void { request = request || {}; let options: gax.CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as gax.CallOptions; } options = options || {}; @@ -589,101 +730,124 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - 'name': request.name || '', + name: request.name || '', }); this.initialize(); - return this.innerApiCalls.markRecommendationFailed(request, options, callback); + return this.innerApiCalls.markRecommendationFailed( + request, + options, + callback + ); } listRecommendations( - request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - options?: gax.CallOptions): - Promise<[ - protos.google.cloud.recommender.v1.IRecommendation[], - protos.google.cloud.recommender.v1.IListRecommendationsRequest|null, - protos.google.cloud.recommender.v1.IListRecommendationsResponse - ]>; + request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + options?: gax.CallOptions + ): Promise< + [ + protos.google.cloud.recommender.v1.IRecommendation[], + protos.google.cloud.recommender.v1.IListRecommendationsRequest | null, + protos.google.cloud.recommender.v1.IListRecommendationsResponse + ] + >; listRecommendations( - request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - options: gax.CallOptions, - callback: PaginationCallback< - protos.google.cloud.recommender.v1.IListRecommendationsRequest, - protos.google.cloud.recommender.v1.IListRecommendationsResponse|null|undefined, - protos.google.cloud.recommender.v1.IRecommendation>): void; + request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + options: gax.CallOptions, + callback: PaginationCallback< + protos.google.cloud.recommender.v1.IListRecommendationsRequest, + | protos.google.cloud.recommender.v1.IListRecommendationsResponse + | null + | undefined, + protos.google.cloud.recommender.v1.IRecommendation + > + ): void; listRecommendations( - request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - callback: PaginationCallback< - protos.google.cloud.recommender.v1.IListRecommendationsRequest, - protos.google.cloud.recommender.v1.IListRecommendationsResponse|null|undefined, - protos.google.cloud.recommender.v1.IRecommendation>): void; -/** - * Lists recommendations for a Cloud project. Requires the recommender.*.list - * IAM permission for the specified recommender. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The container resource on which to execute the request. - * Acceptable formats: - * - * 1. - * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", - * - * LOCATION here refers to GCP Locations: - * https://cloud.google.com/about/locations/ - * @param {number} [request.pageSize] - * Optional. The maximum number of results to return from this request. Non-positive - * values are ignored. If not specified, the server will determine the number - * of results to return. - * @param {string} [request.pageToken] - * Optional. If present, retrieves the next batch of results from the preceding call to - * this method. `page_token` must be the value of `next_page_token` from the - * previous response. The values of other method parameters must be identical - * to those in the previous call. - * @param {string} request.filter - * Filter expression to restrict the recommendations returned. Supported - * filter fields: state_info.state - * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" - * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The client library support 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. - * - * When autoPaginate: false is specified through options, the array has three elements. - * The first element is Array of [Recommendation]{@link google.cloud.recommender.v1.Recommendation} that corresponds to - * the one page received from the API server. - * If the second element is not null it contains the request object of type [ListRecommendationsRequest]{@link google.cloud.recommender.v1.ListRecommendationsRequest} - * that can be used to obtain the next page of the results. - * If it is null, the next page does not exist. - * The third element contains the raw response received from the API server. Its type is - * [ListRecommendationsResponse]{@link google.cloud.recommender.v1.ListRecommendationsResponse}. - * - * The promise has a method named "cancel" which cancels the ongoing API call. - */ + request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + callback: PaginationCallback< + protos.google.cloud.recommender.v1.IListRecommendationsRequest, + | protos.google.cloud.recommender.v1.IListRecommendationsResponse + | null + | undefined, + protos.google.cloud.recommender.v1.IRecommendation + > + ): void; + /** + * Lists recommendations for a Cloud project. Requires the recommender.*.list + * IAM permission for the specified recommender. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The container resource on which to execute the request. + * Acceptable formats: + * + * 1. + * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", + * + * LOCATION here refers to GCP Locations: + * https://cloud.google.com/about/locations/ + * @param {number} [request.pageSize] + * Optional. The maximum number of results to return from this request. Non-positive + * values are ignored. If not specified, the server will determine the number + * of results to return. + * @param {string} [request.pageToken] + * Optional. If present, retrieves the next batch of results from the preceding call to + * this method. `page_token` must be the value of `next_page_token` from the + * previous response. The values of other method parameters must be identical + * to those in the previous call. + * @param {string} request.filter + * Filter expression to restrict the recommendations returned. Supported + * filter fields: state_info.state + * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" + * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. + * The client library support 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. + * + * When autoPaginate: false is specified through options, the array has three elements. + * The first element is Array of [Recommendation]{@link google.cloud.recommender.v1.Recommendation} that corresponds to + * the one page received from the API server. + * If the second element is not null it contains the request object of type [ListRecommendationsRequest]{@link google.cloud.recommender.v1.ListRecommendationsRequest} + * that can be used to obtain the next page of the results. + * If it is null, the next page does not exist. + * The third element contains the raw response received from the API server. Its type is + * [ListRecommendationsResponse]{@link google.cloud.recommender.v1.ListRecommendationsResponse}. + * + * The promise has a method named "cancel" which cancels the ongoing API call. + */ listRecommendations( - request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - optionsOrCallback?: gax.CallOptions|PaginationCallback< - protos.google.cloud.recommender.v1.IListRecommendationsRequest, - protos.google.cloud.recommender.v1.IListRecommendationsResponse|null|undefined, - protos.google.cloud.recommender.v1.IRecommendation>, - callback?: PaginationCallback< + request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + optionsOrCallback?: + | gax.CallOptions + | PaginationCallback< protos.google.cloud.recommender.v1.IListRecommendationsRequest, - protos.google.cloud.recommender.v1.IListRecommendationsResponse|null|undefined, - protos.google.cloud.recommender.v1.IRecommendation>): - Promise<[ - protos.google.cloud.recommender.v1.IRecommendation[], - protos.google.cloud.recommender.v1.IListRecommendationsRequest|null, - protos.google.cloud.recommender.v1.IListRecommendationsResponse - ]>|void { + | protos.google.cloud.recommender.v1.IListRecommendationsResponse + | null + | undefined, + protos.google.cloud.recommender.v1.IRecommendation + >, + callback?: PaginationCallback< + protos.google.cloud.recommender.v1.IListRecommendationsRequest, + | protos.google.cloud.recommender.v1.IListRecommendationsResponse + | null + | undefined, + protos.google.cloud.recommender.v1.IRecommendation + > + ): Promise< + [ + protos.google.cloud.recommender.v1.IRecommendation[], + protos.google.cloud.recommender.v1.IListRecommendationsRequest | null, + protos.google.cloud.recommender.v1.IListRecommendationsResponse + ] + > | void { request = request || {}; let options: gax.CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as gax.CallOptions; } options = options || {}; @@ -692,58 +856,58 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', + parent: request.parent || '', }); this.initialize(); return this.innerApiCalls.listRecommendations(request, options, callback); } -/** - * Equivalent to {@link listRecommendations}, but returns a NodeJS Stream object. - * - * This fetches the paged responses for {@link listRecommendations} continuously - * and invokes the callback registered for 'data' event for each element in the - * responses. - * - * The returned object has 'end' method when no more elements are required. - * - * autoPaginate option will be ignored. - * - * @see {@link https://nodejs.org/api/stream.html} - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The container resource on which to execute the request. - * Acceptable formats: - * - * 1. - * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", - * - * LOCATION here refers to GCP Locations: - * https://cloud.google.com/about/locations/ - * @param {number} [request.pageSize] - * Optional. The maximum number of results to return from this request. Non-positive - * values are ignored. If not specified, the server will determine the number - * of results to return. - * @param {string} [request.pageToken] - * Optional. If present, retrieves the next batch of results from the preceding call to - * this method. `page_token` must be the value of `next_page_token` from the - * previous response. The values of other method parameters must be identical - * to those in the previous call. - * @param {string} request.filter - * Filter expression to restrict the recommendations returned. Supported - * filter fields: state_info.state - * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" - * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation} on 'data' event. - */ + /** + * Equivalent to {@link listRecommendations}, but returns a NodeJS Stream object. + * + * This fetches the paged responses for {@link listRecommendations} continuously + * and invokes the callback registered for 'data' event for each element in the + * responses. + * + * The returned object has 'end' method when no more elements are required. + * + * autoPaginate option will be ignored. + * + * @see {@link https://nodejs.org/api/stream.html} + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The container resource on which to execute the request. + * Acceptable formats: + * + * 1. + * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", + * + * LOCATION here refers to GCP Locations: + * https://cloud.google.com/about/locations/ + * @param {number} [request.pageSize] + * Optional. The maximum number of results to return from this request. Non-positive + * values are ignored. If not specified, the server will determine the number + * of results to return. + * @param {string} [request.pageToken] + * Optional. If present, retrieves the next batch of results from the preceding call to + * this method. `page_token` must be the value of `next_page_token` from the + * previous response. The values of other method parameters must be identical + * to those in the previous call. + * @param {string} request.filter + * Filter expression to restrict the recommendations returned. Supported + * filter fields: state_info.state + * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" + * @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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation} on 'data' event. + */ listRecommendationsStream( - request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - options?: gax.CallOptions): - Transform{ + request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + options?: gax.CallOptions + ): Transform { request = request || {}; options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -751,7 +915,7 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', + parent: request.parent || '', }); const callSettings = new gax.CallSettings(options); this.initialize(); @@ -762,44 +926,44 @@ export class RecommenderClient { ); } -/** - * Equivalent to {@link listRecommendations}, but returns an iterable object. - * - * for-await-of syntax is used with the iterable to recursively get response element on-demand. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The container resource on which to execute the request. - * Acceptable formats: - * - * 1. - * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", - * - * LOCATION here refers to GCP Locations: - * https://cloud.google.com/about/locations/ - * @param {number} [request.pageSize] - * Optional. The maximum number of results to return from this request. Non-positive - * values are ignored. If not specified, the server will determine the number - * of results to return. - * @param {string} [request.pageToken] - * Optional. If present, retrieves the next batch of results from the preceding call to - * this method. `page_token` must be the value of `next_page_token` from the - * previous response. The values of other method parameters must be identical - * to those in the previous call. - * @param {string} request.filter - * Filter expression to restrict the recommendations returned. Supported - * filter fields: state_info.state - * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" - * @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 conforms to @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols. - */ + /** + * Equivalent to {@link listRecommendations}, but returns an iterable object. + * + * for-await-of syntax is used with the iterable to recursively get response element on-demand. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The container resource on which to execute the request. + * Acceptable formats: + * + * 1. + * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]", + * + * LOCATION here refers to GCP Locations: + * https://cloud.google.com/about/locations/ + * @param {number} [request.pageSize] + * Optional. The maximum number of results to return from this request. Non-positive + * values are ignored. If not specified, the server will determine the number + * of results to return. + * @param {string} [request.pageToken] + * Optional. If present, retrieves the next batch of results from the preceding call to + * this method. `page_token` must be the value of `next_page_token` from the + * previous response. The values of other method parameters must be identical + * to those in the previous call. + * @param {string} request.filter + * Filter expression to restrict the recommendations returned. Supported + * filter fields: state_info.state + * Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED" + * @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 conforms to @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols. + */ listRecommendationsAsync( - request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - options?: gax.CallOptions): - AsyncIterable{ + request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, + options?: gax.CallOptions + ): AsyncIterable { request = request || {}; options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -807,14 +971,14 @@ export class RecommenderClient { options.otherArgs.headers[ 'x-goog-request-params' ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', + parent: request.parent || '', }); options = options || {}; const callSettings = new gax.CallSettings(options); this.initialize(); return this.descriptors.page.listRecommendations.asyncIterate( this.innerApiCalls['listRecommendations'] as GaxCall, - request as unknown as RequestType, + (request as unknown) as RequestType, callSettings ) as AsyncIterable; } @@ -831,7 +995,12 @@ export class RecommenderClient { * @param {string} recommendation * @returns {string} Resource name string. */ - recommendationPath(project:string,location:string,recommender:string,recommendation:string) { + recommendationPath( + project: string, + location: string, + recommender: string, + recommendation: string + ) { return this.pathTemplates.recommendationPathTemplate.render({ project: project, location: location, @@ -848,7 +1017,9 @@ export class RecommenderClient { * @returns {string} A string representing the project. */ matchProjectFromRecommendationName(recommendationName: string) { - return this.pathTemplates.recommendationPathTemplate.match(recommendationName).project; + return this.pathTemplates.recommendationPathTemplate.match( + recommendationName + ).project; } /** @@ -859,7 +1030,9 @@ export class RecommenderClient { * @returns {string} A string representing the location. */ matchLocationFromRecommendationName(recommendationName: string) { - return this.pathTemplates.recommendationPathTemplate.match(recommendationName).location; + return this.pathTemplates.recommendationPathTemplate.match( + recommendationName + ).location; } /** @@ -870,7 +1043,9 @@ export class RecommenderClient { * @returns {string} A string representing the recommender. */ matchRecommenderFromRecommendationName(recommendationName: string) { - return this.pathTemplates.recommendationPathTemplate.match(recommendationName).recommender; + return this.pathTemplates.recommendationPathTemplate.match( + recommendationName + ).recommender; } /** @@ -881,7 +1056,9 @@ export class RecommenderClient { * @returns {string} A string representing the recommendation. */ matchRecommendationFromRecommendationName(recommendationName: string) { - return this.pathTemplates.recommendationPathTemplate.match(recommendationName).recommendation; + return this.pathTemplates.recommendationPathTemplate.match( + recommendationName + ).recommendation; } /** @@ -892,7 +1069,7 @@ export class RecommenderClient { * @param {string} recommender * @returns {string} Resource name string. */ - recommenderPath(project:string,location:string,recommender:string) { + recommenderPath(project: string, location: string, recommender: string) { return this.pathTemplates.recommenderPathTemplate.render({ project: project, location: location, @@ -908,7 +1085,8 @@ export class RecommenderClient { * @returns {string} A string representing the project. */ matchProjectFromRecommenderName(recommenderName: string) { - return this.pathTemplates.recommenderPathTemplate.match(recommenderName).project; + return this.pathTemplates.recommenderPathTemplate.match(recommenderName) + .project; } /** @@ -919,7 +1097,8 @@ export class RecommenderClient { * @returns {string} A string representing the location. */ matchLocationFromRecommenderName(recommenderName: string) { - return this.pathTemplates.recommenderPathTemplate.match(recommenderName).location; + return this.pathTemplates.recommenderPathTemplate.match(recommenderName) + .location; } /** @@ -930,7 +1109,8 @@ export class RecommenderClient { * @returns {string} A string representing the recommender. */ matchRecommenderFromRecommenderName(recommenderName: string) { - return this.pathTemplates.recommenderPathTemplate.match(recommenderName).recommender; + return this.pathTemplates.recommenderPathTemplate.match(recommenderName) + .recommender; } /** diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 27c5ea1c239..4d00b03cd71 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,22 +4,22 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "7639dc40c2529290583d00ec67a99f8b3391bf76" + "sha": "cf2b855e96862ca2dc7939a73de9fe08d004921a" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "cdf13efacdea0649e940452f9c5d320b93735974", - "internalRef": "306783437" + "sha": "42ee97c1b93a0e3759bbba3013da309f670a90ab", + "internalRef": "307114445" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "52638600f387deb98efb5f9c85fec39e82aa9052" + "sha": "19465d3ec5e5acdb01521d8f3bddd311bcbee28d" } } ], diff --git a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js index 59a3c7d7ef0..e8f4e4a22a6 100644 --- a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js +++ b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js @@ -16,7 +16,6 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** - /* eslint-disable node/no-missing-require, no-unused-vars */ const recommender = require('@google-cloud/recommender'); diff --git a/packages/google-cloud-recommender/system-test/install.ts b/packages/google-cloud-recommender/system-test/install.ts index 5e4ed636481..4c1ba3eb79a 100644 --- a/packages/google-cloud-recommender/system-test/install.ts +++ b/packages/google-cloud-recommender/system-test/install.ts @@ -16,34 +16,36 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -import { packNTest } from 'pack-n-play'; -import { readFileSync } from 'fs'; -import { describe, it } from 'mocha'; +import {packNTest} from 'pack-n-play'; +import {readFileSync} from 'fs'; +import {describe, it} from 'mocha'; describe('typescript consumer tests', () => { - - it('should have correct type signature for typescript users', async function() { + it('should have correct type signature for typescript users', async function () { this.timeout(300000); const options = { - packageDir: process.cwd(), // path to your module. + packageDir: process.cwd(), // path to your module. sample: { description: 'typescript based user can use the type definitions', - ts: readFileSync('./system-test/fixtures/sample/src/index.ts').toString() - } + ts: readFileSync( + './system-test/fixtures/sample/src/index.ts' + ).toString(), + }, }; - await packNTest(options); // will throw upon error. + await packNTest(options); // will throw upon error. }); - it('should have correct type signature for javascript users', async function() { + it('should have correct type signature for javascript users', async function () { this.timeout(300000); const options = { - packageDir: process.cwd(), // path to your module. + packageDir: process.cwd(), // path to your module. sample: { description: 'typescript based user can use the type definitions', - ts: readFileSync('./system-test/fixtures/sample/src/index.js').toString() - } + ts: readFileSync( + './system-test/fixtures/sample/src/index.js' + ).toString(), + }, }; - await packNTest(options); // will throw upon error. + await packNTest(options); // will throw upon error. }); - }); diff --git a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts index a1b01d52ecb..ef26fb78af5 100644 --- a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts +++ b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts @@ -20,7 +20,7 @@ import * as protos from '../protos/protos'; import * as assert from 'assert'; import * as sinon from 'sinon'; import {SinonStub} from 'sinon'; -import { describe, it } from 'mocha'; +import {describe, it} from 'mocha'; import * as recommenderModule from '../src'; import {PassThrough} from 'stream'; @@ -28,801 +28,1095 @@ import {PassThrough} from 'stream'; import {protobuf} from 'google-gax'; 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 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({}); }); - } - setImmediate(() => { mockStream.end(); }); - } else { - setImmediate(() => { mockStream.write({}); }); - setImmediate(() => { mockStream.end(); }); + } + 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({}); + }); } - return sinon.stub().returns(mockStream); + setImmediate(() => { + mockStream.end(); + }); + } else { + setImmediate(() => { + mockStream.write({}); + }); + setImmediate(() => { + mockStream.end(); + }); + } + 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.RecommenderClient', () => { - it('has servicePath', () => { - const servicePath = recommenderModule.v1.RecommenderClient.servicePath; - assert(servicePath); + it('has servicePath', () => { + const servicePath = recommenderModule.v1.RecommenderClient.servicePath; + assert(servicePath); + }); + + it('has apiEndpoint', () => { + const apiEndpoint = recommenderModule.v1.RecommenderClient.apiEndpoint; + assert(apiEndpoint); + }); + + it('has port', () => { + const port = recommenderModule.v1.RecommenderClient.port; + assert(port); + assert(typeof port === 'number'); + }); + + it('should create a client with no option', () => { + const client = new recommenderModule.v1.RecommenderClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = new recommenderModule.v1.RecommenderClient({ + fallback: true, }); + assert(client); + }); - it('has apiEndpoint', () => { - const apiEndpoint = recommenderModule.v1.RecommenderClient.apiEndpoint; - assert(apiEndpoint); + it('has initialize method and supports deferred initialization', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', }); + assert.strictEqual(client.recommenderStub, undefined); + await client.initialize(); + assert(client.recommenderStub); + }); - it('has port', () => { - const port = recommenderModule.v1.RecommenderClient.port; - assert(port); - assert(typeof port === 'number'); + it('has close method', () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', }); + client.close(); + }); - it('should create a client with no option', () => { - const client = new recommenderModule.v1.RecommenderClient(); - assert(client); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new recommenderModule.v1.RecommenderClient({ + 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('should create a client with gRPC fallback', () => { - const client = new recommenderModule.v1.RecommenderClient({ - fallback: true, - }); - assert(client); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new recommenderModule.v1.RecommenderClient({ + 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('has initialize method and supports deferred initialization', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - assert.strictEqual(client.recommenderStub, undefined); - await client.initialize(); - assert(client.recommenderStub); + describe('getRecommendation', () => { + it('invokes getRecommendation without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.GetRecommendationRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.getRecommendation = stubSimpleCall(expectedResponse); + const [response] = await client.getRecommendation(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.getRecommendation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); }); - it('has close method', () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - client.close(); + it('invokes getRecommendation without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.GetRecommendationRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.getRecommendation = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.getRecommendation( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IRecommendation | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.getRecommendation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new recommenderModule.v1.RecommenderClient({ - 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('invokes getRecommendation with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.GetRecommendationRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.getRecommendation = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(async () => { + await client.getRecommendation(request); + }, expectedError); + assert( + (client.innerApiCalls.getRecommendation as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new recommenderModule.v1.RecommenderClient({ - 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('markRecommendationClaimed', () => { + it('invokes markRecommendationClaimed without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.markRecommendationClaimed = stubSimpleCall( + expectedResponse + ); + const [response] = await client.markRecommendationClaimed(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markRecommendationClaimed as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); }); - describe('getRecommendation', () => { - it('invokes getRecommendation without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.GetRecommendationRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); - client.innerApiCalls.getRecommendation = stubSimpleCall(expectedResponse); - const [response] = await client.getRecommendation(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.getRecommendation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + it('invokes markRecommendationClaimed without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.markRecommendationClaimed = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.markRecommendationClaimed( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IRecommendation | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markRecommendationClaimed as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); - it('invokes getRecommendation without error using callback', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.GetRecommendationRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); - client.innerApiCalls.getRecommendation = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getRecommendation( - request, - (err?: Error|null, result?: protos.google.cloud.recommender.v1.IRecommendation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.getRecommendation as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); + it('invokes markRecommendationClaimed with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.markRecommendationClaimed = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(async () => { + await client.markRecommendationClaimed(request); + }, expectedError); + assert( + (client.innerApiCalls.markRecommendationClaimed as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + }); - it('invokes getRecommendation with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.GetRecommendationRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.getRecommendation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => { await client.getRecommendation(request); }, expectedError); - assert((client.innerApiCalls.getRecommendation as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + describe('markRecommendationSucceeded', () => { + it('invokes markRecommendationSucceeded without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.markRecommendationSucceeded = stubSimpleCall( + expectedResponse + ); + const [response] = await client.markRecommendationSucceeded(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markRecommendationSucceeded as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); }); - describe('markRecommendationClaimed', () => { - it('invokes markRecommendationClaimed without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); - client.innerApiCalls.markRecommendationClaimed = stubSimpleCall(expectedResponse); - const [response] = await client.markRecommendationClaimed(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.markRecommendationClaimed as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + it('invokes markRecommendationSucceeded without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.markRecommendationSucceeded = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.markRecommendationSucceeded( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IRecommendation | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markRecommendationSucceeded as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); - it('invokes markRecommendationClaimed without error using callback', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); - client.innerApiCalls.markRecommendationClaimed = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.markRecommendationClaimed( - request, - (err?: Error|null, result?: protos.google.cloud.recommender.v1.IRecommendation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.markRecommendationClaimed as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); + it('invokes markRecommendationSucceeded with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.markRecommendationSucceeded = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(async () => { + await client.markRecommendationSucceeded(request); + }, expectedError); + assert( + (client.innerApiCalls.markRecommendationSucceeded as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + }); - it('invokes markRecommendationClaimed with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationClaimedRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.markRecommendationClaimed = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => { await client.markRecommendationClaimed(request); }, expectedError); - assert((client.innerApiCalls.markRecommendationClaimed as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + describe('markRecommendationFailed', () => { + it('invokes markRecommendationFailed without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.markRecommendationFailed = stubSimpleCall( + expectedResponse + ); + const [response] = await client.markRecommendationFailed(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markRecommendationFailed as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); }); - describe('markRecommendationSucceeded', () => { - it('invokes markRecommendationSucceeded without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); - client.innerApiCalls.markRecommendationSucceeded = stubSimpleCall(expectedResponse); - const [response] = await client.markRecommendationSucceeded(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.markRecommendationSucceeded as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + it('invokes markRecommendationFailed without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ); + client.innerApiCalls.markRecommendationFailed = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.markRecommendationFailed( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IRecommendation | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markRecommendationFailed as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); - it('invokes markRecommendationSucceeded without error using callback', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); - client.innerApiCalls.markRecommendationSucceeded = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.markRecommendationSucceeded( - request, - (err?: Error|null, result?: protos.google.cloud.recommender.v1.IRecommendation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.markRecommendationSucceeded as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); + it('invokes markRecommendationFailed with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.markRecommendationFailed = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(async () => { + await client.markRecommendationFailed(request); + }, expectedError); + assert( + (client.innerApiCalls.markRecommendationFailed as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + }); - it('invokes markRecommendationSucceeded with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationSucceededRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.markRecommendationSucceeded = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => { await client.markRecommendationSucceeded(request); }, expectedError); - assert((client.innerApiCalls.markRecommendationSucceeded as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + describe('listRecommendations', () => { + it('invokes listRecommendations without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + ]; + client.innerApiCalls.listRecommendations = stubSimpleCall( + expectedResponse + ); + const [response] = await client.listRecommendations(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.listRecommendations as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); }); - describe('markRecommendationFailed', () => { - it('invokes markRecommendationFailed without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); - client.innerApiCalls.markRecommendationFailed = stubSimpleCall(expectedResponse); - const [response] = await client.markRecommendationFailed(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.markRecommendationFailed as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + it('invokes listRecommendations without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + ]; + client.innerApiCalls.listRecommendations = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.listRecommendations( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IRecommendation[] | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.listRecommendations as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); - it('invokes markRecommendationFailed without error using callback', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()); - client.innerApiCalls.markRecommendationFailed = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.markRecommendationFailed( - request, - (err?: Error|null, result?: protos.google.cloud.recommender.v1.IRecommendation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.markRecommendationFailed as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); + it('invokes listRecommendations with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.listRecommendations = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(async () => { + await client.listRecommendations(request); + }, expectedError); + assert( + (client.innerApiCalls.listRecommendations as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); - it('invokes markRecommendationFailed with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.MarkRecommendationFailedRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.markRecommendationFailed = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => { await client.markRecommendationFailed(request); }, expectedError); - assert((client.innerApiCalls.markRecommendationFailed as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); + it('invokes listRecommendationsStream without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + ]; + client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall( + expectedResponse + ); + const stream = client.listRecommendationsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; + stream.on( + 'data', + (response: protos.google.cloud.recommender.v1.Recommendation) => { + 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.listRecommendations.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listRecommendations, request) + ); + assert.strictEqual( + (client.descriptors.page.listRecommendations + .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ + 'x-goog-request-params' + ], + expectedHeaderRequestParams + ); }); - describe('listRecommendations', () => { - it('invokes listRecommendations without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), - generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), - generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), - ]; - client.innerApiCalls.listRecommendations = stubSimpleCall(expectedResponse); - const [response] = await client.listRecommendations(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.listRecommendations as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); + it('invokes listRecommendationsStream with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedError = new Error('expected'); + client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall( + undefined, + expectedError + ); + const stream = client.listRecommendationsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; + stream.on( + 'data', + (response: protos.google.cloud.recommender.v1.Recommendation) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); }); - - it('invokes listRecommendations without error using callback', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), - generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), - generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), - ]; - client.innerApiCalls.listRecommendations = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listRecommendations( - request, - (err?: Error|null, result?: protos.google.cloud.recommender.v1.IRecommendation[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.listRecommendations as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + stream.on('error', (err: Error) => { + reject(err); }); + }); + await assert.rejects(async () => { + await promise; + }, expectedError); + assert( + (client.descriptors.page.listRecommendations.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listRecommendations, request) + ); + assert.strictEqual( + (client.descriptors.page.listRecommendations + .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ + 'x-goog-request-params' + ], + expectedHeaderRequestParams + ); + }); - it('invokes listRecommendations with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.listRecommendations = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => { await client.listRecommendations(request); }, expectedError); - assert((client.innerApiCalls.listRecommendations as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); + it('uses async iteration with listRecommendations without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + ]; + client.descriptors.page.listRecommendations.asyncIterate = stubAsyncIterationCall( + expectedResponse + ); + const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; + const iterable = client.listRecommendationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + (client.descriptors.page.listRecommendations + .asyncIterate as SinonStub).getCall(0).args[1], + request + ); + assert.strictEqual( + (client.descriptors.page.listRecommendations + .asyncIterate as SinonStub).getCall(0).args[2].otherArgs.headers[ + 'x-goog-request-params' + ], + expectedHeaderRequestParams + ); + }); - it('invokes listRecommendationsStream without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), - generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), - generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), - ]; - client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listRecommendationsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; - stream.on('data', (response: protos.google.cloud.recommender.v1.Recommendation) => { - 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.listRecommendations.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listRecommendations, request)); - assert.strictEqual( - (client.descriptors.page.listRecommendations.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams - ); - }); + it('uses async iteration with listRecommendations with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedError = new Error('expected'); + client.descriptors.page.listRecommendations.asyncIterate = stubAsyncIterationCall( + undefined, + expectedError + ); + const iterable = client.listRecommendationsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + (client.descriptors.page.listRecommendations + .asyncIterate as SinonStub).getCall(0).args[1], + request + ); + assert.strictEqual( + (client.descriptors.page.listRecommendations + .asyncIterate as SinonStub).getCall(0).args[2].otherArgs.headers[ + 'x-goog-request-params' + ], + expectedHeaderRequestParams + ); + }); + }); - it('invokes listRecommendationsStream with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedError = new Error('expected'); - client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listRecommendationsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; - stream.on('data', (response: protos.google.cloud.recommender.v1.Recommendation) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(async () => { await promise; }, expectedError); - assert((client.descriptors.page.listRecommendations.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listRecommendations, request)); - assert.strictEqual( - (client.descriptors.page.listRecommendations.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams - ); - }); + describe('Path templates', () => { + describe('recommendation', () => { + const fakePath = '/rendered/path/recommendation'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + recommender: 'recommenderValue', + recommendation: 'recommendationValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.recommendationPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.recommendationPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - it('uses async iteration with listRecommendations without error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent=";const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), - generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), - generateSampleMessage(new protos.google.cloud.recommender.v1.Recommendation()), - ]; - client.descriptors.page.listRecommendations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; - const iterable = client.listRecommendationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listRecommendations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert.strictEqual( - (client.descriptors.page.listRecommendations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams - ); - }); + it('recommendationPath', () => { + const result = client.recommendationPath( + 'projectValue', + 'locationValue', + 'recommenderValue', + 'recommendationValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.recommendationPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); - it('uses async iteration with listRecommendations with error', async () => { - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.recommender.v1.ListRecommendationsRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent=";const expectedError = new Error('expected'); - client.descriptors.page.listRecommendations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listRecommendationsAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listRecommendations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert.strictEqual( - (client.descriptors.page.listRecommendations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams - ); - }); + it('matchProjectFromRecommendationName', () => { + const result = client.matchProjectFromRecommendationName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.recommendationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromRecommendationName', () => { + const result = client.matchLocationFromRecommendationName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.recommendationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommenderFromRecommendationName', () => { + const result = client.matchRecommenderFromRecommendationName(fakePath); + assert.strictEqual(result, 'recommenderValue'); + assert( + (client.pathTemplates.recommendationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommendationFromRecommendationName', () => { + const result = client.matchRecommendationFromRecommendationName( + fakePath + ); + assert.strictEqual(result, 'recommendationValue'); + assert( + (client.pathTemplates.recommendationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); }); - describe('Path templates', () => { - - describe('recommendation', () => { - const fakePath = "/rendered/path/recommendation"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - recommender: "recommenderValue", - recommendation: "recommendationValue", - }; - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - client.pathTemplates.recommendationPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.recommendationPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('recommendationPath', () => { - const result = client.recommendationPath("projectValue", "locationValue", "recommenderValue", "recommendationValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.recommendationPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromRecommendationName', () => { - const result = client.matchProjectFromRecommendationName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.recommendationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromRecommendationName', () => { - const result = client.matchLocationFromRecommendationName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.recommendationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchRecommenderFromRecommendationName', () => { - const result = client.matchRecommenderFromRecommendationName(fakePath); - assert.strictEqual(result, "recommenderValue"); - assert((client.pathTemplates.recommendationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchRecommendationFromRecommendationName', () => { - const result = client.matchRecommendationFromRecommendationName(fakePath); - assert.strictEqual(result, "recommendationValue"); - assert((client.pathTemplates.recommendationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('recommender', () => { + const fakePath = '/rendered/path/recommender'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + recommender: 'recommenderValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.recommenderPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.recommenderPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - describe('recommender', () => { - const fakePath = "/rendered/path/recommender"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - recommender: "recommenderValue", - }; - const client = new recommenderModule.v1.RecommenderClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - client.pathTemplates.recommenderPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.recommenderPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('recommenderPath', () => { - const result = client.recommenderPath("projectValue", "locationValue", "recommenderValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.recommenderPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromRecommenderName', () => { - const result = client.matchProjectFromRecommenderName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.recommenderPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromRecommenderName', () => { - const result = client.matchLocationFromRecommenderName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.recommenderPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchRecommenderFromRecommenderName', () => { - const result = client.matchRecommenderFromRecommenderName(fakePath); - assert.strictEqual(result, "recommenderValue"); - assert((client.pathTemplates.recommenderPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('recommenderPath', () => { + const result = client.recommenderPath( + 'projectValue', + 'locationValue', + 'recommenderValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.recommenderPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromRecommenderName', () => { + const result = client.matchProjectFromRecommenderName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.recommenderPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromRecommenderName', () => { + const result = client.matchLocationFromRecommenderName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.recommenderPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommenderFromRecommenderName', () => { + const result = client.matchRecommenderFromRecommenderName(fakePath); + assert.strictEqual(result, 'recommenderValue'); + assert( + (client.pathTemplates.recommenderPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); }); + }); }); diff --git a/packages/google-cloud-recommender/webpack.config.js b/packages/google-cloud-recommender/webpack.config.js index ae0c62f95e1..40a80f89007 100644 --- a/packages/google-cloud-recommender/webpack.config.js +++ b/packages/google-cloud-recommender/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', }, ], }, From c094ccd75afbc719a0ba021ed99b464192c040b3 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Thu, 23 Apr 2020 19:31:03 -0700 Subject: [PATCH 051/158] chore: update npm scripts and synth.py (#74) Update npm scripts: add clean, prelint, prefix; make sure that lint and fix are set properly. Use post-process feature of synthtool. --- packages/google-cloud-recommender/package.json | 5 +++-- packages/google-cloud-recommender/synth.py | 7 ++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 2fbadf4cc91..4932302296f 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -17,13 +17,14 @@ "docs": "jsdoc -c .jsdoc.js", "docs-test": "linkinator docs", "fix": "gts fix", - "lint": "gts fix", + "lint": "gts check", "predocs-test": "npm run docs", "prepare": "npm run compile-protos && npm run compile", "system-test": "c8 mocha build/system-test", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test": "c8 mocha build/test", - "prelint": "cd samples; npm link ../; npm install" + "prelint": "cd samples; npm link ../; npm install", + "precompile": "gts clean" }, "dependencies": { "google-gax": "^2.1.0" diff --git a/packages/google-cloud-recommender/synth.py b/packages/google-cloud-recommender/synth.py index 8ffabbb6db6..5f4a9e74c39 100644 --- a/packages/google-cloud-recommender/synth.py +++ b/packages/google-cloud-recommender/synth.py @@ -16,7 +16,7 @@ import synthtool as s import synthtool.gcp as gcp -import subprocess +import synthtool.languages.node as node import logging logging.basicConfig(level=logging.DEBUG) @@ -47,7 +47,4 @@ templates = common_templates.node_library(source_location='build/src') s.copy(templates, excludes=[]) -# Node.js specific cleanup -subprocess.run(['npm', 'install']) -subprocess.run(['npm', 'run', 'fix']) -subprocess.run(['npx', 'compileProtos', 'src']) +node.postprocess_gapic_library() From 80753ff7e10f4832a20bc9e1f05d789ffb2e67b2 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Tue, 5 May 2020 19:34:18 -0700 Subject: [PATCH 052/158] fix: regen protos and tests, formatting (#75) --- .../google-cloud-recommender/synth.metadata | 14 ++------ .../test/gapic_recommender_v1.ts | 33 +++++++++---------- 2 files changed, 18 insertions(+), 29 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 4d00b03cd71..d9032b8c5e8 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -3,23 +3,15 @@ { "git": { "name": ".", - "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "cf2b855e96862ca2dc7939a73de9fe08d004921a" - } - }, - { - "git": { - "name": "googleapis", - "remote": "https://github.com/googleapis/googleapis.git", - "sha": "42ee97c1b93a0e3759bbba3013da309f670a90ab", - "internalRef": "307114445" + "remote": "git@github.com:googleapis/nodejs-recommender.git", + "sha": "3abe9b5b49fb734e4e8de7a587bd02474add7506" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "19465d3ec5e5acdb01521d8f3bddd311bcbee28d" + "sha": "ab883569eb0257bbf16a6d825fd018b3adde3912" } } ], diff --git a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts index ef26fb78af5..392b0ee5df4 100644 --- a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts +++ b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts @@ -297,9 +297,7 @@ describe('v1.RecommenderClient', () => { undefined, expectedError ); - await assert.rejects(async () => { - await client.getRecommendation(request); - }, expectedError); + await assert.rejects(client.getRecommendation(request), expectedError); assert( (client.innerApiCalls.getRecommendation as SinonStub) .getCall(0) @@ -413,9 +411,10 @@ describe('v1.RecommenderClient', () => { undefined, expectedError ); - await assert.rejects(async () => { - await client.markRecommendationClaimed(request); - }, expectedError); + await assert.rejects( + client.markRecommendationClaimed(request), + expectedError + ); assert( (client.innerApiCalls.markRecommendationClaimed as SinonStub) .getCall(0) @@ -529,9 +528,10 @@ describe('v1.RecommenderClient', () => { undefined, expectedError ); - await assert.rejects(async () => { - await client.markRecommendationSucceeded(request); - }, expectedError); + await assert.rejects( + client.markRecommendationSucceeded(request), + expectedError + ); assert( (client.innerApiCalls.markRecommendationSucceeded as SinonStub) .getCall(0) @@ -645,9 +645,10 @@ describe('v1.RecommenderClient', () => { undefined, expectedError ); - await assert.rejects(async () => { - await client.markRecommendationFailed(request); - }, expectedError); + await assert.rejects( + client.markRecommendationFailed(request), + expectedError + ); assert( (client.innerApiCalls.markRecommendationFailed as SinonStub) .getCall(0) @@ -777,9 +778,7 @@ describe('v1.RecommenderClient', () => { undefined, expectedError ); - await assert.rejects(async () => { - await client.listRecommendations(request); - }, expectedError); + await assert.rejects(client.listRecommendations(request), expectedError); assert( (client.innerApiCalls.listRecommendations as SinonStub) .getCall(0) @@ -876,9 +875,7 @@ describe('v1.RecommenderClient', () => { reject(err); }); }); - await assert.rejects(async () => { - await promise; - }, expectedError); + await assert.rejects(promise, expectedError); assert( (client.descriptors.page.listRecommendations.createStream as SinonStub) .getCall(0) From cb8dd55c44fdd05bfea04b989f5192f3cd59a232 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 8 May 2020 11:27:41 -0700 Subject: [PATCH 053/158] build: do not fail builds on codecov errors (#528) (#76) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/2f68300a-9812-4342-86c6-33ab267ece4f/targets Source-Link: https://github.com/googleapis/synthtool/commit/be74d3e532faa47eb59f1a0eaebde0860d1d8ab4 --- packages/google-cloud-recommender/synth.metadata | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index d9032b8c5e8..5962a558118 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -3,15 +3,23 @@ { "git": { "name": ".", - "remote": "git@github.com:googleapis/nodejs-recommender.git", - "sha": "3abe9b5b49fb734e4e8de7a587bd02474add7506" + "remote": "https://github.com/googleapis/nodejs-recommender.git", + "sha": "76f952f57c1c3467b959ca4700a07a320e1e2f31" + } + }, + { + "git": { + "name": "googleapis", + "remote": "https://github.com/googleapis/googleapis.git", + "sha": "83816bb3093686a28af2891db5b7506614a820b1", + "internalRef": "310509915" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "ab883569eb0257bbf16a6d825fd018b3adde3912" + "sha": "be74d3e532faa47eb59f1a0eaebde0860d1d8ab4" } } ], From 5411432f5d151191339600f336965d99997f23bf Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Thu, 14 May 2020 13:12:11 -0700 Subject: [PATCH 054/158] feat: promote to GA (#78) promote the library to GA, since we've been on the V1 API surface for over 28 days. Fixes #10 --- .../google-cloud-recommender/.repo-metadata.json | 2 +- packages/google-cloud-recommender/README.md | 11 ++++++----- packages/google-cloud-recommender/synth.metadata | 15 ++++----------- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/packages/google-cloud-recommender/.repo-metadata.json b/packages/google-cloud-recommender/.repo-metadata.json index 18bd2dcd933..72b19007162 100644 --- a/packages/google-cloud-recommender/.repo-metadata.json +++ b/packages/google-cloud-recommender/.repo-metadata.json @@ -4,7 +4,7 @@ "product_documentation": "https://cloud.google.com/recommender/docs", "client_documentation": "https://googleapis.dev/nodejs/recommender/latest/index.html", "issue_tracker": "", - "release_level": "beta", + "release_level": "ga", "language": "nodejs", "repo": "googleapis/nodejs-recommender", "distribution_name": "@google-cloud/recommender", diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index 3416617ed47..21ee70e5067 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -4,7 +4,7 @@ # [Recommender: Node.js Client](https://github.com/googleapis/nodejs-recommender) -[![release level](https://img.shields.io/badge/release%20level-beta-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) +[![release level](https://img.shields.io/badge/release%20level-general%20availability%20%28GA%29-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/recommender.svg)](https://www.npmjs.org/package/@google-cloud/recommender) [![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-recommender/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-recommender) @@ -117,11 +117,12 @@ _Legacy Node.js versions are supported as a best effort:_ This library follows [Semantic Versioning](http://semver.org/). +This library is considered to be **General Availability (GA)**. This means it +is stable; the code surface will not change in backwards-incompatible ways +unless absolutely necessary (e.g. because of critical security issues) or with +an extensive deprecation period. Issues and requests against **GA** libraries +are addressed with the highest priority. -This library is considered to be in **beta**. This means it is expected to be -mostly stable while we work toward a general availability release; however, -complete stability is not guaranteed. We will address issues and requests -against beta libraries with a high priority. diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 5962a558118..25d23741964 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -3,23 +3,16 @@ { "git": { "name": ".", - "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "76f952f57c1c3467b959ca4700a07a320e1e2f31" + "remote": "git@github.com:googleapis/nodejs-recommender.git", + "sha": "d157c995a095f64d3f8805cc3942da91c106b95a" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "83816bb3093686a28af2891db5b7506614a820b1", - "internalRef": "310509915" - } - }, - { - "git": { - "name": "synthtool", - "remote": "https://github.com/googleapis/synthtool.git", - "sha": "be74d3e532faa47eb59f1a0eaebde0860d1d8ab4" + "sha": "123873dc7e2be35252d172205f67a375e70e9747", + "internalRef": "311581003" } } ], From 6cb220453db1d44529f84b6b2a5cbb31c8573982 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2020 14:53:54 -0700 Subject: [PATCH 055/158] chore: release 3.0.0 (#54) * updated CHANGELOG.md [ci skip] * updated package.json [ci skip] * updated samples/package.json [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- .../google-cloud-recommender/CHANGELOG.md | 19 +++++++++++++++++++ .../google-cloud-recommender/package.json | 2 +- .../samples/package.json | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index b117754d3e4..e647e6675ff 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## [3.0.0](https://www.github.com/googleapis/nodejs-recommender/compare/v2.2.0...v3.0.0) (2020-05-14) + + +### ⚠ BREAKING CHANGES + +* The library now supports Node.js v10+. The last version to support Node.js v8 is tagged legacy-8 on NPM. + +### Features + +* drop node8 support, support for async iterators ([#53](https://www.github.com/googleapis/nodejs-recommender/issues/53)) ([71ad927](https://www.github.com/googleapis/nodejs-recommender/commit/71ad9276016222d46e4b30c43fbe1196e2731485)) +* promote to GA ([#78](https://www.github.com/googleapis/nodejs-recommender/issues/78)) ([fa7e7b8](https://www.github.com/googleapis/nodejs-recommender/commit/fa7e7b86018346768e83caea64ee02048efb50ee)), closes [#10](https://www.github.com/googleapis/nodejs-recommender/issues/10) + + +### Bug Fixes + +* export explicit version from protos.js ([#58](https://www.github.com/googleapis/nodejs-recommender/issues/58)) ([d1608ef](https://www.github.com/googleapis/nodejs-recommender/commit/d1608ef4d2642fd4f067f58eafb53c8998c7f1db)) +* regen protos and tests, formatting ([#75](https://www.github.com/googleapis/nodejs-recommender/issues/75)) ([76f952f](https://www.github.com/googleapis/nodejs-recommender/commit/76f952f57c1c3467b959ca4700a07a320e1e2f31)) +* remove eslint, update gax, fix generated protos, run the generator ([#63](https://www.github.com/googleapis/nodejs-recommender/issues/63)) ([0095142](https://www.github.com/googleapis/nodejs-recommender/commit/0095142c26068397aa2cf84f65e8fe2c2da0bd26)) + ## [2.2.0](https://www.github.com/googleapis/nodejs-recommender/compare/v2.1.0...v2.2.0) (2020-03-06) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 4932302296f..585bdbc9dc9 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "2.2.0", + "version": "3.0.0", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 69834a07056..f66e1e9f7fa 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^2.2.0" + "@google-cloud/recommender": "^3.0.0" }, "devDependencies": { "c8": "^7.0.0", From c3669341870bd5494cdb6b7327d706223940611f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 3 Jun 2020 17:39:07 -0700 Subject: [PATCH 056/158] build: update protos.js (#79) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/041f5df7-f5d3-4b2a-9ede-0752bf41c185/targets --- .../protos/protos.d.ts | 6 ++++ .../google-cloud-recommender/protos/protos.js | 28 +++++++++++++++++-- .../protos/protos.json | 6 +++- .../google-cloud-recommender/synth.metadata | 11 ++++++-- 4 files changed, 45 insertions(+), 6 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index e113116134a..e46da2af2d6 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -2927,6 +2927,9 @@ export namespace google { /** FieldDescriptorProto options */ options?: (google.protobuf.IFieldOptions|null); + + /** FieldDescriptorProto proto3Optional */ + proto3Optional?: (boolean|null); } /** Represents a FieldDescriptorProto. */ @@ -2968,6 +2971,9 @@ export namespace google { /** FieldDescriptorProto options. */ public options?: (google.protobuf.IFieldOptions|null); + /** FieldDescriptorProto proto3Optional. */ + public proto3Optional: boolean; + /** * Creates a new FieldDescriptorProto instance using the specified properties. * @param [properties] Properties to set diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index 2ef5334c93d..2c8f079910d 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -28,7 +28,7 @@ var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util; // Exported root namespace - var $root = $protobuf.roots._google_cloud_recommender_2_2_0_protos || ($protobuf.roots._google_cloud_recommender_2_2_0_protos = {}); + var $root = $protobuf.roots._google_cloud_recommender_3_0_0_protos || ($protobuf.roots._google_cloud_recommender_3_0_0_protos = {}); $root.google = (function() { @@ -7529,6 +7529,7 @@ * @property {number|null} [oneofIndex] FieldDescriptorProto oneofIndex * @property {string|null} [jsonName] FieldDescriptorProto jsonName * @property {google.protobuf.IFieldOptions|null} [options] FieldDescriptorProto options + * @property {boolean|null} [proto3Optional] FieldDescriptorProto proto3Optional */ /** @@ -7626,6 +7627,14 @@ */ FieldDescriptorProto.prototype.options = null; + /** + * FieldDescriptorProto proto3Optional. + * @member {boolean} proto3Optional + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.proto3Optional = false; + /** * Creates a new FieldDescriptorProto instance using the specified properties. * @function create @@ -7670,6 +7679,8 @@ writer.uint32(/* id 9, wireType 0 =*/72).int32(message.oneofIndex); if (message.jsonName != null && Object.hasOwnProperty.call(message, "jsonName")) writer.uint32(/* id 10, wireType 2 =*/82).string(message.jsonName); + if (message.proto3Optional != null && Object.hasOwnProperty.call(message, "proto3Optional")) + writer.uint32(/* id 17, wireType 0 =*/136).bool(message.proto3Optional); return writer; }; @@ -7734,6 +7745,9 @@ case 8: message.options = $root.google.protobuf.FieldOptions.decode(reader, reader.uint32()); break; + case 17: + message.proto3Optional = reader.bool(); + break; default: reader.skipType(tag & 7); break; @@ -7828,6 +7842,9 @@ if (error) return "options." + error; } + if (message.proto3Optional != null && message.hasOwnProperty("proto3Optional")) + if (typeof message.proto3Optional !== "boolean") + return "proto3Optional: boolean expected"; return null; }; @@ -7950,6 +7967,8 @@ throw TypeError(".google.protobuf.FieldDescriptorProto.options: object expected"); message.options = $root.google.protobuf.FieldOptions.fromObject(object.options); } + if (object.proto3Optional != null) + message.proto3Optional = Boolean(object.proto3Optional); return message; }; @@ -7977,6 +7996,7 @@ object.options = null; object.oneofIndex = 0; object.jsonName = ""; + object.proto3Optional = false; } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; @@ -7998,6 +8018,8 @@ object.oneofIndex = message.oneofIndex; if (message.jsonName != null && message.hasOwnProperty("jsonName")) object.jsonName = message.jsonName; + if (message.proto3Optional != null && message.hasOwnProperty("proto3Optional")) + object.proto3Optional = message.proto3Optional; return object; }; @@ -9791,7 +9813,7 @@ * @memberof google.protobuf.FileOptions * @instance */ - FileOptions.prototype.ccEnableArenas = false; + FileOptions.prototype.ccEnableArenas = true; /** * FileOptions objcClassPrefix. @@ -10277,7 +10299,7 @@ object.javaGenerateEqualsAndHash = false; object.deprecated = false; object.javaStringCheckUtf8 = false; - object.ccEnableArenas = false; + object.ccEnableArenas = true; object.objcClassPrefix = ""; object.csharpNamespace = ""; object.swiftPrefix = ""; diff --git a/packages/google-cloud-recommender/protos/protos.json b/packages/google-cloud-recommender/protos/protos.json index 14ab3627e46..96f6c92db1d 100644 --- a/packages/google-cloud-recommender/protos/protos.json +++ b/packages/google-cloud-recommender/protos/protos.json @@ -821,6 +821,10 @@ "options": { "type": "FieldOptions", "id": 8 + }, + "proto3Optional": { + "type": "bool", + "id": 17 } }, "nested": { @@ -1056,7 +1060,7 @@ "type": "bool", "id": 31, "options": { - "default": false + "default": true } }, "objcClassPrefix": { diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 25d23741964..962ad71e4cf 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -3,8 +3,8 @@ { "git": { "name": ".", - "remote": "git@github.com:googleapis/nodejs-recommender.git", - "sha": "d157c995a095f64d3f8805cc3942da91c106b95a" + "remote": "https://github.com/googleapis/nodejs-recommender.git", + "sha": "0d5fff4f4b2893a91e20b7b7561c4912547cfbfc" } }, { @@ -14,6 +14,13 @@ "sha": "123873dc7e2be35252d172205f67a375e70e9747", "internalRef": "311581003" } + }, + { + "git": { + "name": "synthtool", + "remote": "https://github.com/googleapis/synthtool.git", + "sha": "cb3c683e958a4b5c016bb3734436fc1cb887eb7b" + } } ], "destinations": [ From 983ae736f8513efdfab8a0655f763d8eab39fc96 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 11 Jun 2020 17:47:33 +0200 Subject: [PATCH 057/158] chore(deps): update dependency mocha to v8 (#83) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [mocha](https://mochajs.org/) ([source](https://togithub.com/mochajs/mocha)) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/mocha/7.2.0/8.0.1) | --- ### Release Notes
mochajs/mocha ### [`v8.0.1`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#​801--2020-06-10) [Compare Source](https://togithub.com/mochajs/mocha/compare/v8.0.0...v8.0.1) The obligatory patch after a major. #### :bug: Fixes - [#​4328](https://togithub.com/mochajs/mocha/issues/4328): Fix `--parallel` when combined with `--watch` ([**@​boneskull**](https://togithub.com/boneskull)) ### [`v8.0.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#​800--2020-06-10) [Compare Source](https://togithub.com/mochajs/mocha/compare/v7.2.0...v8.0.0) In this major release, Mocha adds the ability to _run tests in parallel_. Better late than never! Please note the **breaking changes** detailed below. Let's welcome [**@​giltayar**](https://togithub.com/giltayar) and [**@​nicojs**](https://togithub.com/nicojs) to the maintenance team! #### :boom: Breaking Changes - [#​4164](https://togithub.com/mochajs/mocha/issues/4164): **Mocha v8.0.0 now requires Node.js v10.0.0 or newer.** Mocha no longer supports the Node.js v8.x line ("Carbon"), which entered End-of-Life at the end of 2019 ([**@​UlisesGascon**](https://togithub.com/UlisesGascon)) - [#​4175](https://togithub.com/mochajs/mocha/issues/4175): Having been deprecated with a warning since v7.0.0, **`mocha.opts` is no longer supported** ([**@​juergba**](https://togithub.com/juergba)) :sparkles: **WORKAROUND:** Replace `mocha.opts` with a [configuration file](https://mochajs.org/#configuring-mocha-nodejs). - [#​4260](https://togithub.com/mochajs/mocha/issues/4260): Remove `enableTimeout()` (`this.enableTimeout()`) from the context object ([**@​craigtaub**](https://togithub.com/craigtaub)) :sparkles: **WORKAROUND:** Replace usage of `this.enableTimeout(false)` in your tests with `this.timeout(0)`. - [#​4315](https://togithub.com/mochajs/mocha/issues/4315): The `spec` option no longer supports a comma-delimited list of files ([**@​juergba**](https://togithub.com/juergba)) :sparkles: **WORKAROUND**: Use an array instead (e.g., `"spec": "foo.js,bar.js"` becomes `"spec": ["foo.js", "bar.js"]`). - [#​4309](https://togithub.com/mochajs/mocha/issues/4309): Drop support for Node.js v13.x line, which is now End-of-Life ([**@​juergba**](https://togithub.com/juergba)) - [#​4282](https://togithub.com/mochajs/mocha/issues/4282): `--forbid-only` will throw an error even if exclusive tests are avoided via `--grep` or other means ([**@​arvidOtt**](https://togithub.com/arvidOtt)) - [#​4223](https://togithub.com/mochajs/mocha/issues/4223): The context object's `skip()` (`this.skip()`) in a "before all" (`before()`) hook will no longer execute subsequent sibling hooks, in addition to hooks in child suites ([**@​juergba**](https://togithub.com/juergba)) - [#​4178](https://togithub.com/mochajs/mocha/issues/4178): Remove previously soft-deprecated APIs ([**@​wnghdcjfe**](https://togithub.com/wnghdcjfe)): - `Mocha.prototype.ignoreLeaks()` - `Mocha.prototype.useColors()` - `Mocha.prototype.useInlineDiffs()` - `Mocha.prototype.hideDiff()` #### :tada: Enhancements - [#​4245](https://togithub.com/mochajs/mocha/issues/4245): Add ability to run tests in parallel for Node.js (see [docs](https://mochajs.org/#parallel-tests)) ([**@​boneskull**](https://togithub.com/boneskull)) :exclamation: See also [#​4244](https://togithub.com/mochajs/mocha/issues/4244); [Root Hook Plugins (docs)](https://mochajs.org/#root-hook-plugins) -- _root hooks must be defined via Root Hook Plugins to work in parallel mode_ - [#​4304](https://togithub.com/mochajs/mocha/issues/4304): `--require` now works with ES modules ([**@​JacobLey**](https://togithub.com/JacobLey)) - [#​4299](https://togithub.com/mochajs/mocha/issues/4299): In some circumstances, Mocha can run ES modules under Node.js v10 -- _use at your own risk!_ ([**@​giltayar**](https://togithub.com/giltayar)) #### :book: Documentation - [#​4246](https://togithub.com/mochajs/mocha/issues/4246): Add documentation for parallel mode and Root Hook plugins ([**@​boneskull**](https://togithub.com/boneskull)) #### :bug: Fixes (All bug fixes in Mocha v8.0.0 are also breaking changes, and are listed above)
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 585bdbc9dc9..0eb1a9ed445 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -39,7 +39,7 @@ "jsdoc-fresh": "^1.0.1", "jsdoc-region-tag": "^1.0.2", "linkinator": "^2.0.0", - "mocha": "^7.0.0", + "mocha": "^8.0.0", "null-loader": "^4.0.0", "pack-n-play": "^1.0.0-2", "sinon": "^9.0.1", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index f66e1e9f7fa..2920742a69a 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -18,6 +18,6 @@ "devDependencies": { "c8": "^7.0.0", "chai": "^4.2.0", - "mocha": "^7.0.0" + "mocha": "^8.0.0" } } From 371c3c36feb09ec66ed355026245978bce86659a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 11 Jun 2020 17:42:50 -0700 Subject: [PATCH 058/158] feat(secrets): begin migration to secret manager from keystore (#82) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/8d5e906d-0de4-4e28-b374-7d5fd4a1ce62/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/1c92077459db3dc50741e878f98b08c6261181e0 --- packages/google-cloud-recommender/protos/protos.js | 2 +- .../google-cloud-recommender/src/v1/recommender_client.ts | 7 +++++++ packages/google-cloud-recommender/synth.metadata | 4 ++-- packages/google-cloud-recommender/tsconfig.json | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index 2c8f079910d..6839e8c5183 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -28,7 +28,7 @@ var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util; // Exported root namespace - var $root = $protobuf.roots._google_cloud_recommender_3_0_0_protos || ($protobuf.roots._google_cloud_recommender_3_0_0_protos = {}); + var $root = $protobuf.roots._google_cloud_recommender_protos || ($protobuf.roots._google_cloud_recommender_protos = {}); $root.google = (function() { diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 513c2b28824..7048a436b85 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -102,6 +102,13 @@ export class RecommenderClient { } opts.servicePath = opts.servicePath || servicePath; opts.port = opts.port || port; + + // users can override the config from client side, like retry codes name. + // The detailed structure of the clientConfig can be found here: https://github.com/googleapis/gax-nodejs/blob/master/src/gax.ts#L546 + // The way to override client config for Showcase API: + // + // const customConfig = {"interfaces": {"google.showcase.v1beta1.Echo": {"methods": {"Echo": {"retry_codes_name": "idempotent", "retry_params_name": "default"}}}}} + // const showcaseClient = new showcaseClient({ projectId, customConfig }); opts.clientConfig = opts.clientConfig || {}; const isBrowser = typeof window !== 'undefined'; diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 962ad71e4cf..5759dbfad29 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "0d5fff4f4b2893a91e20b7b7561c4912547cfbfc" + "sha": "1b9b16558851f632aba2e569b114b50e1ce4e0c8" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "cb3c683e958a4b5c016bb3734436fc1cb887eb7b" + "sha": "1c92077459db3dc50741e878f98b08c6261181e0" } } ], diff --git a/packages/google-cloud-recommender/tsconfig.json b/packages/google-cloud-recommender/tsconfig.json index 613d35597b5..c78f1c884ef 100644 --- a/packages/google-cloud-recommender/tsconfig.json +++ b/packages/google-cloud-recommender/tsconfig.json @@ -5,7 +5,7 @@ "outDir": "build", "resolveJsonModule": true, "lib": [ - "es2016", + "es2018", "dom" ] }, From f67af8c7677a2e145d75acf683365894324d8960 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 12 Jun 2020 10:45:49 -0700 Subject: [PATCH 059/158] fix: handle fallback option properly (#85) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * chore(nodejs_templates): add script logging to node_library populate-secrets.sh Co-authored-by: Benjamin E. Coe Source-Author: BenWhitehead Source-Date: Wed Jun 10 22:24:28 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: e7034945fbdc0e79d3c57f6e299e5c90b0f11469 Source-Link: https://github.com/googleapis/synthtool/commit/e7034945fbdc0e79d3c57f6e299e5c90b0f11469 --- .../src/v1/recommender_client.ts | 13 +++++-------- packages/google-cloud-recommender/synth.metadata | 4 ++-- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 7048a436b85..c9d534a316b 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -111,14 +111,11 @@ export class RecommenderClient { // const showcaseClient = new showcaseClient({ projectId, customConfig }); opts.clientConfig = opts.clientConfig || {}; - const isBrowser = typeof window !== 'undefined'; - if (isBrowser) { - opts.fallback = true; - } - // If we are in browser, we are already using fallback because of the - // "browser" field in package.json. - // But if we were explicitly requested to use fallback, let's do it now. - this._gaxModule = !isBrowser && opts.fallback ? gax.fallback : gax; + // If we're running in browser, it's OK to omit `fallback` since + // google-gax has `browser` field in its `package.json`. + // For Electron (which does not respect `browser` field), + // pass `{fallback: true}` to the RecommenderClient constructor. + this._gaxModule = opts.fallback ? gax.fallback : gax; // Create a `gaxGrpc` object, with any grpc-specific options // sent to the client. diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 5759dbfad29..61b5f7985b3 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "1b9b16558851f632aba2e569b114b50e1ce4e0c8" + "sha": "40a4cc30711eef85439b538f4da62091777bd79c" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1c92077459db3dc50741e878f98b08c6261181e0" + "sha": "e7034945fbdc0e79d3c57f6e299e5c90b0f11469" } } ], From 026ac4df4842fa8bc733ad87a57b7bbcbc6e8fe2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2020 11:41:49 -0700 Subject: [PATCH 060/158] chore: release 3.1.0 (#84) * updated CHANGELOG.md [ci skip] * updated package.json [ci skip] * updated samples/package.json Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- packages/google-cloud-recommender/CHANGELOG.md | 12 ++++++++++++ packages/google-cloud-recommender/package.json | 2 +- .../google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index e647e6675ff..2eb0066bbbd 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [3.1.0](https://www.github.com/googleapis/nodejs-recommender/compare/v3.0.0...v3.1.0) (2020-06-12) + + +### Features + +* **secrets:** begin migration to secret manager from keystore ([#82](https://www.github.com/googleapis/nodejs-recommender/issues/82)) ([40a4cc3](https://www.github.com/googleapis/nodejs-recommender/commit/40a4cc30711eef85439b538f4da62091777bd79c)) + + +### Bug Fixes + +* handle fallback option properly ([#85](https://www.github.com/googleapis/nodejs-recommender/issues/85)) ([21a6a00](https://www.github.com/googleapis/nodejs-recommender/commit/21a6a00b7283a8761e412a5a1b005359d0470e37)) + ## [3.0.0](https://www.github.com/googleapis/nodejs-recommender/compare/v2.2.0...v3.0.0) (2020-05-14) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 0eb1a9ed445..d341908c13c 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "3.0.0", + "version": "3.1.0", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 2920742a69a..f40bc04fb87 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^3.0.0" + "@google-cloud/recommender": "^3.1.0" }, "devDependencies": { "c8": "^7.0.0", From 20866c178d1b7878bf130806971c6908ae0f65d4 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 18 Jun 2020 11:05:09 -0700 Subject: [PATCH 061/158] fix: update node issue template (#86) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/37f383f8-7560-459e-b66c-def10ff830cb/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/b10590a4a1568548dd13cfcea9aa11d40898144b --- packages/google-cloud-recommender/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 61b5f7985b3..3ca9d5402eb 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "40a4cc30711eef85439b538f4da62091777bd79c" + "sha": "cb6dd1b7446303aacb2569ce9c550e6a2aeccfdc" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "e7034945fbdc0e79d3c57f6e299e5c90b0f11469" + "sha": "b10590a4a1568548dd13cfcea9aa11d40898144b" } } ], From 001e386d87811a142916000285846660730200b1 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 29 Jun 2020 13:25:05 -0700 Subject: [PATCH 062/158] build: add config .gitattributes (#88) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/e6ac0f7f-2fc1-4ac2-9eb5-23ba1215b6a2/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/dc9caca650c77b7039e2bbc3339ffb34ae78e5b7 --- packages/google-cloud-recommender/.gitattributes | 3 +++ packages/google-cloud-recommender/synth.metadata | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 packages/google-cloud-recommender/.gitattributes diff --git a/packages/google-cloud-recommender/.gitattributes b/packages/google-cloud-recommender/.gitattributes new file mode 100644 index 00000000000..2e63216ae9c --- /dev/null +++ b/packages/google-cloud-recommender/.gitattributes @@ -0,0 +1,3 @@ +*.ts text eol=lf +*.js test eol=lf +protos/* linguist-generated diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 3ca9d5402eb..e495ba29f09 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "cb6dd1b7446303aacb2569ce9c550e6a2aeccfdc" + "sha": "93654e9fe772bc7a9adbcd8d69ddd731be26810d" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "b10590a4a1568548dd13cfcea9aa11d40898144b" + "sha": "dc9caca650c77b7039e2bbc3339ffb34ae78e5b7" } } ], From 19e92001a0d317dcccf2e64f2d2c2aabb05a05b6 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Mon, 6 Jul 2020 10:18:15 -0700 Subject: [PATCH 063/158] build: use bazel build (#90) --- .../google/cloud/recommender/v1/insight.proto | 135 + .../cloud/recommender/v1/recommendation.proto | 15 +- .../recommender/v1/recommender_service.proto | 131 +- .../protos/protos.d.ts | 917 +++ .../google-cloud-recommender/protos/protos.js | 5058 ++++++++++++----- .../protos/protos.json | 225 +- .../src/v1/recommender_client.ts | 585 +- .../src/v1/recommender_client_config.json | 12 + .../src/v1/recommender_proto_list.json | 1 + .../google-cloud-recommender/synth.metadata | 18 +- packages/google-cloud-recommender/synth.py | 14 +- .../test/gapic_recommender_v1.ts | 792 ++- .../webpack.config.js | 4 +- 13 files changed, 6371 insertions(+), 1536 deletions(-) create mode 100644 packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto new file mode 100644 index 00000000000..783a714776e --- /dev/null +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto @@ -0,0 +1,135 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// 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.cloud.recommender.v1; + +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Recommender.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/recommender/v1;recommender"; +option java_multiple_files = true; +option java_outer_classname = "InsightProto"; +option java_package = "com.google.cloud.recommender.v1"; +option objc_class_prefix = "CREC"; +option (google.api.resource_definition) = { + type: "recommender.googleapis.com/InsightType" + pattern: "projects/{project}/locations/{location}/insightTypes/{insight_type}" +}; + +// An insight along with the information used to derive the insight. The insight +// may have associated recomendations as well. +message Insight { + option (google.api.resource) = { + type: "recommender.googleapis.com/Insight" + pattern: "projects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" + }; + + // Reference to an associated recommendation. + message RecommendationReference { + // Recommendation resource name, e.g. + // projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/recommendations/[RECOMMENDATION_ID] + string recommendation = 1; + } + + // Insight category. + enum Category { + // Unspecified category. + CATEGORY_UNSPECIFIED = 0; + + // The insight is related to cost. + COST = 1; + + // The insight is related to security. + SECURITY = 2; + + // The insight is related to performance. + PERFORMANCE = 3; + + // This insight is related to manageability. + MANAGEABILITY = 4; + } + + // Name of the insight. + string name = 1; + + // Free-form human readable summary in English. The maximum length is 500 + // characters. + string description = 2; + + // Fully qualified resource names that this insight is targeting. + repeated string target_resources = 9; + + // Insight subtype. Insight content schema will be stable for a given subtype. + string insight_subtype = 10; + + // A struct of custom fields to explain the insight. + // Example: "grantedPermissionsCount": "1000" + google.protobuf.Struct content = 3; + + // Timestamp of the latest data used to generate the insight. + google.protobuf.Timestamp last_refresh_time = 4; + + // Observation period that led to the insight. The source data used to + // generate the insight ends at last_refresh_time and begins at + // (last_refresh_time - observation_period). + google.protobuf.Duration observation_period = 5; + + // Information state and metadata. + InsightStateInfo state_info = 6; + + // Category being targeted by the insight. + Category category = 7; + + // Fingerprint of the Insight. Provides optimistic locking when updating + // states. + string etag = 11; + + // Recommendations derived from this insight. + repeated RecommendationReference associated_recommendations = 8; +} + +// Information related to insight state. +message InsightStateInfo { + // Represents insight state. + enum State { + // Unspecified state. + STATE_UNSPECIFIED = 0; + + // Insight is active. Content for ACTIVE insights can be updated by Google. + // ACTIVE insights can be marked DISMISSED OR ACCEPTED. + ACTIVE = 1; + + // Some action has been taken based on this insight. Insights become + // accepted when a recommendation derived from the insight has been marked + // CLAIMED, SUCCEEDED, or FAILED. ACTIVE insights can also be marked + // ACCEPTED explicitly. Content for ACCEPTED insights is immutable. ACCEPTED + // insights can only be marked ACCEPTED (which may update state metadata). + ACCEPTED = 2; + + // Insight is dismissed. Content for DISMISSED insights can be updated by + // Google. DISMISSED insights can be marked as ACTIVE. + DISMISSED = 3; + } + + // Insight state. + State state = 1; + + // A map of metadata for the state, provided by user or automations systems. + map state_metadata = 2; +} diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto index 15e2bca185b..aa8321eeb42 100644 --- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -11,7 +11,6 @@ // 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"; @@ -41,6 +40,13 @@ message Recommendation { pattern: "projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" }; + // Reference to an associated insight. + message InsightReference { + // Insight resource name, e.g. + // projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[INSIGHT_ID] + string insight = 1; + } + // Name of recommendation. string name = 1; @@ -81,6 +87,9 @@ message Recommendation { // Fingerprint of the Recommendation. Provides optimistic locking when // updating states. string etag = 11; + + // Insights that led to this recommendation. + repeated InsightReference associated_insights = 14; } // Contains what resources are changing and how they are changing. @@ -233,7 +242,7 @@ message Impact { // Information for state. Contains state and metadata. message RecommendationStateInfo { - // Represents Recommendation State + // Represents Recommendation State. enum State { // Default state. Don't use directly. STATE_UNSPECIFIED = 0; diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto index 97a04f5accc..4f24a050959 100644 --- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -11,7 +11,6 @@ // 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"; @@ -21,6 +20,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/recommender/v1/insight.proto"; import "google/cloud/recommender/v1/recommendation.proto"; option csharp_namespace = "Google.Cloud.Recommender.V1"; @@ -30,14 +30,46 @@ option java_outer_classname = "RecommenderProto"; option java_package = "com.google.cloud.recommender.v1"; option objc_class_prefix = "CREC"; -// Provides recommendations for cloud customers for various categories like -// performance optimization, cost savings, reliability, feature discovery, etc. -// These recommendations are generated automatically based on analysis of user -// resources, configuration and monitoring metrics. +// Provides insights and recommendations for cloud customers for various +// categories like performance optimization, cost savings, reliability, feature +// discovery, etc. Insights and recommendations are generated automatically +// based on analysis of user resources, configuration and monitoring metrics. service Recommender { option (google.api.default_host) = "recommender.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + // Lists insights for a Cloud project. Requires the recommender.*.list IAM + // permission for the specified insight type. + rpc ListInsights(ListInsightsRequest) returns (ListInsightsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/insightTypes/*}/insights" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the requested insight. Requires the recommender.*.get IAM permission + // for the specified insight type. + rpc GetInsight(GetInsightRequest) returns (Insight) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Marks the Insight State as Accepted. Users can use this method to + // indicate to the Recommender API that they have applied some action based + // on the insight. This stops the insight content from being updated. + // + // MarkInsightAccepted can be applied to insights in ACTIVE state. Requires + // the recommender.*.update IAM permission for the specified insight. + rpc MarkInsightAccepted(MarkInsightAcceptedRequest) returns (Insight) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}:markAccepted" + body: "*" + }; + option (google.api.method_signature) = "name,state_metadata,etag"; + } + // Lists recommendations for a Cloud project. Requires the recommender.*.list // IAM permission for the specified recommender. rpc ListRecommendations(ListRecommendationsRequest) returns (ListRecommendationsResponse) { @@ -57,10 +89,10 @@ service Recommender { option (google.api.method_signature) = "name"; } - // Mark the Recommendation State as Claimed. Users can use this method to + // Marks the Recommendation State as Claimed. Users can use this method to // indicate to the Recommender API that they are starting to apply the // recommendation themselves. This stops the recommendation content from being - // updated. + // updated. Associated insights are frozen and placed in the ACCEPTED state. // // MarkRecommendationClaimed can be applied to recommendations in CLAIMED, // SUCCEEDED, FAILED, or ACTIVE state. @@ -75,10 +107,11 @@ service Recommender { option (google.api.method_signature) = "name,state_metadata,etag"; } - // Mark the Recommendation State as Succeeded. Users can use this method to + // Marks the Recommendation State as Succeeded. Users can use this method to // indicate to the Recommender API that they have applied the recommendation // themselves, and the operation was successful. This stops the recommendation - // content from being updated. + // content from being updated. Associated insights are frozen and placed in + // the ACCEPTED state. // // MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, // CLAIMED, SUCCEEDED, or FAILED state. @@ -93,10 +126,11 @@ service Recommender { option (google.api.method_signature) = "name,state_metadata,etag"; } - // Mark the Recommendation State as Failed. Users can use this method to + // Marks the Recommendation State as Failed. Users can use this method to // indicate to the Recommender API that they have applied the recommendation // themselves, and the operation failed. This stops the recommendation content - // from being updated. + // from being updated. Associated insights are frozen and placed in the + // ACCEPTED state. // // MarkRecommendationFailed can be applied to recommendations in ACTIVE, // CLAIMED, SUCCEEDED, or FAILED state. @@ -112,6 +146,79 @@ service Recommender { } } +// Request for the `ListInsights` method. +message ListInsightsRequest { + // Required. The container resource on which to execute the request. + // Acceptable formats: + // + // 1. + // "projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]", + // + // LOCATION here refers to GCP Locations: + // https://cloud.google.com/about/locations/ + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recommender.googleapis.com/InsightType" + } + ]; + + // Optional. The maximum number of results to return from this request. Non-positive + // values are ignored. If not specified, the server will determine the number + // of results to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If present, retrieves the next batch of results from the preceding call to + // this method. `page_token` must be the value of `next_page_token` from the + // previous response. The values of other method parameters must be identical + // to those in the previous call. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter expression to restrict the insights returned. Supported + // filter fields: state + // Eg: `state:"DISMISSED" or state:"ACTIVE" + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response to the `ListInsights` method. +message ListInsightsResponse { + // The set of insights for the `parent` resource. + repeated Insight insights = 1; + + // A token that can be used to request the next page of results. This field is + // empty if there are no additional results. + string next_page_token = 2; +} + +// Request to the `GetInsight` method. +message GetInsightRequest { + // Required. Name of the insight. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recommender.googleapis.com/Insight" + } + ]; +} + +// Request for the `MarkInsightAccepted` method. +message MarkInsightAcceptedRequest { + // Required. Name of the insight. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recommender.googleapis.com/Insight" + } + ]; + + // Optional. State properties user wish to include with this state. Full replace of the + // current state_metadata. + map state_metadata = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Fingerprint of the Insight. Provides optimistic locking. + string etag = 3 [(google.api.field_behavior) = REQUIRED]; +} + // Request for the `ListRecommendations` method. message ListRecommendationsRequest { // Required. The container resource on which to execute the request. diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index e46da2af2d6..3ddbc61b5de 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -26,6 +26,365 @@ export namespace google { /** Namespace v1. */ namespace v1 { + /** Properties of an Insight. */ + interface IInsight { + + /** Insight name */ + name?: (string|null); + + /** Insight description */ + description?: (string|null); + + /** Insight targetResources */ + targetResources?: (string[]|null); + + /** Insight insightSubtype */ + insightSubtype?: (string|null); + + /** Insight content */ + content?: (google.protobuf.IStruct|null); + + /** Insight lastRefreshTime */ + lastRefreshTime?: (google.protobuf.ITimestamp|null); + + /** Insight observationPeriod */ + observationPeriod?: (google.protobuf.IDuration|null); + + /** Insight stateInfo */ + stateInfo?: (google.cloud.recommender.v1.IInsightStateInfo|null); + + /** Insight category */ + category?: (google.cloud.recommender.v1.Insight.Category|keyof typeof google.cloud.recommender.v1.Insight.Category|null); + + /** Insight etag */ + etag?: (string|null); + + /** Insight associatedRecommendations */ + associatedRecommendations?: (google.cloud.recommender.v1.Insight.IRecommendationReference[]|null); + } + + /** Represents an Insight. */ + class Insight implements IInsight { + + /** + * Constructs a new Insight. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1.IInsight); + + /** Insight name. */ + public name: string; + + /** Insight description. */ + public description: string; + + /** Insight targetResources. */ + public targetResources: string[]; + + /** Insight insightSubtype. */ + public insightSubtype: string; + + /** Insight content. */ + public content?: (google.protobuf.IStruct|null); + + /** Insight lastRefreshTime. */ + public lastRefreshTime?: (google.protobuf.ITimestamp|null); + + /** Insight observationPeriod. */ + public observationPeriod?: (google.protobuf.IDuration|null); + + /** Insight stateInfo. */ + public stateInfo?: (google.cloud.recommender.v1.IInsightStateInfo|null); + + /** Insight category. */ + public category: (google.cloud.recommender.v1.Insight.Category|keyof typeof google.cloud.recommender.v1.Insight.Category); + + /** Insight etag. */ + public etag: string; + + /** Insight associatedRecommendations. */ + public associatedRecommendations: google.cloud.recommender.v1.Insight.IRecommendationReference[]; + + /** + * Creates a new Insight instance using the specified properties. + * @param [properties] Properties to set + * @returns Insight instance + */ + public static create(properties?: google.cloud.recommender.v1.IInsight): google.cloud.recommender.v1.Insight; + + /** + * Encodes the specified Insight message. Does not implicitly {@link google.cloud.recommender.v1.Insight.verify|verify} messages. + * @param message Insight message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1.IInsight, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Insight message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Insight.verify|verify} messages. + * @param message Insight message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1.IInsight, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an Insight message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Insight + * @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.cloud.recommender.v1.Insight; + + /** + * Decodes an Insight message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Insight + * @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.cloud.recommender.v1.Insight; + + /** + * Verifies an Insight 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 an Insight message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Insight + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.Insight; + + /** + * Creates a plain object from an Insight message. Also converts values to other types if specified. + * @param message Insight + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1.Insight, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Insight to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace Insight { + + /** Properties of a RecommendationReference. */ + interface IRecommendationReference { + + /** RecommendationReference recommendation */ + recommendation?: (string|null); + } + + /** Represents a RecommendationReference. */ + class RecommendationReference implements IRecommendationReference { + + /** + * Constructs a new RecommendationReference. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1.Insight.IRecommendationReference); + + /** RecommendationReference recommendation. */ + public recommendation: string; + + /** + * Creates a new RecommendationReference instance using the specified properties. + * @param [properties] Properties to set + * @returns RecommendationReference instance + */ + public static create(properties?: google.cloud.recommender.v1.Insight.IRecommendationReference): google.cloud.recommender.v1.Insight.RecommendationReference; + + /** + * Encodes the specified RecommendationReference message. Does not implicitly {@link google.cloud.recommender.v1.Insight.RecommendationReference.verify|verify} messages. + * @param message RecommendationReference message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1.Insight.IRecommendationReference, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RecommendationReference message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Insight.RecommendationReference.verify|verify} messages. + * @param message RecommendationReference message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1.Insight.IRecommendationReference, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RecommendationReference message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RecommendationReference + * @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.cloud.recommender.v1.Insight.RecommendationReference; + + /** + * Decodes a RecommendationReference message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RecommendationReference + * @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.cloud.recommender.v1.Insight.RecommendationReference; + + /** + * Verifies a RecommendationReference 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 RecommendationReference message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RecommendationReference + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.Insight.RecommendationReference; + + /** + * Creates a plain object from a RecommendationReference message. Also converts values to other types if specified. + * @param message RecommendationReference + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1.Insight.RecommendationReference, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RecommendationReference to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Category enum. */ + enum Category { + CATEGORY_UNSPECIFIED = 0, + COST = 1, + SECURITY = 2, + PERFORMANCE = 3, + MANAGEABILITY = 4 + } + } + + /** Properties of an InsightStateInfo. */ + interface IInsightStateInfo { + + /** InsightStateInfo state */ + state?: (google.cloud.recommender.v1.InsightStateInfo.State|keyof typeof google.cloud.recommender.v1.InsightStateInfo.State|null); + + /** InsightStateInfo stateMetadata */ + stateMetadata?: ({ [k: string]: string }|null); + } + + /** Represents an InsightStateInfo. */ + class InsightStateInfo implements IInsightStateInfo { + + /** + * Constructs a new InsightStateInfo. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1.IInsightStateInfo); + + /** InsightStateInfo state. */ + public state: (google.cloud.recommender.v1.InsightStateInfo.State|keyof typeof google.cloud.recommender.v1.InsightStateInfo.State); + + /** InsightStateInfo stateMetadata. */ + public stateMetadata: { [k: string]: string }; + + /** + * Creates a new InsightStateInfo instance using the specified properties. + * @param [properties] Properties to set + * @returns InsightStateInfo instance + */ + public static create(properties?: google.cloud.recommender.v1.IInsightStateInfo): google.cloud.recommender.v1.InsightStateInfo; + + /** + * Encodes the specified InsightStateInfo message. Does not implicitly {@link google.cloud.recommender.v1.InsightStateInfo.verify|verify} messages. + * @param message InsightStateInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1.IInsightStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified InsightStateInfo message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.InsightStateInfo.verify|verify} messages. + * @param message InsightStateInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1.IInsightStateInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an InsightStateInfo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns InsightStateInfo + * @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.cloud.recommender.v1.InsightStateInfo; + + /** + * Decodes an InsightStateInfo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns InsightStateInfo + * @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.cloud.recommender.v1.InsightStateInfo; + + /** + * Verifies an InsightStateInfo 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 an InsightStateInfo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns InsightStateInfo + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.InsightStateInfo; + + /** + * Creates a plain object from an InsightStateInfo message. Also converts values to other types if specified. + * @param message InsightStateInfo + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1.InsightStateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this InsightStateInfo to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace InsightStateInfo { + + /** State enum. */ + enum State { + STATE_UNSPECIFIED = 0, + ACTIVE = 1, + ACCEPTED = 2, + DISMISSED = 3 + } + } + /** Properties of a Recommendation. */ interface IRecommendation { @@ -55,6 +414,9 @@ export namespace google { /** Recommendation etag */ etag?: (string|null); + + /** Recommendation associatedInsights */ + associatedInsights?: (google.cloud.recommender.v1.Recommendation.IInsightReference[]|null); } /** Represents a Recommendation. */ @@ -93,6 +455,9 @@ export namespace google { /** Recommendation etag. */ public etag: string; + /** Recommendation associatedInsights. */ + public associatedInsights: google.cloud.recommender.v1.Recommendation.IInsightReference[]; + /** * Creates a new Recommendation instance using the specified properties. * @param [properties] Properties to set @@ -164,6 +529,99 @@ export namespace google { public toJSON(): { [k: string]: any }; } + namespace Recommendation { + + /** Properties of an InsightReference. */ + interface IInsightReference { + + /** InsightReference insight */ + insight?: (string|null); + } + + /** Represents an InsightReference. */ + class InsightReference implements IInsightReference { + + /** + * Constructs a new InsightReference. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1.Recommendation.IInsightReference); + + /** InsightReference insight. */ + public insight: string; + + /** + * Creates a new InsightReference instance using the specified properties. + * @param [properties] Properties to set + * @returns InsightReference instance + */ + public static create(properties?: google.cloud.recommender.v1.Recommendation.IInsightReference): google.cloud.recommender.v1.Recommendation.InsightReference; + + /** + * Encodes the specified InsightReference message. Does not implicitly {@link google.cloud.recommender.v1.Recommendation.InsightReference.verify|verify} messages. + * @param message InsightReference message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1.Recommendation.IInsightReference, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified InsightReference message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Recommendation.InsightReference.verify|verify} messages. + * @param message InsightReference message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1.Recommendation.IInsightReference, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an InsightReference message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns InsightReference + * @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.cloud.recommender.v1.Recommendation.InsightReference; + + /** + * Decodes an InsightReference message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns InsightReference + * @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.cloud.recommender.v1.Recommendation.InsightReference; + + /** + * Verifies an InsightReference 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 an InsightReference message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns InsightReference + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.Recommendation.InsightReference; + + /** + * Creates a plain object from an InsightReference message. Also converts values to other types if specified. + * @param message InsightReference + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1.Recommendation.InsightReference, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this InsightReference to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + /** Properties of a RecommendationContent. */ interface IRecommendationContent { @@ -920,6 +1378,48 @@ export namespace google { */ public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): Recommender; + /** + * Calls ListInsights. + * @param request ListInsightsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ListInsightsResponse + */ + public listInsights(request: google.cloud.recommender.v1.IListInsightsRequest, callback: google.cloud.recommender.v1.Recommender.ListInsightsCallback): void; + + /** + * Calls ListInsights. + * @param request ListInsightsRequest message or plain object + * @returns Promise + */ + public listInsights(request: google.cloud.recommender.v1.IListInsightsRequest): Promise; + + /** + * Calls GetInsight. + * @param request GetInsightRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Insight + */ + public getInsight(request: google.cloud.recommender.v1.IGetInsightRequest, callback: google.cloud.recommender.v1.Recommender.GetInsightCallback): void; + + /** + * Calls GetInsight. + * @param request GetInsightRequest message or plain object + * @returns Promise + */ + public getInsight(request: google.cloud.recommender.v1.IGetInsightRequest): Promise; + + /** + * Calls MarkInsightAccepted. + * @param request MarkInsightAcceptedRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Insight + */ + public markInsightAccepted(request: google.cloud.recommender.v1.IMarkInsightAcceptedRequest, callback: google.cloud.recommender.v1.Recommender.MarkInsightAcceptedCallback): void; + + /** + * Calls MarkInsightAccepted. + * @param request MarkInsightAcceptedRequest message or plain object + * @returns Promise + */ + public markInsightAccepted(request: google.cloud.recommender.v1.IMarkInsightAcceptedRequest): Promise; + /** * Calls ListRecommendations. * @param request ListRecommendationsRequest message or plain object @@ -993,6 +1493,27 @@ export namespace google { namespace Recommender { + /** + * Callback as used by {@link google.cloud.recommender.v1.Recommender#listInsights}. + * @param error Error, if any + * @param [response] ListInsightsResponse + */ + type ListInsightsCallback = (error: (Error|null), response?: google.cloud.recommender.v1.ListInsightsResponse) => void; + + /** + * Callback as used by {@link google.cloud.recommender.v1.Recommender#getInsight}. + * @param error Error, if any + * @param [response] Insight + */ + type GetInsightCallback = (error: (Error|null), response?: google.cloud.recommender.v1.Insight) => void; + + /** + * Callback as used by {@link google.cloud.recommender.v1.Recommender#markInsightAccepted}. + * @param error Error, if any + * @param [response] Insight + */ + type MarkInsightAcceptedCallback = (error: (Error|null), response?: google.cloud.recommender.v1.Insight) => void; + /** * Callback as used by {@link google.cloud.recommender.v1.Recommender#listRecommendations}. * @param error Error, if any @@ -1029,6 +1550,402 @@ export namespace google { type MarkRecommendationFailedCallback = (error: (Error|null), response?: google.cloud.recommender.v1.Recommendation) => void; } + /** Properties of a ListInsightsRequest. */ + interface IListInsightsRequest { + + /** ListInsightsRequest parent */ + parent?: (string|null); + + /** ListInsightsRequest pageSize */ + pageSize?: (number|null); + + /** ListInsightsRequest pageToken */ + pageToken?: (string|null); + + /** ListInsightsRequest filter */ + filter?: (string|null); + } + + /** Represents a ListInsightsRequest. */ + class ListInsightsRequest implements IListInsightsRequest { + + /** + * Constructs a new ListInsightsRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1.IListInsightsRequest); + + /** ListInsightsRequest parent. */ + public parent: string; + + /** ListInsightsRequest pageSize. */ + public pageSize: number; + + /** ListInsightsRequest pageToken. */ + public pageToken: string; + + /** ListInsightsRequest filter. */ + public filter: string; + + /** + * Creates a new ListInsightsRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ListInsightsRequest instance + */ + public static create(properties?: google.cloud.recommender.v1.IListInsightsRequest): google.cloud.recommender.v1.ListInsightsRequest; + + /** + * Encodes the specified ListInsightsRequest message. Does not implicitly {@link google.cloud.recommender.v1.ListInsightsRequest.verify|verify} messages. + * @param message ListInsightsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1.IListInsightsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListInsightsRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.ListInsightsRequest.verify|verify} messages. + * @param message ListInsightsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1.IListInsightsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListInsightsRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListInsightsRequest + * @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.cloud.recommender.v1.ListInsightsRequest; + + /** + * Decodes a ListInsightsRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListInsightsRequest + * @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.cloud.recommender.v1.ListInsightsRequest; + + /** + * Verifies a ListInsightsRequest 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 ListInsightsRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListInsightsRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.ListInsightsRequest; + + /** + * Creates a plain object from a ListInsightsRequest message. Also converts values to other types if specified. + * @param message ListInsightsRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1.ListInsightsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListInsightsRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ListInsightsResponse. */ + interface IListInsightsResponse { + + /** ListInsightsResponse insights */ + insights?: (google.cloud.recommender.v1.IInsight[]|null); + + /** ListInsightsResponse nextPageToken */ + nextPageToken?: (string|null); + } + + /** Represents a ListInsightsResponse. */ + class ListInsightsResponse implements IListInsightsResponse { + + /** + * Constructs a new ListInsightsResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1.IListInsightsResponse); + + /** ListInsightsResponse insights. */ + public insights: google.cloud.recommender.v1.IInsight[]; + + /** ListInsightsResponse nextPageToken. */ + public nextPageToken: string; + + /** + * Creates a new ListInsightsResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns ListInsightsResponse instance + */ + public static create(properties?: google.cloud.recommender.v1.IListInsightsResponse): google.cloud.recommender.v1.ListInsightsResponse; + + /** + * Encodes the specified ListInsightsResponse message. Does not implicitly {@link google.cloud.recommender.v1.ListInsightsResponse.verify|verify} messages. + * @param message ListInsightsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1.IListInsightsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListInsightsResponse message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.ListInsightsResponse.verify|verify} messages. + * @param message ListInsightsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1.IListInsightsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListInsightsResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListInsightsResponse + * @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.cloud.recommender.v1.ListInsightsResponse; + + /** + * Decodes a ListInsightsResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListInsightsResponse + * @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.cloud.recommender.v1.ListInsightsResponse; + + /** + * Verifies a ListInsightsResponse 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 ListInsightsResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListInsightsResponse + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.ListInsightsResponse; + + /** + * Creates a plain object from a ListInsightsResponse message. Also converts values to other types if specified. + * @param message ListInsightsResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1.ListInsightsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListInsightsResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a GetInsightRequest. */ + interface IGetInsightRequest { + + /** GetInsightRequest name */ + name?: (string|null); + } + + /** Represents a GetInsightRequest. */ + class GetInsightRequest implements IGetInsightRequest { + + /** + * Constructs a new GetInsightRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1.IGetInsightRequest); + + /** GetInsightRequest name. */ + public name: string; + + /** + * Creates a new GetInsightRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns GetInsightRequest instance + */ + public static create(properties?: google.cloud.recommender.v1.IGetInsightRequest): google.cloud.recommender.v1.GetInsightRequest; + + /** + * Encodes the specified GetInsightRequest message. Does not implicitly {@link google.cloud.recommender.v1.GetInsightRequest.verify|verify} messages. + * @param message GetInsightRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1.IGetInsightRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GetInsightRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.GetInsightRequest.verify|verify} messages. + * @param message GetInsightRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1.IGetInsightRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetInsightRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GetInsightRequest + * @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.cloud.recommender.v1.GetInsightRequest; + + /** + * Decodes a GetInsightRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GetInsightRequest + * @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.cloud.recommender.v1.GetInsightRequest; + + /** + * Verifies a GetInsightRequest 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 GetInsightRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GetInsightRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.GetInsightRequest; + + /** + * Creates a plain object from a GetInsightRequest message. Also converts values to other types if specified. + * @param message GetInsightRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1.GetInsightRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GetInsightRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a MarkInsightAcceptedRequest. */ + interface IMarkInsightAcceptedRequest { + + /** MarkInsightAcceptedRequest name */ + name?: (string|null); + + /** MarkInsightAcceptedRequest stateMetadata */ + stateMetadata?: ({ [k: string]: string }|null); + + /** MarkInsightAcceptedRequest etag */ + etag?: (string|null); + } + + /** Represents a MarkInsightAcceptedRequest. */ + class MarkInsightAcceptedRequest implements IMarkInsightAcceptedRequest { + + /** + * Constructs a new MarkInsightAcceptedRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recommender.v1.IMarkInsightAcceptedRequest); + + /** MarkInsightAcceptedRequest name. */ + public name: string; + + /** MarkInsightAcceptedRequest stateMetadata. */ + public stateMetadata: { [k: string]: string }; + + /** MarkInsightAcceptedRequest etag. */ + public etag: string; + + /** + * Creates a new MarkInsightAcceptedRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns MarkInsightAcceptedRequest instance + */ + public static create(properties?: google.cloud.recommender.v1.IMarkInsightAcceptedRequest): google.cloud.recommender.v1.MarkInsightAcceptedRequest; + + /** + * Encodes the specified MarkInsightAcceptedRequest message. Does not implicitly {@link google.cloud.recommender.v1.MarkInsightAcceptedRequest.verify|verify} messages. + * @param message MarkInsightAcceptedRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recommender.v1.IMarkInsightAcceptedRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MarkInsightAcceptedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.MarkInsightAcceptedRequest.verify|verify} messages. + * @param message MarkInsightAcceptedRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recommender.v1.IMarkInsightAcceptedRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MarkInsightAcceptedRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MarkInsightAcceptedRequest + * @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.cloud.recommender.v1.MarkInsightAcceptedRequest; + + /** + * Decodes a MarkInsightAcceptedRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MarkInsightAcceptedRequest + * @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.cloud.recommender.v1.MarkInsightAcceptedRequest; + + /** + * Verifies a MarkInsightAcceptedRequest 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 MarkInsightAcceptedRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MarkInsightAcceptedRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recommender.v1.MarkInsightAcceptedRequest; + + /** + * Creates a plain object from a MarkInsightAcceptedRequest message. Also converts values to other types if specified. + * @param message MarkInsightAcceptedRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recommender.v1.MarkInsightAcceptedRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MarkInsightAcceptedRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + /** Properties of a ListRecommendationsRequest. */ interface IListRecommendationsRequest { diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index 6839e8c5183..ae8deffaaac 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -66,33 +66,36 @@ */ var v1 = {}; - v1.Recommendation = (function() { + v1.Insight = (function() { /** - * Properties of a Recommendation. + * Properties of an Insight. * @memberof google.cloud.recommender.v1 - * @interface IRecommendation - * @property {string|null} [name] Recommendation name - * @property {string|null} [description] Recommendation description - * @property {string|null} [recommenderSubtype] Recommendation recommenderSubtype - * @property {google.protobuf.ITimestamp|null} [lastRefreshTime] Recommendation lastRefreshTime - * @property {google.cloud.recommender.v1.IImpact|null} [primaryImpact] Recommendation primaryImpact - * @property {Array.|null} [additionalImpact] Recommendation additionalImpact - * @property {google.cloud.recommender.v1.IRecommendationContent|null} [content] Recommendation content - * @property {google.cloud.recommender.v1.IRecommendationStateInfo|null} [stateInfo] Recommendation stateInfo - * @property {string|null} [etag] Recommendation etag + * @interface IInsight + * @property {string|null} [name] Insight name + * @property {string|null} [description] Insight description + * @property {Array.|null} [targetResources] Insight targetResources + * @property {string|null} [insightSubtype] Insight insightSubtype + * @property {google.protobuf.IStruct|null} [content] Insight content + * @property {google.protobuf.ITimestamp|null} [lastRefreshTime] Insight lastRefreshTime + * @property {google.protobuf.IDuration|null} [observationPeriod] Insight observationPeriod + * @property {google.cloud.recommender.v1.IInsightStateInfo|null} [stateInfo] Insight stateInfo + * @property {google.cloud.recommender.v1.Insight.Category|null} [category] Insight category + * @property {string|null} [etag] Insight etag + * @property {Array.|null} [associatedRecommendations] Insight associatedRecommendations */ /** - * Constructs a new Recommendation. + * Constructs a new Insight. * @memberof google.cloud.recommender.v1 - * @classdesc Represents a Recommendation. - * @implements IRecommendation + * @classdesc Represents an Insight. + * @implements IInsight * @constructor - * @param {google.cloud.recommender.v1.IRecommendation=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IInsight=} [properties] Properties to set */ - function Recommendation(properties) { - this.additionalImpact = []; + function Insight(properties) { + this.targetResources = []; + this.associatedRecommendations = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -100,151 +103,172 @@ } /** - * Recommendation name. + * Insight name. * @member {string} name - * @memberof google.cloud.recommender.v1.Recommendation + * @memberof google.cloud.recommender.v1.Insight * @instance */ - Recommendation.prototype.name = ""; + Insight.prototype.name = ""; /** - * Recommendation description. + * Insight description. * @member {string} description - * @memberof google.cloud.recommender.v1.Recommendation + * @memberof google.cloud.recommender.v1.Insight * @instance */ - Recommendation.prototype.description = ""; + Insight.prototype.description = ""; /** - * Recommendation recommenderSubtype. - * @member {string} recommenderSubtype - * @memberof google.cloud.recommender.v1.Recommendation + * Insight targetResources. + * @member {Array.} targetResources + * @memberof google.cloud.recommender.v1.Insight * @instance */ - Recommendation.prototype.recommenderSubtype = ""; + Insight.prototype.targetResources = $util.emptyArray; /** - * Recommendation lastRefreshTime. - * @member {google.protobuf.ITimestamp|null|undefined} lastRefreshTime - * @memberof google.cloud.recommender.v1.Recommendation + * Insight insightSubtype. + * @member {string} insightSubtype + * @memberof google.cloud.recommender.v1.Insight * @instance */ - Recommendation.prototype.lastRefreshTime = null; + Insight.prototype.insightSubtype = ""; /** - * Recommendation primaryImpact. - * @member {google.cloud.recommender.v1.IImpact|null|undefined} primaryImpact - * @memberof google.cloud.recommender.v1.Recommendation + * Insight content. + * @member {google.protobuf.IStruct|null|undefined} content + * @memberof google.cloud.recommender.v1.Insight * @instance */ - Recommendation.prototype.primaryImpact = null; + Insight.prototype.content = null; /** - * Recommendation additionalImpact. - * @member {Array.} additionalImpact - * @memberof google.cloud.recommender.v1.Recommendation + * Insight lastRefreshTime. + * @member {google.protobuf.ITimestamp|null|undefined} lastRefreshTime + * @memberof google.cloud.recommender.v1.Insight * @instance */ - Recommendation.prototype.additionalImpact = $util.emptyArray; + Insight.prototype.lastRefreshTime = null; /** - * Recommendation content. - * @member {google.cloud.recommender.v1.IRecommendationContent|null|undefined} content - * @memberof google.cloud.recommender.v1.Recommendation + * Insight observationPeriod. + * @member {google.protobuf.IDuration|null|undefined} observationPeriod + * @memberof google.cloud.recommender.v1.Insight * @instance */ - Recommendation.prototype.content = null; + Insight.prototype.observationPeriod = null; /** - * Recommendation stateInfo. - * @member {google.cloud.recommender.v1.IRecommendationStateInfo|null|undefined} stateInfo - * @memberof google.cloud.recommender.v1.Recommendation + * Insight stateInfo. + * @member {google.cloud.recommender.v1.IInsightStateInfo|null|undefined} stateInfo + * @memberof google.cloud.recommender.v1.Insight * @instance */ - Recommendation.prototype.stateInfo = null; + Insight.prototype.stateInfo = null; /** - * Recommendation etag. + * Insight category. + * @member {google.cloud.recommender.v1.Insight.Category} category + * @memberof google.cloud.recommender.v1.Insight + * @instance + */ + Insight.prototype.category = 0; + + /** + * Insight etag. * @member {string} etag - * @memberof google.cloud.recommender.v1.Recommendation + * @memberof google.cloud.recommender.v1.Insight * @instance */ - Recommendation.prototype.etag = ""; + Insight.prototype.etag = ""; /** - * Creates a new Recommendation instance using the specified properties. + * Insight associatedRecommendations. + * @member {Array.} associatedRecommendations + * @memberof google.cloud.recommender.v1.Insight + * @instance + */ + Insight.prototype.associatedRecommendations = $util.emptyArray; + + /** + * Creates a new Insight instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1.Recommendation + * @memberof google.cloud.recommender.v1.Insight * @static - * @param {google.cloud.recommender.v1.IRecommendation=} [properties] Properties to set - * @returns {google.cloud.recommender.v1.Recommendation} Recommendation instance + * @param {google.cloud.recommender.v1.IInsight=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.Insight} Insight instance */ - Recommendation.create = function create(properties) { - return new Recommendation(properties); + Insight.create = function create(properties) { + return new Insight(properties); }; /** - * Encodes the specified Recommendation message. Does not implicitly {@link google.cloud.recommender.v1.Recommendation.verify|verify} messages. + * Encodes the specified Insight message. Does not implicitly {@link google.cloud.recommender.v1.Insight.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1.Recommendation + * @memberof google.cloud.recommender.v1.Insight * @static - * @param {google.cloud.recommender.v1.IRecommendation} message Recommendation message or plain object to encode + * @param {google.cloud.recommender.v1.IInsight} message Insight message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Recommendation.encode = function encode(message, writer) { + Insight.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.description != null && Object.hasOwnProperty.call(message, "description")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.description); + if (message.content != null && Object.hasOwnProperty.call(message, "content")) + $root.google.protobuf.Struct.encode(message.content, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); if (message.lastRefreshTime != null && Object.hasOwnProperty.call(message, "lastRefreshTime")) $root.google.protobuf.Timestamp.encode(message.lastRefreshTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.primaryImpact != null && Object.hasOwnProperty.call(message, "primaryImpact")) - $root.google.cloud.recommender.v1.Impact.encode(message.primaryImpact, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.additionalImpact != null && message.additionalImpact.length) - for (var i = 0; i < message.additionalImpact.length; ++i) - $root.google.cloud.recommender.v1.Impact.encode(message.additionalImpact[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.content != null && Object.hasOwnProperty.call(message, "content")) - $root.google.cloud.recommender.v1.RecommendationContent.encode(message.content, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.observationPeriod != null && Object.hasOwnProperty.call(message, "observationPeriod")) + $root.google.protobuf.Duration.encode(message.observationPeriod, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); if (message.stateInfo != null && Object.hasOwnProperty.call(message, "stateInfo")) - $root.google.cloud.recommender.v1.RecommendationStateInfo.encode(message.stateInfo, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + $root.google.cloud.recommender.v1.InsightStateInfo.encode(message.stateInfo, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.category != null && Object.hasOwnProperty.call(message, "category")) + writer.uint32(/* id 7, wireType 0 =*/56).int32(message.category); + if (message.associatedRecommendations != null && message.associatedRecommendations.length) + for (var i = 0; i < message.associatedRecommendations.length; ++i) + $root.google.cloud.recommender.v1.Insight.RecommendationReference.encode(message.associatedRecommendations[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.targetResources != null && message.targetResources.length) + for (var i = 0; i < message.targetResources.length; ++i) + writer.uint32(/* id 9, wireType 2 =*/74).string(message.targetResources[i]); + if (message.insightSubtype != null && Object.hasOwnProperty.call(message, "insightSubtype")) + writer.uint32(/* id 10, wireType 2 =*/82).string(message.insightSubtype); if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) writer.uint32(/* id 11, wireType 2 =*/90).string(message.etag); - if (message.recommenderSubtype != null && Object.hasOwnProperty.call(message, "recommenderSubtype")) - writer.uint32(/* id 12, wireType 2 =*/98).string(message.recommenderSubtype); return writer; }; /** - * Encodes the specified Recommendation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Recommendation.verify|verify} messages. + * Encodes the specified Insight message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Insight.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1.Recommendation + * @memberof google.cloud.recommender.v1.Insight * @static - * @param {google.cloud.recommender.v1.IRecommendation} message Recommendation message or plain object to encode + * @param {google.cloud.recommender.v1.IInsight} message Insight message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Recommendation.encodeDelimited = function encodeDelimited(message, writer) { + Insight.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Recommendation message from the specified reader or buffer. + * Decodes an Insight message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1.Recommendation + * @memberof google.cloud.recommender.v1.Insight * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1.Recommendation} Recommendation + * @returns {google.cloud.recommender.v1.Insight} Insight * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Recommendation.decode = function decode(reader, length) { + Insight.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Recommendation(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Insight(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -254,29 +278,37 @@ case 2: message.description = reader.string(); break; - case 12: - message.recommenderSubtype = reader.string(); + case 9: + if (!(message.targetResources && message.targetResources.length)) + message.targetResources = []; + message.targetResources.push(reader.string()); + break; + case 10: + message.insightSubtype = reader.string(); + break; + case 3: + message.content = $root.google.protobuf.Struct.decode(reader, reader.uint32()); break; case 4: message.lastRefreshTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); break; case 5: - message.primaryImpact = $root.google.cloud.recommender.v1.Impact.decode(reader, reader.uint32()); + message.observationPeriod = $root.google.protobuf.Duration.decode(reader, reader.uint32()); break; case 6: - if (!(message.additionalImpact && message.additionalImpact.length)) - message.additionalImpact = []; - message.additionalImpact.push($root.google.cloud.recommender.v1.Impact.decode(reader, reader.uint32())); + message.stateInfo = $root.google.cloud.recommender.v1.InsightStateInfo.decode(reader, reader.uint32()); break; case 7: - message.content = $root.google.cloud.recommender.v1.RecommendationContent.decode(reader, reader.uint32()); - break; - case 10: - message.stateInfo = $root.google.cloud.recommender.v1.RecommendationStateInfo.decode(reader, reader.uint32()); + message.category = reader.int32(); break; case 11: message.etag = reader.string(); break; + case 8: + if (!(message.associatedRecommendations && message.associatedRecommendations.length)) + message.associatedRecommendations = []; + message.associatedRecommendations.push($root.google.cloud.recommender.v1.Insight.RecommendationReference.decode(reader, reader.uint32())); + break; default: reader.skipType(tag & 7); break; @@ -286,30 +318,30 @@ }; /** - * Decodes a Recommendation message from the specified reader or buffer, length delimited. + * Decodes an Insight message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1.Recommendation + * @memberof google.cloud.recommender.v1.Insight * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1.Recommendation} Recommendation + * @returns {google.cloud.recommender.v1.Insight} Insight * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Recommendation.decodeDelimited = function decodeDelimited(reader) { + Insight.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Recommendation message. + * Verifies an Insight message. * @function verify - * @memberof google.cloud.recommender.v1.Recommendation + * @memberof google.cloud.recommender.v1.Insight * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Recommendation.verify = function verify(message) { + Insight.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (message.name != null && message.hasOwnProperty("name")) @@ -318,179 +350,444 @@ if (message.description != null && message.hasOwnProperty("description")) if (!$util.isString(message.description)) return "description: string expected"; - if (message.recommenderSubtype != null && message.hasOwnProperty("recommenderSubtype")) - if (!$util.isString(message.recommenderSubtype)) - return "recommenderSubtype: string expected"; + if (message.targetResources != null && message.hasOwnProperty("targetResources")) { + if (!Array.isArray(message.targetResources)) + return "targetResources: array expected"; + for (var i = 0; i < message.targetResources.length; ++i) + if (!$util.isString(message.targetResources[i])) + return "targetResources: string[] expected"; + } + if (message.insightSubtype != null && message.hasOwnProperty("insightSubtype")) + if (!$util.isString(message.insightSubtype)) + return "insightSubtype: string expected"; + if (message.content != null && message.hasOwnProperty("content")) { + var error = $root.google.protobuf.Struct.verify(message.content); + if (error) + return "content." + error; + } if (message.lastRefreshTime != null && message.hasOwnProperty("lastRefreshTime")) { var error = $root.google.protobuf.Timestamp.verify(message.lastRefreshTime); if (error) return "lastRefreshTime." + error; } - if (message.primaryImpact != null && message.hasOwnProperty("primaryImpact")) { - var error = $root.google.cloud.recommender.v1.Impact.verify(message.primaryImpact); - if (error) - return "primaryImpact." + error; - } - if (message.additionalImpact != null && message.hasOwnProperty("additionalImpact")) { - if (!Array.isArray(message.additionalImpact)) - return "additionalImpact: array expected"; - for (var i = 0; i < message.additionalImpact.length; ++i) { - var error = $root.google.cloud.recommender.v1.Impact.verify(message.additionalImpact[i]); - if (error) - return "additionalImpact." + error; - } - } - if (message.content != null && message.hasOwnProperty("content")) { - var error = $root.google.cloud.recommender.v1.RecommendationContent.verify(message.content); + if (message.observationPeriod != null && message.hasOwnProperty("observationPeriod")) { + var error = $root.google.protobuf.Duration.verify(message.observationPeriod); if (error) - return "content." + error; + return "observationPeriod." + error; } if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) { - var error = $root.google.cloud.recommender.v1.RecommendationStateInfo.verify(message.stateInfo); + var error = $root.google.cloud.recommender.v1.InsightStateInfo.verify(message.stateInfo); if (error) return "stateInfo." + error; } + if (message.category != null && message.hasOwnProperty("category")) + switch (message.category) { + default: + return "category: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } if (message.etag != null && message.hasOwnProperty("etag")) if (!$util.isString(message.etag)) return "etag: string expected"; + if (message.associatedRecommendations != null && message.hasOwnProperty("associatedRecommendations")) { + if (!Array.isArray(message.associatedRecommendations)) + return "associatedRecommendations: array expected"; + for (var i = 0; i < message.associatedRecommendations.length; ++i) { + var error = $root.google.cloud.recommender.v1.Insight.RecommendationReference.verify(message.associatedRecommendations[i]); + if (error) + return "associatedRecommendations." + error; + } + } return null; }; /** - * Creates a Recommendation message from a plain object. Also converts values to their respective internal types. + * Creates an Insight message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1.Recommendation + * @memberof google.cloud.recommender.v1.Insight * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1.Recommendation} Recommendation + * @returns {google.cloud.recommender.v1.Insight} Insight */ - Recommendation.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1.Recommendation) + Insight.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.Insight) return object; - var message = new $root.google.cloud.recommender.v1.Recommendation(); + var message = new $root.google.cloud.recommender.v1.Insight(); if (object.name != null) message.name = String(object.name); if (object.description != null) message.description = String(object.description); - if (object.recommenderSubtype != null) - message.recommenderSubtype = String(object.recommenderSubtype); + if (object.targetResources) { + if (!Array.isArray(object.targetResources)) + throw TypeError(".google.cloud.recommender.v1.Insight.targetResources: array expected"); + message.targetResources = []; + for (var i = 0; i < object.targetResources.length; ++i) + message.targetResources[i] = String(object.targetResources[i]); + } + if (object.insightSubtype != null) + message.insightSubtype = String(object.insightSubtype); + if (object.content != null) { + if (typeof object.content !== "object") + throw TypeError(".google.cloud.recommender.v1.Insight.content: object expected"); + message.content = $root.google.protobuf.Struct.fromObject(object.content); + } if (object.lastRefreshTime != null) { if (typeof object.lastRefreshTime !== "object") - throw TypeError(".google.cloud.recommender.v1.Recommendation.lastRefreshTime: object expected"); + throw TypeError(".google.cloud.recommender.v1.Insight.lastRefreshTime: object expected"); message.lastRefreshTime = $root.google.protobuf.Timestamp.fromObject(object.lastRefreshTime); } - if (object.primaryImpact != null) { - if (typeof object.primaryImpact !== "object") - throw TypeError(".google.cloud.recommender.v1.Recommendation.primaryImpact: object expected"); - message.primaryImpact = $root.google.cloud.recommender.v1.Impact.fromObject(object.primaryImpact); - } - if (object.additionalImpact) { - if (!Array.isArray(object.additionalImpact)) - throw TypeError(".google.cloud.recommender.v1.Recommendation.additionalImpact: array expected"); - message.additionalImpact = []; - for (var i = 0; i < object.additionalImpact.length; ++i) { - if (typeof object.additionalImpact[i] !== "object") - throw TypeError(".google.cloud.recommender.v1.Recommendation.additionalImpact: object expected"); - message.additionalImpact[i] = $root.google.cloud.recommender.v1.Impact.fromObject(object.additionalImpact[i]); - } - } - if (object.content != null) { - if (typeof object.content !== "object") - throw TypeError(".google.cloud.recommender.v1.Recommendation.content: object expected"); - message.content = $root.google.cloud.recommender.v1.RecommendationContent.fromObject(object.content); + if (object.observationPeriod != null) { + if (typeof object.observationPeriod !== "object") + throw TypeError(".google.cloud.recommender.v1.Insight.observationPeriod: object expected"); + message.observationPeriod = $root.google.protobuf.Duration.fromObject(object.observationPeriod); } if (object.stateInfo != null) { if (typeof object.stateInfo !== "object") - throw TypeError(".google.cloud.recommender.v1.Recommendation.stateInfo: object expected"); - message.stateInfo = $root.google.cloud.recommender.v1.RecommendationStateInfo.fromObject(object.stateInfo); + throw TypeError(".google.cloud.recommender.v1.Insight.stateInfo: object expected"); + message.stateInfo = $root.google.cloud.recommender.v1.InsightStateInfo.fromObject(object.stateInfo); + } + switch (object.category) { + case "CATEGORY_UNSPECIFIED": + case 0: + message.category = 0; + break; + case "COST": + case 1: + message.category = 1; + break; + case "SECURITY": + case 2: + message.category = 2; + break; + case "PERFORMANCE": + case 3: + message.category = 3; + break; + case "MANAGEABILITY": + case 4: + message.category = 4; + break; } if (object.etag != null) message.etag = String(object.etag); + if (object.associatedRecommendations) { + if (!Array.isArray(object.associatedRecommendations)) + throw TypeError(".google.cloud.recommender.v1.Insight.associatedRecommendations: array expected"); + message.associatedRecommendations = []; + for (var i = 0; i < object.associatedRecommendations.length; ++i) { + if (typeof object.associatedRecommendations[i] !== "object") + throw TypeError(".google.cloud.recommender.v1.Insight.associatedRecommendations: object expected"); + message.associatedRecommendations[i] = $root.google.cloud.recommender.v1.Insight.RecommendationReference.fromObject(object.associatedRecommendations[i]); + } + } return message; }; /** - * Creates a plain object from a Recommendation message. Also converts values to other types if specified. + * Creates a plain object from an Insight message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1.Recommendation + * @memberof google.cloud.recommender.v1.Insight * @static - * @param {google.cloud.recommender.v1.Recommendation} message Recommendation + * @param {google.cloud.recommender.v1.Insight} message Insight * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Recommendation.toObject = function toObject(message, options) { + Insight.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.additionalImpact = []; + if (options.arrays || options.defaults) { + object.associatedRecommendations = []; + object.targetResources = []; + } if (options.defaults) { object.name = ""; object.description = ""; - object.lastRefreshTime = null; - object.primaryImpact = null; object.content = null; + object.lastRefreshTime = null; + object.observationPeriod = null; object.stateInfo = null; + object.category = options.enums === String ? "CATEGORY_UNSPECIFIED" : 0; + object.insightSubtype = ""; object.etag = ""; - object.recommenderSubtype = ""; } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; if (message.description != null && message.hasOwnProperty("description")) object.description = message.description; + if (message.content != null && message.hasOwnProperty("content")) + object.content = $root.google.protobuf.Struct.toObject(message.content, options); if (message.lastRefreshTime != null && message.hasOwnProperty("lastRefreshTime")) object.lastRefreshTime = $root.google.protobuf.Timestamp.toObject(message.lastRefreshTime, options); - if (message.primaryImpact != null && message.hasOwnProperty("primaryImpact")) - object.primaryImpact = $root.google.cloud.recommender.v1.Impact.toObject(message.primaryImpact, options); - if (message.additionalImpact && message.additionalImpact.length) { - object.additionalImpact = []; - for (var j = 0; j < message.additionalImpact.length; ++j) - object.additionalImpact[j] = $root.google.cloud.recommender.v1.Impact.toObject(message.additionalImpact[j], options); - } - if (message.content != null && message.hasOwnProperty("content")) - object.content = $root.google.cloud.recommender.v1.RecommendationContent.toObject(message.content, options); + if (message.observationPeriod != null && message.hasOwnProperty("observationPeriod")) + object.observationPeriod = $root.google.protobuf.Duration.toObject(message.observationPeriod, options); if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) - object.stateInfo = $root.google.cloud.recommender.v1.RecommendationStateInfo.toObject(message.stateInfo, options); + object.stateInfo = $root.google.cloud.recommender.v1.InsightStateInfo.toObject(message.stateInfo, options); + if (message.category != null && message.hasOwnProperty("category")) + object.category = options.enums === String ? $root.google.cloud.recommender.v1.Insight.Category[message.category] : message.category; + if (message.associatedRecommendations && message.associatedRecommendations.length) { + object.associatedRecommendations = []; + for (var j = 0; j < message.associatedRecommendations.length; ++j) + object.associatedRecommendations[j] = $root.google.cloud.recommender.v1.Insight.RecommendationReference.toObject(message.associatedRecommendations[j], options); + } + if (message.targetResources && message.targetResources.length) { + object.targetResources = []; + for (var j = 0; j < message.targetResources.length; ++j) + object.targetResources[j] = message.targetResources[j]; + } + if (message.insightSubtype != null && message.hasOwnProperty("insightSubtype")) + object.insightSubtype = message.insightSubtype; if (message.etag != null && message.hasOwnProperty("etag")) object.etag = message.etag; - if (message.recommenderSubtype != null && message.hasOwnProperty("recommenderSubtype")) - object.recommenderSubtype = message.recommenderSubtype; return object; }; /** - * Converts this Recommendation to JSON. + * Converts this Insight to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1.Recommendation + * @memberof google.cloud.recommender.v1.Insight * @instance * @returns {Object.} JSON object */ - Recommendation.prototype.toJSON = function toJSON() { + Insight.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return Recommendation; - })(); + Insight.RecommendationReference = (function() { + + /** + * Properties of a RecommendationReference. + * @memberof google.cloud.recommender.v1.Insight + * @interface IRecommendationReference + * @property {string|null} [recommendation] RecommendationReference recommendation + */ + + /** + * Constructs a new RecommendationReference. + * @memberof google.cloud.recommender.v1.Insight + * @classdesc Represents a RecommendationReference. + * @implements IRecommendationReference + * @constructor + * @param {google.cloud.recommender.v1.Insight.IRecommendationReference=} [properties] Properties to set + */ + function RecommendationReference(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]]; + } - v1.RecommendationContent = (function() { + /** + * RecommendationReference recommendation. + * @member {string} recommendation + * @memberof google.cloud.recommender.v1.Insight.RecommendationReference + * @instance + */ + RecommendationReference.prototype.recommendation = ""; + + /** + * Creates a new RecommendationReference instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1.Insight.RecommendationReference + * @static + * @param {google.cloud.recommender.v1.Insight.IRecommendationReference=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.Insight.RecommendationReference} RecommendationReference instance + */ + RecommendationReference.create = function create(properties) { + return new RecommendationReference(properties); + }; + + /** + * Encodes the specified RecommendationReference message. Does not implicitly {@link google.cloud.recommender.v1.Insight.RecommendationReference.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1.Insight.RecommendationReference + * @static + * @param {google.cloud.recommender.v1.Insight.IRecommendationReference} message RecommendationReference message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RecommendationReference.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.recommendation != null && Object.hasOwnProperty.call(message, "recommendation")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.recommendation); + return writer; + }; + + /** + * Encodes the specified RecommendationReference message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Insight.RecommendationReference.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1.Insight.RecommendationReference + * @static + * @param {google.cloud.recommender.v1.Insight.IRecommendationReference} message RecommendationReference message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RecommendationReference.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RecommendationReference message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1.Insight.RecommendationReference + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1.Insight.RecommendationReference} RecommendationReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RecommendationReference.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Insight.RecommendationReference(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.recommendation = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RecommendationReference message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1.Insight.RecommendationReference + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1.Insight.RecommendationReference} RecommendationReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RecommendationReference.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RecommendationReference message. + * @function verify + * @memberof google.cloud.recommender.v1.Insight.RecommendationReference + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RecommendationReference.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.recommendation != null && message.hasOwnProperty("recommendation")) + if (!$util.isString(message.recommendation)) + return "recommendation: string expected"; + return null; + }; + + /** + * Creates a RecommendationReference message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1.Insight.RecommendationReference + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1.Insight.RecommendationReference} RecommendationReference + */ + RecommendationReference.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.Insight.RecommendationReference) + return object; + var message = new $root.google.cloud.recommender.v1.Insight.RecommendationReference(); + if (object.recommendation != null) + message.recommendation = String(object.recommendation); + return message; + }; + + /** + * Creates a plain object from a RecommendationReference message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1.Insight.RecommendationReference + * @static + * @param {google.cloud.recommender.v1.Insight.RecommendationReference} message RecommendationReference + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RecommendationReference.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.recommendation = ""; + if (message.recommendation != null && message.hasOwnProperty("recommendation")) + object.recommendation = message.recommendation; + return object; + }; + + /** + * Converts this RecommendationReference to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1.Insight.RecommendationReference + * @instance + * @returns {Object.} JSON object + */ + RecommendationReference.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return RecommendationReference; + })(); /** - * Properties of a RecommendationContent. - * @memberof google.cloud.recommender.v1 - * @interface IRecommendationContent - * @property {Array.|null} [operationGroups] RecommendationContent operationGroups - */ + * Category enum. + * @name google.cloud.recommender.v1.Insight.Category + * @enum {number} + * @property {number} CATEGORY_UNSPECIFIED=0 CATEGORY_UNSPECIFIED value + * @property {number} COST=1 COST value + * @property {number} SECURITY=2 SECURITY value + * @property {number} PERFORMANCE=3 PERFORMANCE value + * @property {number} MANAGEABILITY=4 MANAGEABILITY value + */ + Insight.Category = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "CATEGORY_UNSPECIFIED"] = 0; + values[valuesById[1] = "COST"] = 1; + values[valuesById[2] = "SECURITY"] = 2; + values[valuesById[3] = "PERFORMANCE"] = 3; + values[valuesById[4] = "MANAGEABILITY"] = 4; + return values; + })(); + + return Insight; + })(); + + v1.InsightStateInfo = (function() { /** - * Constructs a new RecommendationContent. + * Properties of an InsightStateInfo. * @memberof google.cloud.recommender.v1 - * @classdesc Represents a RecommendationContent. - * @implements IRecommendationContent + * @interface IInsightStateInfo + * @property {google.cloud.recommender.v1.InsightStateInfo.State|null} [state] InsightStateInfo state + * @property {Object.|null} [stateMetadata] InsightStateInfo stateMetadata + */ + + /** + * Constructs a new InsightStateInfo. + * @memberof google.cloud.recommender.v1 + * @classdesc Represents an InsightStateInfo. + * @implements IInsightStateInfo * @constructor - * @param {google.cloud.recommender.v1.IRecommendationContent=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IInsightStateInfo=} [properties] Properties to set */ - function RecommendationContent(properties) { - this.operationGroups = []; + function InsightStateInfo(properties) { + this.stateMetadata = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -498,78 +795,94 @@ } /** - * RecommendationContent operationGroups. - * @member {Array.} operationGroups - * @memberof google.cloud.recommender.v1.RecommendationContent + * InsightStateInfo state. + * @member {google.cloud.recommender.v1.InsightStateInfo.State} state + * @memberof google.cloud.recommender.v1.InsightStateInfo * @instance */ - RecommendationContent.prototype.operationGroups = $util.emptyArray; + InsightStateInfo.prototype.state = 0; /** - * Creates a new RecommendationContent instance using the specified properties. + * InsightStateInfo stateMetadata. + * @member {Object.} stateMetadata + * @memberof google.cloud.recommender.v1.InsightStateInfo + * @instance + */ + InsightStateInfo.prototype.stateMetadata = $util.emptyObject; + + /** + * Creates a new InsightStateInfo instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1.RecommendationContent + * @memberof google.cloud.recommender.v1.InsightStateInfo * @static - * @param {google.cloud.recommender.v1.IRecommendationContent=} [properties] Properties to set - * @returns {google.cloud.recommender.v1.RecommendationContent} RecommendationContent instance + * @param {google.cloud.recommender.v1.IInsightStateInfo=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.InsightStateInfo} InsightStateInfo instance */ - RecommendationContent.create = function create(properties) { - return new RecommendationContent(properties); + InsightStateInfo.create = function create(properties) { + return new InsightStateInfo(properties); }; /** - * Encodes the specified RecommendationContent message. Does not implicitly {@link google.cloud.recommender.v1.RecommendationContent.verify|verify} messages. + * Encodes the specified InsightStateInfo message. Does not implicitly {@link google.cloud.recommender.v1.InsightStateInfo.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1.RecommendationContent + * @memberof google.cloud.recommender.v1.InsightStateInfo * @static - * @param {google.cloud.recommender.v1.IRecommendationContent} message RecommendationContent message or plain object to encode + * @param {google.cloud.recommender.v1.IInsightStateInfo} message InsightStateInfo message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RecommendationContent.encode = function encode(message, writer) { + InsightStateInfo.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.operationGroups != null && message.operationGroups.length) - for (var i = 0; i < message.operationGroups.length; ++i) - $root.google.cloud.recommender.v1.OperationGroup.encode(message.operationGroups[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.state != null && Object.hasOwnProperty.call(message, "state")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.state); + if (message.stateMetadata != null && Object.hasOwnProperty.call(message, "stateMetadata")) + for (var keys = Object.keys(message.stateMetadata), i = 0; i < keys.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.stateMetadata[keys[i]]).ldelim(); return writer; }; /** - * Encodes the specified RecommendationContent message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.RecommendationContent.verify|verify} messages. + * Encodes the specified InsightStateInfo message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.InsightStateInfo.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1.RecommendationContent + * @memberof google.cloud.recommender.v1.InsightStateInfo * @static - * @param {google.cloud.recommender.v1.IRecommendationContent} message RecommendationContent message or plain object to encode + * @param {google.cloud.recommender.v1.IInsightStateInfo} message InsightStateInfo message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RecommendationContent.encodeDelimited = function encodeDelimited(message, writer) { + InsightStateInfo.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a RecommendationContent message from the specified reader or buffer. + * Decodes an InsightStateInfo message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1.RecommendationContent + * @memberof google.cloud.recommender.v1.InsightStateInfo * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1.RecommendationContent} RecommendationContent + * @returns {google.cloud.recommender.v1.InsightStateInfo} InsightStateInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecommendationContent.decode = function decode(reader, length) { + InsightStateInfo.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.RecommendationContent(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.InsightStateInfo(), key; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.state = reader.int32(); + break; case 2: - if (!(message.operationGroups && message.operationGroups.length)) - message.operationGroups = []; - message.operationGroups.push($root.google.cloud.recommender.v1.OperationGroup.decode(reader, reader.uint32())); + reader.skip().pos++; + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + key = reader.string(); + reader.pos++; + message.stateMetadata[key] = reader.string(); break; default: reader.skipType(tag & 7); @@ -580,125 +893,182 @@ }; /** - * Decodes a RecommendationContent message from the specified reader or buffer, length delimited. + * Decodes an InsightStateInfo message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1.RecommendationContent + * @memberof google.cloud.recommender.v1.InsightStateInfo * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1.RecommendationContent} RecommendationContent + * @returns {google.cloud.recommender.v1.InsightStateInfo} InsightStateInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecommendationContent.decodeDelimited = function decodeDelimited(reader) { + InsightStateInfo.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a RecommendationContent message. + * Verifies an InsightStateInfo message. * @function verify - * @memberof google.cloud.recommender.v1.RecommendationContent + * @memberof google.cloud.recommender.v1.InsightStateInfo * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecommendationContent.verify = function verify(message) { + InsightStateInfo.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.operationGroups != null && message.hasOwnProperty("operationGroups")) { - if (!Array.isArray(message.operationGroups)) - return "operationGroups: array expected"; - for (var i = 0; i < message.operationGroups.length; ++i) { - var error = $root.google.cloud.recommender.v1.OperationGroup.verify(message.operationGroups[i]); - if (error) - return "operationGroups." + error; + if (message.state != null && message.hasOwnProperty("state")) + switch (message.state) { + default: + return "state: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; } + if (message.stateMetadata != null && message.hasOwnProperty("stateMetadata")) { + if (!$util.isObject(message.stateMetadata)) + return "stateMetadata: object expected"; + var key = Object.keys(message.stateMetadata); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.stateMetadata[key[i]])) + return "stateMetadata: string{k:string} expected"; } return null; }; /** - * Creates a RecommendationContent message from a plain object. Also converts values to their respective internal types. + * Creates an InsightStateInfo message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1.RecommendationContent + * @memberof google.cloud.recommender.v1.InsightStateInfo * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1.RecommendationContent} RecommendationContent + * @returns {google.cloud.recommender.v1.InsightStateInfo} InsightStateInfo */ - RecommendationContent.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1.RecommendationContent) + InsightStateInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.InsightStateInfo) return object; - var message = new $root.google.cloud.recommender.v1.RecommendationContent(); - if (object.operationGroups) { - if (!Array.isArray(object.operationGroups)) - throw TypeError(".google.cloud.recommender.v1.RecommendationContent.operationGroups: array expected"); - message.operationGroups = []; - for (var i = 0; i < object.operationGroups.length; ++i) { - if (typeof object.operationGroups[i] !== "object") - throw TypeError(".google.cloud.recommender.v1.RecommendationContent.operationGroups: object expected"); - message.operationGroups[i] = $root.google.cloud.recommender.v1.OperationGroup.fromObject(object.operationGroups[i]); - } + var message = new $root.google.cloud.recommender.v1.InsightStateInfo(); + switch (object.state) { + case "STATE_UNSPECIFIED": + case 0: + message.state = 0; + break; + case "ACTIVE": + case 1: + message.state = 1; + break; + case "ACCEPTED": + case 2: + message.state = 2; + break; + case "DISMISSED": + case 3: + message.state = 3; + break; + } + if (object.stateMetadata) { + if (typeof object.stateMetadata !== "object") + throw TypeError(".google.cloud.recommender.v1.InsightStateInfo.stateMetadata: object expected"); + message.stateMetadata = {}; + for (var keys = Object.keys(object.stateMetadata), i = 0; i < keys.length; ++i) + message.stateMetadata[keys[i]] = String(object.stateMetadata[keys[i]]); } return message; }; /** - * Creates a plain object from a RecommendationContent message. Also converts values to other types if specified. + * Creates a plain object from an InsightStateInfo message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1.RecommendationContent + * @memberof google.cloud.recommender.v1.InsightStateInfo * @static - * @param {google.cloud.recommender.v1.RecommendationContent} message RecommendationContent + * @param {google.cloud.recommender.v1.InsightStateInfo} message InsightStateInfo * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RecommendationContent.toObject = function toObject(message, options) { + InsightStateInfo.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.operationGroups = []; - if (message.operationGroups && message.operationGroups.length) { - object.operationGroups = []; - for (var j = 0; j < message.operationGroups.length; ++j) - object.operationGroups[j] = $root.google.cloud.recommender.v1.OperationGroup.toObject(message.operationGroups[j], options); + if (options.objects || options.defaults) + object.stateMetadata = {}; + if (options.defaults) + object.state = options.enums === String ? "STATE_UNSPECIFIED" : 0; + if (message.state != null && message.hasOwnProperty("state")) + object.state = options.enums === String ? $root.google.cloud.recommender.v1.InsightStateInfo.State[message.state] : message.state; + var keys2; + if (message.stateMetadata && (keys2 = Object.keys(message.stateMetadata)).length) { + object.stateMetadata = {}; + for (var j = 0; j < keys2.length; ++j) + object.stateMetadata[keys2[j]] = message.stateMetadata[keys2[j]]; } return object; }; /** - * Converts this RecommendationContent to JSON. + * Converts this InsightStateInfo to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1.RecommendationContent + * @memberof google.cloud.recommender.v1.InsightStateInfo * @instance * @returns {Object.} JSON object */ - RecommendationContent.prototype.toJSON = function toJSON() { + InsightStateInfo.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return RecommendationContent; + /** + * State enum. + * @name google.cloud.recommender.v1.InsightStateInfo.State + * @enum {number} + * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value + * @property {number} ACTIVE=1 ACTIVE value + * @property {number} ACCEPTED=2 ACCEPTED value + * @property {number} DISMISSED=3 DISMISSED value + */ + InsightStateInfo.State = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STATE_UNSPECIFIED"] = 0; + values[valuesById[1] = "ACTIVE"] = 1; + values[valuesById[2] = "ACCEPTED"] = 2; + values[valuesById[3] = "DISMISSED"] = 3; + return values; + })(); + + return InsightStateInfo; })(); - v1.OperationGroup = (function() { + v1.Recommendation = (function() { /** - * Properties of an OperationGroup. + * Properties of a Recommendation. * @memberof google.cloud.recommender.v1 - * @interface IOperationGroup - * @property {Array.|null} [operations] OperationGroup operations + * @interface IRecommendation + * @property {string|null} [name] Recommendation name + * @property {string|null} [description] Recommendation description + * @property {string|null} [recommenderSubtype] Recommendation recommenderSubtype + * @property {google.protobuf.ITimestamp|null} [lastRefreshTime] Recommendation lastRefreshTime + * @property {google.cloud.recommender.v1.IImpact|null} [primaryImpact] Recommendation primaryImpact + * @property {Array.|null} [additionalImpact] Recommendation additionalImpact + * @property {google.cloud.recommender.v1.IRecommendationContent|null} [content] Recommendation content + * @property {google.cloud.recommender.v1.IRecommendationStateInfo|null} [stateInfo] Recommendation stateInfo + * @property {string|null} [etag] Recommendation etag + * @property {Array.|null} [associatedInsights] Recommendation associatedInsights */ /** - * Constructs a new OperationGroup. + * Constructs a new Recommendation. * @memberof google.cloud.recommender.v1 - * @classdesc Represents an OperationGroup. - * @implements IOperationGroup + * @classdesc Represents a Recommendation. + * @implements IRecommendation * @constructor - * @param {google.cloud.recommender.v1.IOperationGroup=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IRecommendation=} [properties] Properties to set */ - function OperationGroup(properties) { - this.operations = []; + function Recommendation(properties) { + this.additionalImpact = []; + this.associatedInsights = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -706,78 +1076,198 @@ } /** - * OperationGroup operations. - * @member {Array.} operations - * @memberof google.cloud.recommender.v1.OperationGroup + * Recommendation name. + * @member {string} name + * @memberof google.cloud.recommender.v1.Recommendation * @instance */ - OperationGroup.prototype.operations = $util.emptyArray; + Recommendation.prototype.name = ""; /** - * Creates a new OperationGroup instance using the specified properties. - * @function create - * @memberof google.cloud.recommender.v1.OperationGroup - * @static - * @param {google.cloud.recommender.v1.IOperationGroup=} [properties] Properties to set - * @returns {google.cloud.recommender.v1.OperationGroup} OperationGroup instance + * Recommendation description. + * @member {string} description + * @memberof google.cloud.recommender.v1.Recommendation + * @instance */ - OperationGroup.create = function create(properties) { - return new OperationGroup(properties); - }; + Recommendation.prototype.description = ""; /** - * Encodes the specified OperationGroup message. Does not implicitly {@link google.cloud.recommender.v1.OperationGroup.verify|verify} messages. - * @function encode - * @memberof google.cloud.recommender.v1.OperationGroup - * @static - * @param {google.cloud.recommender.v1.IOperationGroup} message OperationGroup message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer + * Recommendation recommenderSubtype. + * @member {string} recommenderSubtype + * @memberof google.cloud.recommender.v1.Recommendation + * @instance */ - OperationGroup.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.operations != null && message.operations.length) - for (var i = 0; i < message.operations.length; ++i) - $root.google.cloud.recommender.v1.Operation.encode(message.operations[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + Recommendation.prototype.recommenderSubtype = ""; /** - * Encodes the specified OperationGroup message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.OperationGroup.verify|verify} messages. - * @function encodeDelimited - * @memberof google.cloud.recommender.v1.OperationGroup - * @static - * @param {google.cloud.recommender.v1.IOperationGroup} message OperationGroup message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to + * Recommendation lastRefreshTime. + * @member {google.protobuf.ITimestamp|null|undefined} lastRefreshTime + * @memberof google.cloud.recommender.v1.Recommendation + * @instance + */ + Recommendation.prototype.lastRefreshTime = null; + + /** + * Recommendation primaryImpact. + * @member {google.cloud.recommender.v1.IImpact|null|undefined} primaryImpact + * @memberof google.cloud.recommender.v1.Recommendation + * @instance + */ + Recommendation.prototype.primaryImpact = null; + + /** + * Recommendation additionalImpact. + * @member {Array.} additionalImpact + * @memberof google.cloud.recommender.v1.Recommendation + * @instance + */ + Recommendation.prototype.additionalImpact = $util.emptyArray; + + /** + * Recommendation content. + * @member {google.cloud.recommender.v1.IRecommendationContent|null|undefined} content + * @memberof google.cloud.recommender.v1.Recommendation + * @instance + */ + Recommendation.prototype.content = null; + + /** + * Recommendation stateInfo. + * @member {google.cloud.recommender.v1.IRecommendationStateInfo|null|undefined} stateInfo + * @memberof google.cloud.recommender.v1.Recommendation + * @instance + */ + Recommendation.prototype.stateInfo = null; + + /** + * Recommendation etag. + * @member {string} etag + * @memberof google.cloud.recommender.v1.Recommendation + * @instance + */ + Recommendation.prototype.etag = ""; + + /** + * Recommendation associatedInsights. + * @member {Array.} associatedInsights + * @memberof google.cloud.recommender.v1.Recommendation + * @instance + */ + Recommendation.prototype.associatedInsights = $util.emptyArray; + + /** + * Creates a new Recommendation instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1.Recommendation + * @static + * @param {google.cloud.recommender.v1.IRecommendation=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.Recommendation} Recommendation instance + */ + Recommendation.create = function create(properties) { + return new Recommendation(properties); + }; + + /** + * Encodes the specified Recommendation message. Does not implicitly {@link google.cloud.recommender.v1.Recommendation.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1.Recommendation + * @static + * @param {google.cloud.recommender.v1.IRecommendation} message Recommendation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OperationGroup.encodeDelimited = function encodeDelimited(message, writer) { + Recommendation.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.description != null && Object.hasOwnProperty.call(message, "description")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.description); + if (message.lastRefreshTime != null && Object.hasOwnProperty.call(message, "lastRefreshTime")) + $root.google.protobuf.Timestamp.encode(message.lastRefreshTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.primaryImpact != null && Object.hasOwnProperty.call(message, "primaryImpact")) + $root.google.cloud.recommender.v1.Impact.encode(message.primaryImpact, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.additionalImpact != null && message.additionalImpact.length) + for (var i = 0; i < message.additionalImpact.length; ++i) + $root.google.cloud.recommender.v1.Impact.encode(message.additionalImpact[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.content != null && Object.hasOwnProperty.call(message, "content")) + $root.google.cloud.recommender.v1.RecommendationContent.encode(message.content, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.stateInfo != null && Object.hasOwnProperty.call(message, "stateInfo")) + $root.google.cloud.recommender.v1.RecommendationStateInfo.encode(message.stateInfo, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) + writer.uint32(/* id 11, wireType 2 =*/90).string(message.etag); + if (message.recommenderSubtype != null && Object.hasOwnProperty.call(message, "recommenderSubtype")) + writer.uint32(/* id 12, wireType 2 =*/98).string(message.recommenderSubtype); + if (message.associatedInsights != null && message.associatedInsights.length) + for (var i = 0; i < message.associatedInsights.length; ++i) + $root.google.cloud.recommender.v1.Recommendation.InsightReference.encode(message.associatedInsights[i], writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Recommendation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Recommendation.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1.Recommendation + * @static + * @param {google.cloud.recommender.v1.IRecommendation} message Recommendation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Recommendation.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an OperationGroup message from the specified reader or buffer. + * Decodes a Recommendation message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1.OperationGroup + * @memberof google.cloud.recommender.v1.Recommendation * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1.OperationGroup} OperationGroup + * @returns {google.cloud.recommender.v1.Recommendation} Recommendation * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationGroup.decode = function decode(reader, length) { + Recommendation.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.OperationGroup(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Recommendation(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.operations && message.operations.length)) - message.operations = []; - message.operations.push($root.google.cloud.recommender.v1.Operation.decode(reader, reader.uint32())); + message.name = reader.string(); + break; + case 2: + message.description = reader.string(); + break; + case 12: + message.recommenderSubtype = reader.string(); + break; + case 4: + message.lastRefreshTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + case 5: + message.primaryImpact = $root.google.cloud.recommender.v1.Impact.decode(reader, reader.uint32()); + break; + case 6: + if (!(message.additionalImpact && message.additionalImpact.length)) + message.additionalImpact = []; + message.additionalImpact.push($root.google.cloud.recommender.v1.Impact.decode(reader, reader.uint32())); + break; + case 7: + message.content = $root.google.cloud.recommender.v1.RecommendationContent.decode(reader, reader.uint32()); + break; + case 10: + message.stateInfo = $root.google.cloud.recommender.v1.RecommendationStateInfo.decode(reader, reader.uint32()); + break; + case 11: + message.etag = reader.string(); + break; + case 14: + if (!(message.associatedInsights && message.associatedInsights.length)) + message.associatedInsights = []; + message.associatedInsights.push($root.google.cloud.recommender.v1.Recommendation.InsightReference.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -788,135 +1278,424 @@ }; /** - * Decodes an OperationGroup message from the specified reader or buffer, length delimited. + * Decodes a Recommendation message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1.OperationGroup + * @memberof google.cloud.recommender.v1.Recommendation * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1.OperationGroup} OperationGroup + * @returns {google.cloud.recommender.v1.Recommendation} Recommendation * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationGroup.decodeDelimited = function decodeDelimited(reader) { + Recommendation.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an OperationGroup message. + * Verifies a Recommendation message. * @function verify - * @memberof google.cloud.recommender.v1.OperationGroup + * @memberof google.cloud.recommender.v1.Recommendation * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationGroup.verify = function verify(message) { + Recommendation.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.operations != null && message.hasOwnProperty("operations")) { - if (!Array.isArray(message.operations)) - return "operations: array expected"; - for (var i = 0; i < message.operations.length; ++i) { - var error = $root.google.cloud.recommender.v1.Operation.verify(message.operations[i]); + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.description != null && message.hasOwnProperty("description")) + if (!$util.isString(message.description)) + return "description: string expected"; + if (message.recommenderSubtype != null && message.hasOwnProperty("recommenderSubtype")) + if (!$util.isString(message.recommenderSubtype)) + return "recommenderSubtype: string expected"; + if (message.lastRefreshTime != null && message.hasOwnProperty("lastRefreshTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.lastRefreshTime); + if (error) + return "lastRefreshTime." + error; + } + if (message.primaryImpact != null && message.hasOwnProperty("primaryImpact")) { + var error = $root.google.cloud.recommender.v1.Impact.verify(message.primaryImpact); + if (error) + return "primaryImpact." + error; + } + if (message.additionalImpact != null && message.hasOwnProperty("additionalImpact")) { + if (!Array.isArray(message.additionalImpact)) + return "additionalImpact: array expected"; + for (var i = 0; i < message.additionalImpact.length; ++i) { + var error = $root.google.cloud.recommender.v1.Impact.verify(message.additionalImpact[i]); if (error) - return "operations." + error; + return "additionalImpact." + error; + } + } + if (message.content != null && message.hasOwnProperty("content")) { + var error = $root.google.cloud.recommender.v1.RecommendationContent.verify(message.content); + if (error) + return "content." + error; + } + if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) { + var error = $root.google.cloud.recommender.v1.RecommendationStateInfo.verify(message.stateInfo); + if (error) + return "stateInfo." + error; + } + if (message.etag != null && message.hasOwnProperty("etag")) + if (!$util.isString(message.etag)) + return "etag: string expected"; + if (message.associatedInsights != null && message.hasOwnProperty("associatedInsights")) { + if (!Array.isArray(message.associatedInsights)) + return "associatedInsights: array expected"; + for (var i = 0; i < message.associatedInsights.length; ++i) { + var error = $root.google.cloud.recommender.v1.Recommendation.InsightReference.verify(message.associatedInsights[i]); + if (error) + return "associatedInsights." + error; } } return null; }; /** - * Creates an OperationGroup message from a plain object. Also converts values to their respective internal types. + * Creates a Recommendation message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1.OperationGroup + * @memberof google.cloud.recommender.v1.Recommendation * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1.OperationGroup} OperationGroup + * @returns {google.cloud.recommender.v1.Recommendation} Recommendation */ - OperationGroup.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1.OperationGroup) + Recommendation.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.Recommendation) return object; - var message = new $root.google.cloud.recommender.v1.OperationGroup(); - if (object.operations) { - if (!Array.isArray(object.operations)) - throw TypeError(".google.cloud.recommender.v1.OperationGroup.operations: array expected"); - message.operations = []; - for (var i = 0; i < object.operations.length; ++i) { - if (typeof object.operations[i] !== "object") - throw TypeError(".google.cloud.recommender.v1.OperationGroup.operations: object expected"); - message.operations[i] = $root.google.cloud.recommender.v1.Operation.fromObject(object.operations[i]); + var message = new $root.google.cloud.recommender.v1.Recommendation(); + if (object.name != null) + message.name = String(object.name); + if (object.description != null) + message.description = String(object.description); + if (object.recommenderSubtype != null) + message.recommenderSubtype = String(object.recommenderSubtype); + if (object.lastRefreshTime != null) { + if (typeof object.lastRefreshTime !== "object") + throw TypeError(".google.cloud.recommender.v1.Recommendation.lastRefreshTime: object expected"); + message.lastRefreshTime = $root.google.protobuf.Timestamp.fromObject(object.lastRefreshTime); + } + if (object.primaryImpact != null) { + if (typeof object.primaryImpact !== "object") + throw TypeError(".google.cloud.recommender.v1.Recommendation.primaryImpact: object expected"); + message.primaryImpact = $root.google.cloud.recommender.v1.Impact.fromObject(object.primaryImpact); + } + if (object.additionalImpact) { + if (!Array.isArray(object.additionalImpact)) + throw TypeError(".google.cloud.recommender.v1.Recommendation.additionalImpact: array expected"); + message.additionalImpact = []; + for (var i = 0; i < object.additionalImpact.length; ++i) { + if (typeof object.additionalImpact[i] !== "object") + throw TypeError(".google.cloud.recommender.v1.Recommendation.additionalImpact: object expected"); + message.additionalImpact[i] = $root.google.cloud.recommender.v1.Impact.fromObject(object.additionalImpact[i]); } } - return message; - }; - + if (object.content != null) { + if (typeof object.content !== "object") + throw TypeError(".google.cloud.recommender.v1.Recommendation.content: object expected"); + message.content = $root.google.cloud.recommender.v1.RecommendationContent.fromObject(object.content); + } + if (object.stateInfo != null) { + if (typeof object.stateInfo !== "object") + throw TypeError(".google.cloud.recommender.v1.Recommendation.stateInfo: object expected"); + message.stateInfo = $root.google.cloud.recommender.v1.RecommendationStateInfo.fromObject(object.stateInfo); + } + if (object.etag != null) + message.etag = String(object.etag); + if (object.associatedInsights) { + if (!Array.isArray(object.associatedInsights)) + throw TypeError(".google.cloud.recommender.v1.Recommendation.associatedInsights: array expected"); + message.associatedInsights = []; + for (var i = 0; i < object.associatedInsights.length; ++i) { + if (typeof object.associatedInsights[i] !== "object") + throw TypeError(".google.cloud.recommender.v1.Recommendation.associatedInsights: object expected"); + message.associatedInsights[i] = $root.google.cloud.recommender.v1.Recommendation.InsightReference.fromObject(object.associatedInsights[i]); + } + } + return message; + }; + /** - * Creates a plain object from an OperationGroup message. Also converts values to other types if specified. + * Creates a plain object from a Recommendation message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1.OperationGroup + * @memberof google.cloud.recommender.v1.Recommendation * @static - * @param {google.cloud.recommender.v1.OperationGroup} message OperationGroup + * @param {google.cloud.recommender.v1.Recommendation} message Recommendation * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OperationGroup.toObject = function toObject(message, options) { + Recommendation.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.operations = []; - if (message.operations && message.operations.length) { - object.operations = []; - for (var j = 0; j < message.operations.length; ++j) - object.operations[j] = $root.google.cloud.recommender.v1.Operation.toObject(message.operations[j], options); + if (options.arrays || options.defaults) { + object.additionalImpact = []; + object.associatedInsights = []; + } + if (options.defaults) { + object.name = ""; + object.description = ""; + object.lastRefreshTime = null; + object.primaryImpact = null; + object.content = null; + object.stateInfo = null; + object.etag = ""; + object.recommenderSubtype = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.description != null && message.hasOwnProperty("description")) + object.description = message.description; + if (message.lastRefreshTime != null && message.hasOwnProperty("lastRefreshTime")) + object.lastRefreshTime = $root.google.protobuf.Timestamp.toObject(message.lastRefreshTime, options); + if (message.primaryImpact != null && message.hasOwnProperty("primaryImpact")) + object.primaryImpact = $root.google.cloud.recommender.v1.Impact.toObject(message.primaryImpact, options); + if (message.additionalImpact && message.additionalImpact.length) { + object.additionalImpact = []; + for (var j = 0; j < message.additionalImpact.length; ++j) + object.additionalImpact[j] = $root.google.cloud.recommender.v1.Impact.toObject(message.additionalImpact[j], options); + } + if (message.content != null && message.hasOwnProperty("content")) + object.content = $root.google.cloud.recommender.v1.RecommendationContent.toObject(message.content, options); + if (message.stateInfo != null && message.hasOwnProperty("stateInfo")) + object.stateInfo = $root.google.cloud.recommender.v1.RecommendationStateInfo.toObject(message.stateInfo, options); + if (message.etag != null && message.hasOwnProperty("etag")) + object.etag = message.etag; + if (message.recommenderSubtype != null && message.hasOwnProperty("recommenderSubtype")) + object.recommenderSubtype = message.recommenderSubtype; + if (message.associatedInsights && message.associatedInsights.length) { + object.associatedInsights = []; + for (var j = 0; j < message.associatedInsights.length; ++j) + object.associatedInsights[j] = $root.google.cloud.recommender.v1.Recommendation.InsightReference.toObject(message.associatedInsights[j], options); } return object; }; /** - * Converts this OperationGroup to JSON. + * Converts this Recommendation to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1.OperationGroup + * @memberof google.cloud.recommender.v1.Recommendation * @instance * @returns {Object.} JSON object */ - OperationGroup.prototype.toJSON = function toJSON() { + Recommendation.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return OperationGroup; + Recommendation.InsightReference = (function() { + + /** + * Properties of an InsightReference. + * @memberof google.cloud.recommender.v1.Recommendation + * @interface IInsightReference + * @property {string|null} [insight] InsightReference insight + */ + + /** + * Constructs a new InsightReference. + * @memberof google.cloud.recommender.v1.Recommendation + * @classdesc Represents an InsightReference. + * @implements IInsightReference + * @constructor + * @param {google.cloud.recommender.v1.Recommendation.IInsightReference=} [properties] Properties to set + */ + function InsightReference(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]]; + } + + /** + * InsightReference insight. + * @member {string} insight + * @memberof google.cloud.recommender.v1.Recommendation.InsightReference + * @instance + */ + InsightReference.prototype.insight = ""; + + /** + * Creates a new InsightReference instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1.Recommendation.InsightReference + * @static + * @param {google.cloud.recommender.v1.Recommendation.IInsightReference=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.Recommendation.InsightReference} InsightReference instance + */ + InsightReference.create = function create(properties) { + return new InsightReference(properties); + }; + + /** + * Encodes the specified InsightReference message. Does not implicitly {@link google.cloud.recommender.v1.Recommendation.InsightReference.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1.Recommendation.InsightReference + * @static + * @param {google.cloud.recommender.v1.Recommendation.IInsightReference} message InsightReference message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InsightReference.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.insight != null && Object.hasOwnProperty.call(message, "insight")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.insight); + return writer; + }; + + /** + * Encodes the specified InsightReference message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Recommendation.InsightReference.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1.Recommendation.InsightReference + * @static + * @param {google.cloud.recommender.v1.Recommendation.IInsightReference} message InsightReference message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InsightReference.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an InsightReference message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1.Recommendation.InsightReference + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1.Recommendation.InsightReference} InsightReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InsightReference.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Recommendation.InsightReference(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.insight = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an InsightReference message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1.Recommendation.InsightReference + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1.Recommendation.InsightReference} InsightReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InsightReference.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an InsightReference message. + * @function verify + * @memberof google.cloud.recommender.v1.Recommendation.InsightReference + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + InsightReference.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.insight != null && message.hasOwnProperty("insight")) + if (!$util.isString(message.insight)) + return "insight: string expected"; + return null; + }; + + /** + * Creates an InsightReference message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1.Recommendation.InsightReference + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1.Recommendation.InsightReference} InsightReference + */ + InsightReference.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.Recommendation.InsightReference) + return object; + var message = new $root.google.cloud.recommender.v1.Recommendation.InsightReference(); + if (object.insight != null) + message.insight = String(object.insight); + return message; + }; + + /** + * Creates a plain object from an InsightReference message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1.Recommendation.InsightReference + * @static + * @param {google.cloud.recommender.v1.Recommendation.InsightReference} message InsightReference + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + InsightReference.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.insight = ""; + if (message.insight != null && message.hasOwnProperty("insight")) + object.insight = message.insight; + return object; + }; + + /** + * Converts this InsightReference to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1.Recommendation.InsightReference + * @instance + * @returns {Object.} JSON object + */ + InsightReference.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return InsightReference; + })(); + + return Recommendation; })(); - v1.Operation = (function() { + v1.RecommendationContent = (function() { /** - * Properties of an Operation. + * Properties of a RecommendationContent. * @memberof google.cloud.recommender.v1 - * @interface IOperation - * @property {string|null} [action] Operation action - * @property {string|null} [resourceType] Operation resourceType - * @property {string|null} [resource] Operation resource - * @property {string|null} [path] Operation path - * @property {string|null} [sourceResource] Operation sourceResource - * @property {string|null} [sourcePath] Operation sourcePath - * @property {google.protobuf.IValue|null} [value] Operation value - * @property {google.cloud.recommender.v1.IValueMatcher|null} [valueMatcher] Operation valueMatcher - * @property {Object.|null} [pathFilters] Operation pathFilters - * @property {Object.|null} [pathValueMatchers] Operation pathValueMatchers + * @interface IRecommendationContent + * @property {Array.|null} [operationGroups] RecommendationContent operationGroups */ /** - * Constructs a new Operation. + * Constructs a new RecommendationContent. * @memberof google.cloud.recommender.v1 - * @classdesc Represents an Operation. - * @implements IOperation + * @classdesc Represents a RecommendationContent. + * @implements IRecommendationContent * @constructor - * @param {google.cloud.recommender.v1.IOperation=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IRecommendationContent=} [properties] Properties to set */ - function Operation(properties) { - this.pathFilters = {}; - this.pathValueMatchers = {}; + function RecommendationContent(properties) { + this.operationGroups = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -924,222 +1703,78 @@ } /** - * Operation action. - * @member {string} action - * @memberof google.cloud.recommender.v1.Operation - * @instance - */ - Operation.prototype.action = ""; - - /** - * Operation resourceType. - * @member {string} resourceType - * @memberof google.cloud.recommender.v1.Operation - * @instance - */ - Operation.prototype.resourceType = ""; - - /** - * Operation resource. - * @member {string} resource - * @memberof google.cloud.recommender.v1.Operation - * @instance - */ - Operation.prototype.resource = ""; - - /** - * Operation path. - * @member {string} path - * @memberof google.cloud.recommender.v1.Operation - * @instance - */ - Operation.prototype.path = ""; - - /** - * Operation sourceResource. - * @member {string} sourceResource - * @memberof google.cloud.recommender.v1.Operation - * @instance - */ - Operation.prototype.sourceResource = ""; - - /** - * Operation sourcePath. - * @member {string} sourcePath - * @memberof google.cloud.recommender.v1.Operation - * @instance - */ - Operation.prototype.sourcePath = ""; - - /** - * Operation value. - * @member {google.protobuf.IValue|null|undefined} value - * @memberof google.cloud.recommender.v1.Operation - * @instance - */ - Operation.prototype.value = null; - - /** - * Operation valueMatcher. - * @member {google.cloud.recommender.v1.IValueMatcher|null|undefined} valueMatcher - * @memberof google.cloud.recommender.v1.Operation - * @instance - */ - Operation.prototype.valueMatcher = null; - - /** - * Operation pathFilters. - * @member {Object.} pathFilters - * @memberof google.cloud.recommender.v1.Operation - * @instance - */ - Operation.prototype.pathFilters = $util.emptyObject; - - /** - * Operation pathValueMatchers. - * @member {Object.} pathValueMatchers - * @memberof google.cloud.recommender.v1.Operation - * @instance - */ - Operation.prototype.pathValueMatchers = $util.emptyObject; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - /** - * Operation pathValue. - * @member {"value"|"valueMatcher"|undefined} pathValue - * @memberof google.cloud.recommender.v1.Operation + * RecommendationContent operationGroups. + * @member {Array.} operationGroups + * @memberof google.cloud.recommender.v1.RecommendationContent * @instance */ - Object.defineProperty(Operation.prototype, "pathValue", { - get: $util.oneOfGetter($oneOfFields = ["value", "valueMatcher"]), - set: $util.oneOfSetter($oneOfFields) - }); + RecommendationContent.prototype.operationGroups = $util.emptyArray; /** - * Creates a new Operation instance using the specified properties. + * Creates a new RecommendationContent instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1.Operation + * @memberof google.cloud.recommender.v1.RecommendationContent * @static - * @param {google.cloud.recommender.v1.IOperation=} [properties] Properties to set - * @returns {google.cloud.recommender.v1.Operation} Operation instance + * @param {google.cloud.recommender.v1.IRecommendationContent=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.RecommendationContent} RecommendationContent instance */ - Operation.create = function create(properties) { - return new Operation(properties); + RecommendationContent.create = function create(properties) { + return new RecommendationContent(properties); }; /** - * Encodes the specified Operation message. Does not implicitly {@link google.cloud.recommender.v1.Operation.verify|verify} messages. + * Encodes the specified RecommendationContent message. Does not implicitly {@link google.cloud.recommender.v1.RecommendationContent.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1.Operation + * @memberof google.cloud.recommender.v1.RecommendationContent * @static - * @param {google.cloud.recommender.v1.IOperation} message Operation message or plain object to encode + * @param {google.cloud.recommender.v1.IRecommendationContent} message RecommendationContent message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Operation.encode = function encode(message, writer) { + RecommendationContent.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.action != null && Object.hasOwnProperty.call(message, "action")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.action); - if (message.resourceType != null && Object.hasOwnProperty.call(message, "resourceType")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.resourceType); - if (message.resource != null && Object.hasOwnProperty.call(message, "resource")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.resource); - if (message.path != null && Object.hasOwnProperty.call(message, "path")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.path); - if (message.sourceResource != null && Object.hasOwnProperty.call(message, "sourceResource")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.sourceResource); - if (message.sourcePath != null && Object.hasOwnProperty.call(message, "sourcePath")) - writer.uint32(/* id 6, wireType 2 =*/50).string(message.sourcePath); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - $root.google.protobuf.Value.encode(message.value, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.pathFilters != null && Object.hasOwnProperty.call(message, "pathFilters")) - for (var keys = Object.keys(message.pathFilters), i = 0; i < keys.length; ++i) { - writer.uint32(/* id 8, wireType 2 =*/66).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); - $root.google.protobuf.Value.encode(message.pathFilters[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); - } - if (message.valueMatcher != null && Object.hasOwnProperty.call(message, "valueMatcher")) - $root.google.cloud.recommender.v1.ValueMatcher.encode(message.valueMatcher, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); - if (message.pathValueMatchers != null && Object.hasOwnProperty.call(message, "pathValueMatchers")) - for (var keys = Object.keys(message.pathValueMatchers), i = 0; i < keys.length; ++i) { - writer.uint32(/* id 11, wireType 2 =*/90).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); - $root.google.cloud.recommender.v1.ValueMatcher.encode(message.pathValueMatchers[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); - } + if (message.operationGroups != null && message.operationGroups.length) + for (var i = 0; i < message.operationGroups.length; ++i) + $root.google.cloud.recommender.v1.OperationGroup.encode(message.operationGroups[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Operation.verify|verify} messages. + * Encodes the specified RecommendationContent message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.RecommendationContent.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1.Operation + * @memberof google.cloud.recommender.v1.RecommendationContent * @static - * @param {google.cloud.recommender.v1.IOperation} message Operation message or plain object to encode + * @param {google.cloud.recommender.v1.IRecommendationContent} message RecommendationContent message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Operation.encodeDelimited = function encodeDelimited(message, writer) { + RecommendationContent.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an Operation message from the specified reader or buffer. + * Decodes a RecommendationContent message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1.Operation + * @memberof google.cloud.recommender.v1.RecommendationContent * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1.Operation} Operation + * @returns {google.cloud.recommender.v1.RecommendationContent} RecommendationContent * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Operation.decode = function decode(reader, length) { + RecommendationContent.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Operation(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.RecommendationContent(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.action = reader.string(); - break; case 2: - message.resourceType = reader.string(); - break; - case 3: - message.resource = reader.string(); - break; - case 4: - message.path = reader.string(); - break; - case 5: - message.sourceResource = reader.string(); - break; - case 6: - message.sourcePath = reader.string(); - break; - case 7: - message.value = $root.google.protobuf.Value.decode(reader, reader.uint32()); - break; - case 10: - message.valueMatcher = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); - break; - case 8: - reader.skip().pos++; - if (message.pathFilters === $util.emptyObject) - message.pathFilters = {}; - key = reader.string(); - reader.pos++; - message.pathFilters[key] = $root.google.protobuf.Value.decode(reader, reader.uint32()); - break; - case 11: - reader.skip().pos++; - if (message.pathValueMatchers === $util.emptyObject) - message.pathValueMatchers = {}; - key = reader.string(); - reader.pos++; - message.pathValueMatchers[key] = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); + if (!(message.operationGroups && message.operationGroups.length)) + message.operationGroups = []; + message.operationGroups.push($root.google.cloud.recommender.v1.OperationGroup.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -1150,242 +1785,125 @@ }; /** - * Decodes an Operation message from the specified reader or buffer, length delimited. + * Decodes a RecommendationContent message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1.Operation + * @memberof google.cloud.recommender.v1.RecommendationContent * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1.Operation} Operation + * @returns {google.cloud.recommender.v1.RecommendationContent} RecommendationContent * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Operation.decodeDelimited = function decodeDelimited(reader) { + RecommendationContent.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an Operation message. + * Verifies a RecommendationContent message. * @function verify - * @memberof google.cloud.recommender.v1.Operation + * @memberof google.cloud.recommender.v1.RecommendationContent * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Operation.verify = function verify(message) { + RecommendationContent.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.action != null && message.hasOwnProperty("action")) - if (!$util.isString(message.action)) - return "action: string expected"; - if (message.resourceType != null && message.hasOwnProperty("resourceType")) - if (!$util.isString(message.resourceType)) - return "resourceType: string expected"; - if (message.resource != null && message.hasOwnProperty("resource")) - if (!$util.isString(message.resource)) - return "resource: string expected"; - if (message.path != null && message.hasOwnProperty("path")) - if (!$util.isString(message.path)) - return "path: string expected"; - if (message.sourceResource != null && message.hasOwnProperty("sourceResource")) - if (!$util.isString(message.sourceResource)) - return "sourceResource: string expected"; - if (message.sourcePath != null && message.hasOwnProperty("sourcePath")) - if (!$util.isString(message.sourcePath)) - return "sourcePath: string expected"; - if (message.value != null && message.hasOwnProperty("value")) { - properties.pathValue = 1; - { - var error = $root.google.protobuf.Value.verify(message.value); - if (error) - return "value." + error; - } - } - if (message.valueMatcher != null && message.hasOwnProperty("valueMatcher")) { - if (properties.pathValue === 1) - return "pathValue: multiple values"; - properties.pathValue = 1; - { - var error = $root.google.cloud.recommender.v1.ValueMatcher.verify(message.valueMatcher); - if (error) - return "valueMatcher." + error; - } - } - if (message.pathFilters != null && message.hasOwnProperty("pathFilters")) { - if (!$util.isObject(message.pathFilters)) - return "pathFilters: object expected"; - var key = Object.keys(message.pathFilters); - for (var i = 0; i < key.length; ++i) { - var error = $root.google.protobuf.Value.verify(message.pathFilters[key[i]]); - if (error) - return "pathFilters." + error; - } - } - if (message.pathValueMatchers != null && message.hasOwnProperty("pathValueMatchers")) { - if (!$util.isObject(message.pathValueMatchers)) - return "pathValueMatchers: object expected"; - var key = Object.keys(message.pathValueMatchers); - for (var i = 0; i < key.length; ++i) { - var error = $root.google.cloud.recommender.v1.ValueMatcher.verify(message.pathValueMatchers[key[i]]); + if (message.operationGroups != null && message.hasOwnProperty("operationGroups")) { + if (!Array.isArray(message.operationGroups)) + return "operationGroups: array expected"; + for (var i = 0; i < message.operationGroups.length; ++i) { + var error = $root.google.cloud.recommender.v1.OperationGroup.verify(message.operationGroups[i]); if (error) - return "pathValueMatchers." + error; + return "operationGroups." + error; } } return null; }; /** - * Creates an Operation message from a plain object. Also converts values to their respective internal types. + * Creates a RecommendationContent message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1.Operation + * @memberof google.cloud.recommender.v1.RecommendationContent * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1.Operation} Operation + * @returns {google.cloud.recommender.v1.RecommendationContent} RecommendationContent */ - Operation.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1.Operation) + RecommendationContent.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.RecommendationContent) return object; - var message = new $root.google.cloud.recommender.v1.Operation(); - if (object.action != null) - message.action = String(object.action); - if (object.resourceType != null) - message.resourceType = String(object.resourceType); - if (object.resource != null) - message.resource = String(object.resource); - if (object.path != null) - message.path = String(object.path); - if (object.sourceResource != null) - message.sourceResource = String(object.sourceResource); - if (object.sourcePath != null) - message.sourcePath = String(object.sourcePath); - if (object.value != null) { - if (typeof object.value !== "object") - throw TypeError(".google.cloud.recommender.v1.Operation.value: object expected"); - message.value = $root.google.protobuf.Value.fromObject(object.value); - } - if (object.valueMatcher != null) { - if (typeof object.valueMatcher !== "object") - throw TypeError(".google.cloud.recommender.v1.Operation.valueMatcher: object expected"); - message.valueMatcher = $root.google.cloud.recommender.v1.ValueMatcher.fromObject(object.valueMatcher); - } - if (object.pathFilters) { - if (typeof object.pathFilters !== "object") - throw TypeError(".google.cloud.recommender.v1.Operation.pathFilters: object expected"); - message.pathFilters = {}; - for (var keys = Object.keys(object.pathFilters), i = 0; i < keys.length; ++i) { - if (typeof object.pathFilters[keys[i]] !== "object") - throw TypeError(".google.cloud.recommender.v1.Operation.pathFilters: object expected"); - message.pathFilters[keys[i]] = $root.google.protobuf.Value.fromObject(object.pathFilters[keys[i]]); - } - } - if (object.pathValueMatchers) { - if (typeof object.pathValueMatchers !== "object") - throw TypeError(".google.cloud.recommender.v1.Operation.pathValueMatchers: object expected"); - message.pathValueMatchers = {}; - for (var keys = Object.keys(object.pathValueMatchers), i = 0; i < keys.length; ++i) { - if (typeof object.pathValueMatchers[keys[i]] !== "object") - throw TypeError(".google.cloud.recommender.v1.Operation.pathValueMatchers: object expected"); - message.pathValueMatchers[keys[i]] = $root.google.cloud.recommender.v1.ValueMatcher.fromObject(object.pathValueMatchers[keys[i]]); + var message = new $root.google.cloud.recommender.v1.RecommendationContent(); + if (object.operationGroups) { + if (!Array.isArray(object.operationGroups)) + throw TypeError(".google.cloud.recommender.v1.RecommendationContent.operationGroups: array expected"); + message.operationGroups = []; + for (var i = 0; i < object.operationGroups.length; ++i) { + if (typeof object.operationGroups[i] !== "object") + throw TypeError(".google.cloud.recommender.v1.RecommendationContent.operationGroups: object expected"); + message.operationGroups[i] = $root.google.cloud.recommender.v1.OperationGroup.fromObject(object.operationGroups[i]); } } return message; }; /** - * Creates a plain object from an Operation message. Also converts values to other types if specified. + * Creates a plain object from a RecommendationContent message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1.Operation + * @memberof google.cloud.recommender.v1.RecommendationContent * @static - * @param {google.cloud.recommender.v1.Operation} message Operation + * @param {google.cloud.recommender.v1.RecommendationContent} message RecommendationContent * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Operation.toObject = function toObject(message, options) { + RecommendationContent.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.objects || options.defaults) { - object.pathFilters = {}; - object.pathValueMatchers = {}; - } - if (options.defaults) { - object.action = ""; - object.resourceType = ""; - object.resource = ""; - object.path = ""; - object.sourceResource = ""; - object.sourcePath = ""; - } - if (message.action != null && message.hasOwnProperty("action")) - object.action = message.action; - if (message.resourceType != null && message.hasOwnProperty("resourceType")) - object.resourceType = message.resourceType; - if (message.resource != null && message.hasOwnProperty("resource")) - object.resource = message.resource; - if (message.path != null && message.hasOwnProperty("path")) - object.path = message.path; - if (message.sourceResource != null && message.hasOwnProperty("sourceResource")) - object.sourceResource = message.sourceResource; - if (message.sourcePath != null && message.hasOwnProperty("sourcePath")) - object.sourcePath = message.sourcePath; - if (message.value != null && message.hasOwnProperty("value")) { - object.value = $root.google.protobuf.Value.toObject(message.value, options); - if (options.oneofs) - object.pathValue = "value"; - } - var keys2; - if (message.pathFilters && (keys2 = Object.keys(message.pathFilters)).length) { - object.pathFilters = {}; - for (var j = 0; j < keys2.length; ++j) - object.pathFilters[keys2[j]] = $root.google.protobuf.Value.toObject(message.pathFilters[keys2[j]], options); - } - if (message.valueMatcher != null && message.hasOwnProperty("valueMatcher")) { - object.valueMatcher = $root.google.cloud.recommender.v1.ValueMatcher.toObject(message.valueMatcher, options); - if (options.oneofs) - object.pathValue = "valueMatcher"; - } - if (message.pathValueMatchers && (keys2 = Object.keys(message.pathValueMatchers)).length) { - object.pathValueMatchers = {}; - for (var j = 0; j < keys2.length; ++j) - object.pathValueMatchers[keys2[j]] = $root.google.cloud.recommender.v1.ValueMatcher.toObject(message.pathValueMatchers[keys2[j]], options); + if (options.arrays || options.defaults) + object.operationGroups = []; + if (message.operationGroups && message.operationGroups.length) { + object.operationGroups = []; + for (var j = 0; j < message.operationGroups.length; ++j) + object.operationGroups[j] = $root.google.cloud.recommender.v1.OperationGroup.toObject(message.operationGroups[j], options); } return object; }; /** - * Converts this Operation to JSON. + * Converts this RecommendationContent to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1.Operation + * @memberof google.cloud.recommender.v1.RecommendationContent * @instance * @returns {Object.} JSON object */ - Operation.prototype.toJSON = function toJSON() { + RecommendationContent.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return Operation; + return RecommendationContent; })(); - v1.ValueMatcher = (function() { + v1.OperationGroup = (function() { /** - * Properties of a ValueMatcher. + * Properties of an OperationGroup. * @memberof google.cloud.recommender.v1 - * @interface IValueMatcher - * @property {string|null} [matchesPattern] ValueMatcher matchesPattern + * @interface IOperationGroup + * @property {Array.|null} [operations] OperationGroup operations */ /** - * Constructs a new ValueMatcher. + * Constructs a new OperationGroup. * @memberof google.cloud.recommender.v1 - * @classdesc Represents a ValueMatcher. - * @implements IValueMatcher + * @classdesc Represents an OperationGroup. + * @implements IOperationGroup * @constructor - * @param {google.cloud.recommender.v1.IValueMatcher=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IOperationGroup=} [properties] Properties to set */ - function ValueMatcher(properties) { + function OperationGroup(properties) { + this.operations = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -1393,89 +1911,78 @@ } /** - * ValueMatcher matchesPattern. - * @member {string} matchesPattern - * @memberof google.cloud.recommender.v1.ValueMatcher - * @instance - */ - ValueMatcher.prototype.matchesPattern = ""; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - /** - * ValueMatcher matchVariant. - * @member {"matchesPattern"|undefined} matchVariant - * @memberof google.cloud.recommender.v1.ValueMatcher + * OperationGroup operations. + * @member {Array.} operations + * @memberof google.cloud.recommender.v1.OperationGroup * @instance */ - Object.defineProperty(ValueMatcher.prototype, "matchVariant", { - get: $util.oneOfGetter($oneOfFields = ["matchesPattern"]), - set: $util.oneOfSetter($oneOfFields) - }); + OperationGroup.prototype.operations = $util.emptyArray; /** - * Creates a new ValueMatcher instance using the specified properties. + * Creates a new OperationGroup instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1.ValueMatcher + * @memberof google.cloud.recommender.v1.OperationGroup * @static - * @param {google.cloud.recommender.v1.IValueMatcher=} [properties] Properties to set - * @returns {google.cloud.recommender.v1.ValueMatcher} ValueMatcher instance + * @param {google.cloud.recommender.v1.IOperationGroup=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.OperationGroup} OperationGroup instance */ - ValueMatcher.create = function create(properties) { - return new ValueMatcher(properties); + OperationGroup.create = function create(properties) { + return new OperationGroup(properties); }; /** - * Encodes the specified ValueMatcher message. Does not implicitly {@link google.cloud.recommender.v1.ValueMatcher.verify|verify} messages. + * Encodes the specified OperationGroup message. Does not implicitly {@link google.cloud.recommender.v1.OperationGroup.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1.ValueMatcher + * @memberof google.cloud.recommender.v1.OperationGroup * @static - * @param {google.cloud.recommender.v1.IValueMatcher} message ValueMatcher message or plain object to encode + * @param {google.cloud.recommender.v1.IOperationGroup} message OperationGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ValueMatcher.encode = function encode(message, writer) { + OperationGroup.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.matchesPattern != null && Object.hasOwnProperty.call(message, "matchesPattern")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.matchesPattern); + if (message.operations != null && message.operations.length) + for (var i = 0; i < message.operations.length; ++i) + $root.google.cloud.recommender.v1.Operation.encode(message.operations[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified ValueMatcher message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.ValueMatcher.verify|verify} messages. + * Encodes the specified OperationGroup message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.OperationGroup.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1.ValueMatcher + * @memberof google.cloud.recommender.v1.OperationGroup * @static - * @param {google.cloud.recommender.v1.IValueMatcher} message ValueMatcher message or plain object to encode + * @param {google.cloud.recommender.v1.IOperationGroup} message OperationGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ValueMatcher.encodeDelimited = function encodeDelimited(message, writer) { + OperationGroup.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ValueMatcher message from the specified reader or buffer. + * Decodes an OperationGroup message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1.ValueMatcher + * @memberof google.cloud.recommender.v1.OperationGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1.ValueMatcher} ValueMatcher + * @returns {google.cloud.recommender.v1.OperationGroup} OperationGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ValueMatcher.decode = function decode(reader, length) { + OperationGroup.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.ValueMatcher(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.OperationGroup(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.matchesPattern = reader.string(); + if (!(message.operations && message.operations.length)) + message.operations = []; + message.operations.push($root.google.cloud.recommender.v1.Operation.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -1486,112 +1993,135 @@ }; /** - * Decodes a ValueMatcher message from the specified reader or buffer, length delimited. + * Decodes an OperationGroup message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1.ValueMatcher + * @memberof google.cloud.recommender.v1.OperationGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1.ValueMatcher} ValueMatcher + * @returns {google.cloud.recommender.v1.OperationGroup} OperationGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ValueMatcher.decodeDelimited = function decodeDelimited(reader) { + OperationGroup.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ValueMatcher message. + * Verifies an OperationGroup message. * @function verify - * @memberof google.cloud.recommender.v1.ValueMatcher + * @memberof google.cloud.recommender.v1.OperationGroup * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ValueMatcher.verify = function verify(message) { + OperationGroup.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.matchesPattern != null && message.hasOwnProperty("matchesPattern")) { - properties.matchVariant = 1; - if (!$util.isString(message.matchesPattern)) - return "matchesPattern: string expected"; + if (message.operations != null && message.hasOwnProperty("operations")) { + if (!Array.isArray(message.operations)) + return "operations: array expected"; + for (var i = 0; i < message.operations.length; ++i) { + var error = $root.google.cloud.recommender.v1.Operation.verify(message.operations[i]); + if (error) + return "operations." + error; + } } return null; }; /** - * Creates a ValueMatcher message from a plain object. Also converts values to their respective internal types. + * Creates an OperationGroup message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1.ValueMatcher + * @memberof google.cloud.recommender.v1.OperationGroup * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1.ValueMatcher} ValueMatcher + * @returns {google.cloud.recommender.v1.OperationGroup} OperationGroup */ - ValueMatcher.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1.ValueMatcher) + OperationGroup.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.OperationGroup) return object; - var message = new $root.google.cloud.recommender.v1.ValueMatcher(); - if (object.matchesPattern != null) - message.matchesPattern = String(object.matchesPattern); + var message = new $root.google.cloud.recommender.v1.OperationGroup(); + if (object.operations) { + if (!Array.isArray(object.operations)) + throw TypeError(".google.cloud.recommender.v1.OperationGroup.operations: array expected"); + message.operations = []; + for (var i = 0; i < object.operations.length; ++i) { + if (typeof object.operations[i] !== "object") + throw TypeError(".google.cloud.recommender.v1.OperationGroup.operations: object expected"); + message.operations[i] = $root.google.cloud.recommender.v1.Operation.fromObject(object.operations[i]); + } + } return message; }; /** - * Creates a plain object from a ValueMatcher message. Also converts values to other types if specified. + * Creates a plain object from an OperationGroup message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1.ValueMatcher + * @memberof google.cloud.recommender.v1.OperationGroup * @static - * @param {google.cloud.recommender.v1.ValueMatcher} message ValueMatcher + * @param {google.cloud.recommender.v1.OperationGroup} message OperationGroup * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ValueMatcher.toObject = function toObject(message, options) { + OperationGroup.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.matchesPattern != null && message.hasOwnProperty("matchesPattern")) { - object.matchesPattern = message.matchesPattern; - if (options.oneofs) - object.matchVariant = "matchesPattern"; + if (options.arrays || options.defaults) + object.operations = []; + if (message.operations && message.operations.length) { + object.operations = []; + for (var j = 0; j < message.operations.length; ++j) + object.operations[j] = $root.google.cloud.recommender.v1.Operation.toObject(message.operations[j], options); } return object; }; /** - * Converts this ValueMatcher to JSON. + * Converts this OperationGroup to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1.ValueMatcher + * @memberof google.cloud.recommender.v1.OperationGroup * @instance * @returns {Object.} JSON object */ - ValueMatcher.prototype.toJSON = function toJSON() { + OperationGroup.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return ValueMatcher; + return OperationGroup; })(); - v1.CostProjection = (function() { + v1.Operation = (function() { /** - * Properties of a CostProjection. + * Properties of an Operation. * @memberof google.cloud.recommender.v1 - * @interface ICostProjection - * @property {google.type.IMoney|null} [cost] CostProjection cost - * @property {google.protobuf.IDuration|null} [duration] CostProjection duration + * @interface IOperation + * @property {string|null} [action] Operation action + * @property {string|null} [resourceType] Operation resourceType + * @property {string|null} [resource] Operation resource + * @property {string|null} [path] Operation path + * @property {string|null} [sourceResource] Operation sourceResource + * @property {string|null} [sourcePath] Operation sourcePath + * @property {google.protobuf.IValue|null} [value] Operation value + * @property {google.cloud.recommender.v1.IValueMatcher|null} [valueMatcher] Operation valueMatcher + * @property {Object.|null} [pathFilters] Operation pathFilters + * @property {Object.|null} [pathValueMatchers] Operation pathValueMatchers */ /** - * Constructs a new CostProjection. + * Constructs a new Operation. * @memberof google.cloud.recommender.v1 - * @classdesc Represents a CostProjection. - * @implements ICostProjection + * @classdesc Represents an Operation. + * @implements IOperation * @constructor - * @param {google.cloud.recommender.v1.ICostProjection=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IOperation=} [properties] Properties to set */ - function CostProjection(properties) { + function Operation(properties) { + this.pathFilters = {}; + this.pathValueMatchers = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -1599,322 +2129,222 @@ } /** - * CostProjection cost. - * @member {google.type.IMoney|null|undefined} cost - * @memberof google.cloud.recommender.v1.CostProjection + * Operation action. + * @member {string} action + * @memberof google.cloud.recommender.v1.Operation * @instance */ - CostProjection.prototype.cost = null; + Operation.prototype.action = ""; /** - * CostProjection duration. - * @member {google.protobuf.IDuration|null|undefined} duration - * @memberof google.cloud.recommender.v1.CostProjection + * Operation resourceType. + * @member {string} resourceType + * @memberof google.cloud.recommender.v1.Operation * @instance */ - CostProjection.prototype.duration = null; + Operation.prototype.resourceType = ""; /** - * Creates a new CostProjection instance using the specified properties. - * @function create - * @memberof google.cloud.recommender.v1.CostProjection - * @static - * @param {google.cloud.recommender.v1.ICostProjection=} [properties] Properties to set - * @returns {google.cloud.recommender.v1.CostProjection} CostProjection instance + * Operation resource. + * @member {string} resource + * @memberof google.cloud.recommender.v1.Operation + * @instance */ - CostProjection.create = function create(properties) { - return new CostProjection(properties); - }; + Operation.prototype.resource = ""; /** - * Encodes the specified CostProjection message. Does not implicitly {@link google.cloud.recommender.v1.CostProjection.verify|verify} messages. - * @function encode - * @memberof google.cloud.recommender.v1.CostProjection - * @static - * @param {google.cloud.recommender.v1.ICostProjection} message CostProjection message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer + * Operation path. + * @member {string} path + * @memberof google.cloud.recommender.v1.Operation + * @instance */ - CostProjection.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.cost != null && Object.hasOwnProperty.call(message, "cost")) - $root.google.type.Money.encode(message.cost, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.duration != null && Object.hasOwnProperty.call(message, "duration")) - $root.google.protobuf.Duration.encode(message.duration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + Operation.prototype.path = ""; /** - * Encodes the specified CostProjection message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.CostProjection.verify|verify} messages. - * @function encodeDelimited - * @memberof google.cloud.recommender.v1.CostProjection - * @static - * @param {google.cloud.recommender.v1.ICostProjection} message CostProjection message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer + * Operation sourceResource. + * @member {string} sourceResource + * @memberof google.cloud.recommender.v1.Operation + * @instance */ - CostProjection.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a CostProjection message from the specified reader or buffer. - * @function decode - * @memberof google.cloud.recommender.v1.CostProjection - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1.CostProjection} CostProjection - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CostProjection.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.CostProjection(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.cost = $root.google.type.Money.decode(reader, reader.uint32()); - break; - case 2: - message.duration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a CostProjection message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.cloud.recommender.v1.CostProjection - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1.CostProjection} CostProjection - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CostProjection.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a CostProjection message. - * @function verify - * @memberof google.cloud.recommender.v1.CostProjection - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - CostProjection.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.cost != null && message.hasOwnProperty("cost")) { - var error = $root.google.type.Money.verify(message.cost); - if (error) - return "cost." + error; - } - if (message.duration != null && message.hasOwnProperty("duration")) { - var error = $root.google.protobuf.Duration.verify(message.duration); - if (error) - return "duration." + error; - } - return null; - }; - - /** - * Creates a CostProjection message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.cloud.recommender.v1.CostProjection - * @static - * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1.CostProjection} CostProjection - */ - CostProjection.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1.CostProjection) - return object; - var message = new $root.google.cloud.recommender.v1.CostProjection(); - if (object.cost != null) { - if (typeof object.cost !== "object") - throw TypeError(".google.cloud.recommender.v1.CostProjection.cost: object expected"); - message.cost = $root.google.type.Money.fromObject(object.cost); - } - if (object.duration != null) { - if (typeof object.duration !== "object") - throw TypeError(".google.cloud.recommender.v1.CostProjection.duration: object expected"); - message.duration = $root.google.protobuf.Duration.fromObject(object.duration); - } - return message; - }; - - /** - * Creates a plain object from a CostProjection message. Also converts values to other types if specified. - * @function toObject - * @memberof google.cloud.recommender.v1.CostProjection - * @static - * @param {google.cloud.recommender.v1.CostProjection} message CostProjection - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - CostProjection.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.cost = null; - object.duration = null; - } - if (message.cost != null && message.hasOwnProperty("cost")) - object.cost = $root.google.type.Money.toObject(message.cost, options); - if (message.duration != null && message.hasOwnProperty("duration")) - object.duration = $root.google.protobuf.Duration.toObject(message.duration, options); - return object; - }; + Operation.prototype.sourceResource = ""; /** - * Converts this CostProjection to JSON. - * @function toJSON - * @memberof google.cloud.recommender.v1.CostProjection + * Operation sourcePath. + * @member {string} sourcePath + * @memberof google.cloud.recommender.v1.Operation * @instance - * @returns {Object.} JSON object */ - CostProjection.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return CostProjection; - })(); - - v1.Impact = (function() { + Operation.prototype.sourcePath = ""; /** - * Properties of an Impact. - * @memberof google.cloud.recommender.v1 - * @interface IImpact - * @property {google.cloud.recommender.v1.Impact.Category|null} [category] Impact category - * @property {google.cloud.recommender.v1.ICostProjection|null} [costProjection] Impact costProjection + * Operation value. + * @member {google.protobuf.IValue|null|undefined} value + * @memberof google.cloud.recommender.v1.Operation + * @instance */ + Operation.prototype.value = null; /** - * Constructs a new Impact. - * @memberof google.cloud.recommender.v1 - * @classdesc Represents an Impact. - * @implements IImpact - * @constructor - * @param {google.cloud.recommender.v1.IImpact=} [properties] Properties to set + * Operation valueMatcher. + * @member {google.cloud.recommender.v1.IValueMatcher|null|undefined} valueMatcher + * @memberof google.cloud.recommender.v1.Operation + * @instance */ - function Impact(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]]; - } + Operation.prototype.valueMatcher = null; /** - * Impact category. - * @member {google.cloud.recommender.v1.Impact.Category} category - * @memberof google.cloud.recommender.v1.Impact + * Operation pathFilters. + * @member {Object.} pathFilters + * @memberof google.cloud.recommender.v1.Operation * @instance */ - Impact.prototype.category = 0; + Operation.prototype.pathFilters = $util.emptyObject; /** - * Impact costProjection. - * @member {google.cloud.recommender.v1.ICostProjection|null|undefined} costProjection - * @memberof google.cloud.recommender.v1.Impact + * Operation pathValueMatchers. + * @member {Object.} pathValueMatchers + * @memberof google.cloud.recommender.v1.Operation * @instance */ - Impact.prototype.costProjection = null; + Operation.prototype.pathValueMatchers = $util.emptyObject; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * Impact projection. - * @member {"costProjection"|undefined} projection - * @memberof google.cloud.recommender.v1.Impact + * Operation pathValue. + * @member {"value"|"valueMatcher"|undefined} pathValue + * @memberof google.cloud.recommender.v1.Operation * @instance */ - Object.defineProperty(Impact.prototype, "projection", { - get: $util.oneOfGetter($oneOfFields = ["costProjection"]), + Object.defineProperty(Operation.prototype, "pathValue", { + get: $util.oneOfGetter($oneOfFields = ["value", "valueMatcher"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new Impact instance using the specified properties. + * Creates a new Operation instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1.Impact + * @memberof google.cloud.recommender.v1.Operation * @static - * @param {google.cloud.recommender.v1.IImpact=} [properties] Properties to set - * @returns {google.cloud.recommender.v1.Impact} Impact instance + * @param {google.cloud.recommender.v1.IOperation=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.Operation} Operation instance */ - Impact.create = function create(properties) { - return new Impact(properties); + Operation.create = function create(properties) { + return new Operation(properties); }; /** - * Encodes the specified Impact message. Does not implicitly {@link google.cloud.recommender.v1.Impact.verify|verify} messages. + * Encodes the specified Operation message. Does not implicitly {@link google.cloud.recommender.v1.Operation.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1.Impact + * @memberof google.cloud.recommender.v1.Operation * @static - * @param {google.cloud.recommender.v1.IImpact} message Impact message or plain object to encode + * @param {google.cloud.recommender.v1.IOperation} message Operation message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Impact.encode = function encode(message, writer) { + Operation.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.category != null && Object.hasOwnProperty.call(message, "category")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.category); - if (message.costProjection != null && Object.hasOwnProperty.call(message, "costProjection")) - $root.google.cloud.recommender.v1.CostProjection.encode(message.costProjection, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + if (message.action != null && Object.hasOwnProperty.call(message, "action")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.action); + if (message.resourceType != null && Object.hasOwnProperty.call(message, "resourceType")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.resourceType); + if (message.resource != null && Object.hasOwnProperty.call(message, "resource")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.resource); + if (message.path != null && Object.hasOwnProperty.call(message, "path")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.path); + if (message.sourceResource != null && Object.hasOwnProperty.call(message, "sourceResource")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.sourceResource); + if (message.sourcePath != null && Object.hasOwnProperty.call(message, "sourcePath")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.sourcePath); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + $root.google.protobuf.Value.encode(message.value, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.pathFilters != null && Object.hasOwnProperty.call(message, "pathFilters")) + for (var keys = Object.keys(message.pathFilters), i = 0; i < keys.length; ++i) { + writer.uint32(/* id 8, wireType 2 =*/66).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); + $root.google.protobuf.Value.encode(message.pathFilters[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); + } + if (message.valueMatcher != null && Object.hasOwnProperty.call(message, "valueMatcher")) + $root.google.cloud.recommender.v1.ValueMatcher.encode(message.valueMatcher, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + if (message.pathValueMatchers != null && Object.hasOwnProperty.call(message, "pathValueMatchers")) + for (var keys = Object.keys(message.pathValueMatchers), i = 0; i < keys.length; ++i) { + writer.uint32(/* id 11, wireType 2 =*/90).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); + $root.google.cloud.recommender.v1.ValueMatcher.encode(message.pathValueMatchers[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); + } return writer; }; /** - * Encodes the specified Impact message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Impact.verify|verify} messages. + * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Operation.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1.Impact + * @memberof google.cloud.recommender.v1.Operation * @static - * @param {google.cloud.recommender.v1.IImpact} message Impact message or plain object to encode + * @param {google.cloud.recommender.v1.IOperation} message Operation message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Impact.encodeDelimited = function encodeDelimited(message, writer) { + Operation.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an Impact message from the specified reader or buffer. + * Decodes an Operation message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1.Impact + * @memberof google.cloud.recommender.v1.Operation * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1.Impact} Impact + * @returns {google.cloud.recommender.v1.Operation} Operation * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Impact.decode = function decode(reader, length) { + Operation.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Impact(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Operation(), key; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.category = reader.int32(); + message.action = reader.string(); break; - case 100: - message.costProjection = $root.google.cloud.recommender.v1.CostProjection.decode(reader, reader.uint32()); + case 2: + message.resourceType = reader.string(); + break; + case 3: + message.resource = reader.string(); + break; + case 4: + message.path = reader.string(); + break; + case 5: + message.sourceResource = reader.string(); + break; + case 6: + message.sourcePath = reader.string(); + break; + case 7: + message.value = $root.google.protobuf.Value.decode(reader, reader.uint32()); + break; + case 10: + message.valueMatcher = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); + break; + case 8: + reader.skip().pos++; + if (message.pathFilters === $util.emptyObject) + message.pathFilters = {}; + key = reader.string(); + reader.pos++; + message.pathFilters[key] = $root.google.protobuf.Value.decode(reader, reader.uint32()); + break; + case 11: + reader.skip().pos++; + if (message.pathValueMatchers === $util.emptyObject) + message.pathValueMatchers = {}; + key = reader.string(); + reader.pos++; + message.pathValueMatchers[key] = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -1925,176 +2355,242 @@ }; /** - * Decodes an Impact message from the specified reader or buffer, length delimited. + * Decodes an Operation message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1.Impact + * @memberof google.cloud.recommender.v1.Operation * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1.Impact} Impact + * @returns {google.cloud.recommender.v1.Operation} Operation * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Impact.decodeDelimited = function decodeDelimited(reader) { + Operation.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an Impact message. + * Verifies an Operation message. * @function verify - * @memberof google.cloud.recommender.v1.Impact + * @memberof google.cloud.recommender.v1.Operation * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Impact.verify = function verify(message) { + Operation.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.category != null && message.hasOwnProperty("category")) - switch (message.category) { - default: - return "category: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - break; + if (message.action != null && message.hasOwnProperty("action")) + if (!$util.isString(message.action)) + return "action: string expected"; + if (message.resourceType != null && message.hasOwnProperty("resourceType")) + if (!$util.isString(message.resourceType)) + return "resourceType: string expected"; + if (message.resource != null && message.hasOwnProperty("resource")) + if (!$util.isString(message.resource)) + return "resource: string expected"; + if (message.path != null && message.hasOwnProperty("path")) + if (!$util.isString(message.path)) + return "path: string expected"; + if (message.sourceResource != null && message.hasOwnProperty("sourceResource")) + if (!$util.isString(message.sourceResource)) + return "sourceResource: string expected"; + if (message.sourcePath != null && message.hasOwnProperty("sourcePath")) + if (!$util.isString(message.sourcePath)) + return "sourcePath: string expected"; + if (message.value != null && message.hasOwnProperty("value")) { + properties.pathValue = 1; + { + var error = $root.google.protobuf.Value.verify(message.value); + if (error) + return "value." + error; } - if (message.costProjection != null && message.hasOwnProperty("costProjection")) { - properties.projection = 1; + } + if (message.valueMatcher != null && message.hasOwnProperty("valueMatcher")) { + if (properties.pathValue === 1) + return "pathValue: multiple values"; + properties.pathValue = 1; { - var error = $root.google.cloud.recommender.v1.CostProjection.verify(message.costProjection); + var error = $root.google.cloud.recommender.v1.ValueMatcher.verify(message.valueMatcher); if (error) - return "costProjection." + error; + return "valueMatcher." + error; + } + } + if (message.pathFilters != null && message.hasOwnProperty("pathFilters")) { + if (!$util.isObject(message.pathFilters)) + return "pathFilters: object expected"; + var key = Object.keys(message.pathFilters); + for (var i = 0; i < key.length; ++i) { + var error = $root.google.protobuf.Value.verify(message.pathFilters[key[i]]); + if (error) + return "pathFilters." + error; + } + } + if (message.pathValueMatchers != null && message.hasOwnProperty("pathValueMatchers")) { + if (!$util.isObject(message.pathValueMatchers)) + return "pathValueMatchers: object expected"; + var key = Object.keys(message.pathValueMatchers); + for (var i = 0; i < key.length; ++i) { + var error = $root.google.cloud.recommender.v1.ValueMatcher.verify(message.pathValueMatchers[key[i]]); + if (error) + return "pathValueMatchers." + error; } } return null; }; /** - * Creates an Impact message from a plain object. Also converts values to their respective internal types. + * Creates an Operation message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1.Impact + * @memberof google.cloud.recommender.v1.Operation * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1.Impact} Impact + * @returns {google.cloud.recommender.v1.Operation} Operation */ - Impact.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1.Impact) + Operation.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.Operation) return object; - var message = new $root.google.cloud.recommender.v1.Impact(); - switch (object.category) { - case "CATEGORY_UNSPECIFIED": - case 0: - message.category = 0; - break; - case "COST": - case 1: - message.category = 1; - break; - case "SECURITY": - case 2: - message.category = 2; - break; - case "PERFORMANCE": - case 3: - message.category = 3; - break; - case "MANAGEABILITY": - case 4: - message.category = 4; - break; + var message = new $root.google.cloud.recommender.v1.Operation(); + if (object.action != null) + message.action = String(object.action); + if (object.resourceType != null) + message.resourceType = String(object.resourceType); + if (object.resource != null) + message.resource = String(object.resource); + if (object.path != null) + message.path = String(object.path); + if (object.sourceResource != null) + message.sourceResource = String(object.sourceResource); + if (object.sourcePath != null) + message.sourcePath = String(object.sourcePath); + if (object.value != null) { + if (typeof object.value !== "object") + throw TypeError(".google.cloud.recommender.v1.Operation.value: object expected"); + message.value = $root.google.protobuf.Value.fromObject(object.value); } - if (object.costProjection != null) { - if (typeof object.costProjection !== "object") - throw TypeError(".google.cloud.recommender.v1.Impact.costProjection: object expected"); - message.costProjection = $root.google.cloud.recommender.v1.CostProjection.fromObject(object.costProjection); + if (object.valueMatcher != null) { + if (typeof object.valueMatcher !== "object") + throw TypeError(".google.cloud.recommender.v1.Operation.valueMatcher: object expected"); + message.valueMatcher = $root.google.cloud.recommender.v1.ValueMatcher.fromObject(object.valueMatcher); + } + if (object.pathFilters) { + if (typeof object.pathFilters !== "object") + throw TypeError(".google.cloud.recommender.v1.Operation.pathFilters: object expected"); + message.pathFilters = {}; + for (var keys = Object.keys(object.pathFilters), i = 0; i < keys.length; ++i) { + if (typeof object.pathFilters[keys[i]] !== "object") + throw TypeError(".google.cloud.recommender.v1.Operation.pathFilters: object expected"); + message.pathFilters[keys[i]] = $root.google.protobuf.Value.fromObject(object.pathFilters[keys[i]]); + } + } + if (object.pathValueMatchers) { + if (typeof object.pathValueMatchers !== "object") + throw TypeError(".google.cloud.recommender.v1.Operation.pathValueMatchers: object expected"); + message.pathValueMatchers = {}; + for (var keys = Object.keys(object.pathValueMatchers), i = 0; i < keys.length; ++i) { + if (typeof object.pathValueMatchers[keys[i]] !== "object") + throw TypeError(".google.cloud.recommender.v1.Operation.pathValueMatchers: object expected"); + message.pathValueMatchers[keys[i]] = $root.google.cloud.recommender.v1.ValueMatcher.fromObject(object.pathValueMatchers[keys[i]]); + } } return message; }; /** - * Creates a plain object from an Impact message. Also converts values to other types if specified. + * Creates a plain object from an Operation message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1.Impact + * @memberof google.cloud.recommender.v1.Operation * @static - * @param {google.cloud.recommender.v1.Impact} message Impact + * @param {google.cloud.recommender.v1.Operation} message Operation * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Impact.toObject = function toObject(message, options) { + Operation.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.category = options.enums === String ? "CATEGORY_UNSPECIFIED" : 0; - if (message.category != null && message.hasOwnProperty("category")) - object.category = options.enums === String ? $root.google.cloud.recommender.v1.Impact.Category[message.category] : message.category; - if (message.costProjection != null && message.hasOwnProperty("costProjection")) { - object.costProjection = $root.google.cloud.recommender.v1.CostProjection.toObject(message.costProjection, options); + if (options.objects || options.defaults) { + object.pathFilters = {}; + object.pathValueMatchers = {}; + } + if (options.defaults) { + object.action = ""; + object.resourceType = ""; + object.resource = ""; + object.path = ""; + object.sourceResource = ""; + object.sourcePath = ""; + } + if (message.action != null && message.hasOwnProperty("action")) + object.action = message.action; + if (message.resourceType != null && message.hasOwnProperty("resourceType")) + object.resourceType = message.resourceType; + if (message.resource != null && message.hasOwnProperty("resource")) + object.resource = message.resource; + if (message.path != null && message.hasOwnProperty("path")) + object.path = message.path; + if (message.sourceResource != null && message.hasOwnProperty("sourceResource")) + object.sourceResource = message.sourceResource; + if (message.sourcePath != null && message.hasOwnProperty("sourcePath")) + object.sourcePath = message.sourcePath; + if (message.value != null && message.hasOwnProperty("value")) { + object.value = $root.google.protobuf.Value.toObject(message.value, options); if (options.oneofs) - object.projection = "costProjection"; + object.pathValue = "value"; } - return object; - }; - - /** - * Converts this Impact to JSON. - * @function toJSON - * @memberof google.cloud.recommender.v1.Impact - * @instance - * @returns {Object.} JSON object - */ - Impact.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + var keys2; + if (message.pathFilters && (keys2 = Object.keys(message.pathFilters)).length) { + object.pathFilters = {}; + for (var j = 0; j < keys2.length; ++j) + object.pathFilters[keys2[j]] = $root.google.protobuf.Value.toObject(message.pathFilters[keys2[j]], options); + } + if (message.valueMatcher != null && message.hasOwnProperty("valueMatcher")) { + object.valueMatcher = $root.google.cloud.recommender.v1.ValueMatcher.toObject(message.valueMatcher, options); + if (options.oneofs) + object.pathValue = "valueMatcher"; + } + if (message.pathValueMatchers && (keys2 = Object.keys(message.pathValueMatchers)).length) { + object.pathValueMatchers = {}; + for (var j = 0; j < keys2.length; ++j) + object.pathValueMatchers[keys2[j]] = $root.google.cloud.recommender.v1.ValueMatcher.toObject(message.pathValueMatchers[keys2[j]], options); + } + return object; + }; /** - * Category enum. - * @name google.cloud.recommender.v1.Impact.Category - * @enum {number} - * @property {number} CATEGORY_UNSPECIFIED=0 CATEGORY_UNSPECIFIED value - * @property {number} COST=1 COST value - * @property {number} SECURITY=2 SECURITY value - * @property {number} PERFORMANCE=3 PERFORMANCE value - * @property {number} MANAGEABILITY=4 MANAGEABILITY value + * Converts this Operation to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1.Operation + * @instance + * @returns {Object.} JSON object */ - Impact.Category = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "CATEGORY_UNSPECIFIED"] = 0; - values[valuesById[1] = "COST"] = 1; - values[valuesById[2] = "SECURITY"] = 2; - values[valuesById[3] = "PERFORMANCE"] = 3; - values[valuesById[4] = "MANAGEABILITY"] = 4; - return values; - })(); + Operation.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return Impact; + return Operation; })(); - v1.RecommendationStateInfo = (function() { + v1.ValueMatcher = (function() { /** - * Properties of a RecommendationStateInfo. + * Properties of a ValueMatcher. * @memberof google.cloud.recommender.v1 - * @interface IRecommendationStateInfo - * @property {google.cloud.recommender.v1.RecommendationStateInfo.State|null} [state] RecommendationStateInfo state - * @property {Object.|null} [stateMetadata] RecommendationStateInfo stateMetadata + * @interface IValueMatcher + * @property {string|null} [matchesPattern] ValueMatcher matchesPattern */ /** - * Constructs a new RecommendationStateInfo. + * Constructs a new ValueMatcher. * @memberof google.cloud.recommender.v1 - * @classdesc Represents a RecommendationStateInfo. - * @implements IRecommendationStateInfo + * @classdesc Represents a ValueMatcher. + * @implements IValueMatcher * @constructor - * @param {google.cloud.recommender.v1.IRecommendationStateInfo=} [properties] Properties to set + * @param {google.cloud.recommender.v1.IValueMatcher=} [properties] Properties to set */ - function RecommendationStateInfo(properties) { - this.stateMetadata = {}; + function ValueMatcher(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -2102,94 +2598,89 @@ } /** - * RecommendationStateInfo state. - * @member {google.cloud.recommender.v1.RecommendationStateInfo.State} state - * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * ValueMatcher matchesPattern. + * @member {string} matchesPattern + * @memberof google.cloud.recommender.v1.ValueMatcher * @instance */ - RecommendationStateInfo.prototype.state = 0; + ValueMatcher.prototype.matchesPattern = ""; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * RecommendationStateInfo stateMetadata. - * @member {Object.} stateMetadata - * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * ValueMatcher matchVariant. + * @member {"matchesPattern"|undefined} matchVariant + * @memberof google.cloud.recommender.v1.ValueMatcher * @instance */ - RecommendationStateInfo.prototype.stateMetadata = $util.emptyObject; + Object.defineProperty(ValueMatcher.prototype, "matchVariant", { + get: $util.oneOfGetter($oneOfFields = ["matchesPattern"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new RecommendationStateInfo instance using the specified properties. + * Creates a new ValueMatcher instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.ValueMatcher * @static - * @param {google.cloud.recommender.v1.IRecommendationStateInfo=} [properties] Properties to set - * @returns {google.cloud.recommender.v1.RecommendationStateInfo} RecommendationStateInfo instance + * @param {google.cloud.recommender.v1.IValueMatcher=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.ValueMatcher} ValueMatcher instance */ - RecommendationStateInfo.create = function create(properties) { - return new RecommendationStateInfo(properties); + ValueMatcher.create = function create(properties) { + return new ValueMatcher(properties); }; /** - * Encodes the specified RecommendationStateInfo message. Does not implicitly {@link google.cloud.recommender.v1.RecommendationStateInfo.verify|verify} messages. + * Encodes the specified ValueMatcher message. Does not implicitly {@link google.cloud.recommender.v1.ValueMatcher.verify|verify} messages. * @function encode - * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.ValueMatcher * @static - * @param {google.cloud.recommender.v1.IRecommendationStateInfo} message RecommendationStateInfo message or plain object to encode + * @param {google.cloud.recommender.v1.IValueMatcher} message ValueMatcher message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RecommendationStateInfo.encode = function encode(message, writer) { + ValueMatcher.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.state != null && Object.hasOwnProperty.call(message, "state")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.state); - if (message.stateMetadata != null && Object.hasOwnProperty.call(message, "stateMetadata")) - for (var keys = Object.keys(message.stateMetadata), i = 0; i < keys.length; ++i) - writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.stateMetadata[keys[i]]).ldelim(); + if (message.matchesPattern != null && Object.hasOwnProperty.call(message, "matchesPattern")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.matchesPattern); return writer; }; /** - * Encodes the specified RecommendationStateInfo message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.RecommendationStateInfo.verify|verify} messages. + * Encodes the specified ValueMatcher message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.ValueMatcher.verify|verify} messages. * @function encodeDelimited - * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.ValueMatcher * @static - * @param {google.cloud.recommender.v1.IRecommendationStateInfo} message RecommendationStateInfo message or plain object to encode + * @param {google.cloud.recommender.v1.IValueMatcher} message ValueMatcher message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RecommendationStateInfo.encodeDelimited = function encodeDelimited(message, writer) { + ValueMatcher.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a RecommendationStateInfo message from the specified reader or buffer. + * Decodes a ValueMatcher message from the specified reader or buffer. * @function decode - * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.ValueMatcher * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.cloud.recommender.v1.RecommendationStateInfo} RecommendationStateInfo + * @returns {google.cloud.recommender.v1.ValueMatcher} ValueMatcher * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecommendationStateInfo.decode = function decode(reader, length) { + ValueMatcher.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.RecommendationStateInfo(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.ValueMatcher(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.state = reader.int32(); - break; - case 2: - reader.skip().pos++; - if (message.stateMetadata === $util.emptyObject) - message.stateMetadata = {}; - key = reader.string(); - reader.pos++; - message.stateMetadata[key] = reader.string(); + message.matchesPattern = reader.string(); break; default: reader.skipType(tag & 7); @@ -2200,365 +2691,2104 @@ }; /** - * Decodes a RecommendationStateInfo message from the specified reader or buffer, length delimited. + * Decodes a ValueMatcher message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.ValueMatcher * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.cloud.recommender.v1.RecommendationStateInfo} RecommendationStateInfo + * @returns {google.cloud.recommender.v1.ValueMatcher} ValueMatcher * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecommendationStateInfo.decodeDelimited = function decodeDelimited(reader) { + ValueMatcher.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a RecommendationStateInfo message. + * Verifies a ValueMatcher message. * @function verify - * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.ValueMatcher * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecommendationStateInfo.verify = function verify(message) { + ValueMatcher.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.state != null && message.hasOwnProperty("state")) - switch (message.state) { - default: - return "state: enum value expected"; - case 0: - case 1: - case 6: - case 3: - case 4: - case 5: - break; - } - if (message.stateMetadata != null && message.hasOwnProperty("stateMetadata")) { - if (!$util.isObject(message.stateMetadata)) - return "stateMetadata: object expected"; - var key = Object.keys(message.stateMetadata); - for (var i = 0; i < key.length; ++i) - if (!$util.isString(message.stateMetadata[key[i]])) - return "stateMetadata: string{k:string} expected"; + var properties = {}; + if (message.matchesPattern != null && message.hasOwnProperty("matchesPattern")) { + properties.matchVariant = 1; + if (!$util.isString(message.matchesPattern)) + return "matchesPattern: string expected"; } return null; }; /** - * Creates a RecommendationStateInfo message from a plain object. Also converts values to their respective internal types. + * Creates a ValueMatcher message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.ValueMatcher * @static * @param {Object.} object Plain object - * @returns {google.cloud.recommender.v1.RecommendationStateInfo} RecommendationStateInfo + * @returns {google.cloud.recommender.v1.ValueMatcher} ValueMatcher */ - RecommendationStateInfo.fromObject = function fromObject(object) { - if (object instanceof $root.google.cloud.recommender.v1.RecommendationStateInfo) + ValueMatcher.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.ValueMatcher) return object; - var message = new $root.google.cloud.recommender.v1.RecommendationStateInfo(); - switch (object.state) { - case "STATE_UNSPECIFIED": - case 0: - message.state = 0; - break; - case "ACTIVE": - case 1: - message.state = 1; - break; - case "CLAIMED": - case 6: - message.state = 6; - break; - case "SUCCEEDED": - case 3: - message.state = 3; - break; - case "FAILED": - case 4: - message.state = 4; - break; - case "DISMISSED": - case 5: - message.state = 5; - break; - } - if (object.stateMetadata) { - if (typeof object.stateMetadata !== "object") - throw TypeError(".google.cloud.recommender.v1.RecommendationStateInfo.stateMetadata: object expected"); - message.stateMetadata = {}; - for (var keys = Object.keys(object.stateMetadata), i = 0; i < keys.length; ++i) - message.stateMetadata[keys[i]] = String(object.stateMetadata[keys[i]]); - } + var message = new $root.google.cloud.recommender.v1.ValueMatcher(); + if (object.matchesPattern != null) + message.matchesPattern = String(object.matchesPattern); return message; }; /** - * Creates a plain object from a RecommendationStateInfo message. Also converts values to other types if specified. + * Creates a plain object from a ValueMatcher message. Also converts values to other types if specified. * @function toObject - * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.ValueMatcher * @static - * @param {google.cloud.recommender.v1.RecommendationStateInfo} message RecommendationStateInfo + * @param {google.cloud.recommender.v1.ValueMatcher} message ValueMatcher * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RecommendationStateInfo.toObject = function toObject(message, options) { + ValueMatcher.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.objects || options.defaults) - object.stateMetadata = {}; - if (options.defaults) - object.state = options.enums === String ? "STATE_UNSPECIFIED" : 0; - if (message.state != null && message.hasOwnProperty("state")) - object.state = options.enums === String ? $root.google.cloud.recommender.v1.RecommendationStateInfo.State[message.state] : message.state; - var keys2; - if (message.stateMetadata && (keys2 = Object.keys(message.stateMetadata)).length) { - object.stateMetadata = {}; - for (var j = 0; j < keys2.length; ++j) - object.stateMetadata[keys2[j]] = message.stateMetadata[keys2[j]]; + if (message.matchesPattern != null && message.hasOwnProperty("matchesPattern")) { + object.matchesPattern = message.matchesPattern; + if (options.oneofs) + object.matchVariant = "matchesPattern"; } return object; }; /** - * Converts this RecommendationStateInfo to JSON. + * Converts this ValueMatcher to JSON. * @function toJSON - * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @memberof google.cloud.recommender.v1.ValueMatcher * @instance * @returns {Object.} JSON object */ - RecommendationStateInfo.prototype.toJSON = function toJSON() { + ValueMatcher.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + return ValueMatcher; + })(); + + v1.CostProjection = (function() { + + /** + * Properties of a CostProjection. + * @memberof google.cloud.recommender.v1 + * @interface ICostProjection + * @property {google.type.IMoney|null} [cost] CostProjection cost + * @property {google.protobuf.IDuration|null} [duration] CostProjection duration + */ + + /** + * Constructs a new CostProjection. + * @memberof google.cloud.recommender.v1 + * @classdesc Represents a CostProjection. + * @implements ICostProjection + * @constructor + * @param {google.cloud.recommender.v1.ICostProjection=} [properties] Properties to set + */ + function CostProjection(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]]; + } + + /** + * CostProjection cost. + * @member {google.type.IMoney|null|undefined} cost + * @memberof google.cloud.recommender.v1.CostProjection + * @instance + */ + CostProjection.prototype.cost = null; + + /** + * CostProjection duration. + * @member {google.protobuf.IDuration|null|undefined} duration + * @memberof google.cloud.recommender.v1.CostProjection + * @instance + */ + CostProjection.prototype.duration = null; + + /** + * Creates a new CostProjection instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1.CostProjection + * @static + * @param {google.cloud.recommender.v1.ICostProjection=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.CostProjection} CostProjection instance + */ + CostProjection.create = function create(properties) { + return new CostProjection(properties); + }; + + /** + * Encodes the specified CostProjection message. Does not implicitly {@link google.cloud.recommender.v1.CostProjection.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1.CostProjection + * @static + * @param {google.cloud.recommender.v1.ICostProjection} message CostProjection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CostProjection.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.cost != null && Object.hasOwnProperty.call(message, "cost")) + $root.google.type.Money.encode(message.cost, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.duration != null && Object.hasOwnProperty.call(message, "duration")) + $root.google.protobuf.Duration.encode(message.duration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified CostProjection message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.CostProjection.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1.CostProjection + * @static + * @param {google.cloud.recommender.v1.ICostProjection} message CostProjection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CostProjection.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CostProjection message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1.CostProjection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1.CostProjection} CostProjection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CostProjection.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.CostProjection(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.cost = $root.google.type.Money.decode(reader, reader.uint32()); + break; + case 2: + message.duration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CostProjection message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1.CostProjection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1.CostProjection} CostProjection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CostProjection.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CostProjection message. + * @function verify + * @memberof google.cloud.recommender.v1.CostProjection + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CostProjection.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.cost != null && message.hasOwnProperty("cost")) { + var error = $root.google.type.Money.verify(message.cost); + if (error) + return "cost." + error; + } + if (message.duration != null && message.hasOwnProperty("duration")) { + var error = $root.google.protobuf.Duration.verify(message.duration); + if (error) + return "duration." + error; + } + return null; + }; + + /** + * Creates a CostProjection message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1.CostProjection + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1.CostProjection} CostProjection + */ + CostProjection.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.CostProjection) + return object; + var message = new $root.google.cloud.recommender.v1.CostProjection(); + if (object.cost != null) { + if (typeof object.cost !== "object") + throw TypeError(".google.cloud.recommender.v1.CostProjection.cost: object expected"); + message.cost = $root.google.type.Money.fromObject(object.cost); + } + if (object.duration != null) { + if (typeof object.duration !== "object") + throw TypeError(".google.cloud.recommender.v1.CostProjection.duration: object expected"); + message.duration = $root.google.protobuf.Duration.fromObject(object.duration); + } + return message; + }; + + /** + * Creates a plain object from a CostProjection message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1.CostProjection + * @static + * @param {google.cloud.recommender.v1.CostProjection} message CostProjection + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CostProjection.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.cost = null; + object.duration = null; + } + if (message.cost != null && message.hasOwnProperty("cost")) + object.cost = $root.google.type.Money.toObject(message.cost, options); + if (message.duration != null && message.hasOwnProperty("duration")) + object.duration = $root.google.protobuf.Duration.toObject(message.duration, options); + return object; + }; + + /** + * Converts this CostProjection to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1.CostProjection + * @instance + * @returns {Object.} JSON object + */ + CostProjection.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return CostProjection; + })(); + + v1.Impact = (function() { + + /** + * Properties of an Impact. + * @memberof google.cloud.recommender.v1 + * @interface IImpact + * @property {google.cloud.recommender.v1.Impact.Category|null} [category] Impact category + * @property {google.cloud.recommender.v1.ICostProjection|null} [costProjection] Impact costProjection + */ + + /** + * Constructs a new Impact. + * @memberof google.cloud.recommender.v1 + * @classdesc Represents an Impact. + * @implements IImpact + * @constructor + * @param {google.cloud.recommender.v1.IImpact=} [properties] Properties to set + */ + function Impact(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]]; + } + + /** + * Impact category. + * @member {google.cloud.recommender.v1.Impact.Category} category + * @memberof google.cloud.recommender.v1.Impact + * @instance + */ + Impact.prototype.category = 0; + + /** + * Impact costProjection. + * @member {google.cloud.recommender.v1.ICostProjection|null|undefined} costProjection + * @memberof google.cloud.recommender.v1.Impact + * @instance + */ + Impact.prototype.costProjection = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * Impact projection. + * @member {"costProjection"|undefined} projection + * @memberof google.cloud.recommender.v1.Impact + * @instance + */ + Object.defineProperty(Impact.prototype, "projection", { + get: $util.oneOfGetter($oneOfFields = ["costProjection"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Impact instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1.Impact + * @static + * @param {google.cloud.recommender.v1.IImpact=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.Impact} Impact instance + */ + Impact.create = function create(properties) { + return new Impact(properties); + }; + + /** + * Encodes the specified Impact message. Does not implicitly {@link google.cloud.recommender.v1.Impact.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1.Impact + * @static + * @param {google.cloud.recommender.v1.IImpact} message Impact message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Impact.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.category != null && Object.hasOwnProperty.call(message, "category")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.category); + if (message.costProjection != null && Object.hasOwnProperty.call(message, "costProjection")) + $root.google.cloud.recommender.v1.CostProjection.encode(message.costProjection, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Impact message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.Impact.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1.Impact + * @static + * @param {google.cloud.recommender.v1.IImpact} message Impact message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Impact.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an Impact message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1.Impact + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1.Impact} Impact + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Impact.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Impact(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.category = reader.int32(); + break; + case 100: + message.costProjection = $root.google.cloud.recommender.v1.CostProjection.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an Impact message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1.Impact + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1.Impact} Impact + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Impact.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an Impact message. + * @function verify + * @memberof google.cloud.recommender.v1.Impact + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Impact.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.category != null && message.hasOwnProperty("category")) + switch (message.category) { + default: + return "category: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + if (message.costProjection != null && message.hasOwnProperty("costProjection")) { + properties.projection = 1; + { + var error = $root.google.cloud.recommender.v1.CostProjection.verify(message.costProjection); + if (error) + return "costProjection." + error; + } + } + return null; + }; + + /** + * Creates an Impact message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1.Impact + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1.Impact} Impact + */ + Impact.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.Impact) + return object; + var message = new $root.google.cloud.recommender.v1.Impact(); + switch (object.category) { + case "CATEGORY_UNSPECIFIED": + case 0: + message.category = 0; + break; + case "COST": + case 1: + message.category = 1; + break; + case "SECURITY": + case 2: + message.category = 2; + break; + case "PERFORMANCE": + case 3: + message.category = 3; + break; + case "MANAGEABILITY": + case 4: + message.category = 4; + break; + } + if (object.costProjection != null) { + if (typeof object.costProjection !== "object") + throw TypeError(".google.cloud.recommender.v1.Impact.costProjection: object expected"); + message.costProjection = $root.google.cloud.recommender.v1.CostProjection.fromObject(object.costProjection); + } + return message; + }; + + /** + * Creates a plain object from an Impact message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1.Impact + * @static + * @param {google.cloud.recommender.v1.Impact} message Impact + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Impact.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.category = options.enums === String ? "CATEGORY_UNSPECIFIED" : 0; + if (message.category != null && message.hasOwnProperty("category")) + object.category = options.enums === String ? $root.google.cloud.recommender.v1.Impact.Category[message.category] : message.category; + if (message.costProjection != null && message.hasOwnProperty("costProjection")) { + object.costProjection = $root.google.cloud.recommender.v1.CostProjection.toObject(message.costProjection, options); + if (options.oneofs) + object.projection = "costProjection"; + } + return object; + }; + + /** + * Converts this Impact to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1.Impact + * @instance + * @returns {Object.} JSON object + */ + Impact.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Category enum. + * @name google.cloud.recommender.v1.Impact.Category + * @enum {number} + * @property {number} CATEGORY_UNSPECIFIED=0 CATEGORY_UNSPECIFIED value + * @property {number} COST=1 COST value + * @property {number} SECURITY=2 SECURITY value + * @property {number} PERFORMANCE=3 PERFORMANCE value + * @property {number} MANAGEABILITY=4 MANAGEABILITY value + */ + Impact.Category = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "CATEGORY_UNSPECIFIED"] = 0; + values[valuesById[1] = "COST"] = 1; + values[valuesById[2] = "SECURITY"] = 2; + values[valuesById[3] = "PERFORMANCE"] = 3; + values[valuesById[4] = "MANAGEABILITY"] = 4; + return values; + })(); + + return Impact; + })(); + + v1.RecommendationStateInfo = (function() { + + /** + * Properties of a RecommendationStateInfo. + * @memberof google.cloud.recommender.v1 + * @interface IRecommendationStateInfo + * @property {google.cloud.recommender.v1.RecommendationStateInfo.State|null} [state] RecommendationStateInfo state + * @property {Object.|null} [stateMetadata] RecommendationStateInfo stateMetadata + */ + + /** + * Constructs a new RecommendationStateInfo. + * @memberof google.cloud.recommender.v1 + * @classdesc Represents a RecommendationStateInfo. + * @implements IRecommendationStateInfo + * @constructor + * @param {google.cloud.recommender.v1.IRecommendationStateInfo=} [properties] Properties to set + */ + function RecommendationStateInfo(properties) { + this.stateMetadata = {}; + 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]]; + } + + /** + * RecommendationStateInfo state. + * @member {google.cloud.recommender.v1.RecommendationStateInfo.State} state + * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @instance + */ + RecommendationStateInfo.prototype.state = 0; + + /** + * RecommendationStateInfo stateMetadata. + * @member {Object.} stateMetadata + * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @instance + */ + RecommendationStateInfo.prototype.stateMetadata = $util.emptyObject; + + /** + * Creates a new RecommendationStateInfo instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @static + * @param {google.cloud.recommender.v1.IRecommendationStateInfo=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.RecommendationStateInfo} RecommendationStateInfo instance + */ + RecommendationStateInfo.create = function create(properties) { + return new RecommendationStateInfo(properties); + }; + + /** + * Encodes the specified RecommendationStateInfo message. Does not implicitly {@link google.cloud.recommender.v1.RecommendationStateInfo.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @static + * @param {google.cloud.recommender.v1.IRecommendationStateInfo} message RecommendationStateInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RecommendationStateInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.state != null && Object.hasOwnProperty.call(message, "state")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.state); + if (message.stateMetadata != null && Object.hasOwnProperty.call(message, "stateMetadata")) + for (var keys = Object.keys(message.stateMetadata), i = 0; i < keys.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.stateMetadata[keys[i]]).ldelim(); + return writer; + }; + + /** + * Encodes the specified RecommendationStateInfo message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.RecommendationStateInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @static + * @param {google.cloud.recommender.v1.IRecommendationStateInfo} message RecommendationStateInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RecommendationStateInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RecommendationStateInfo message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1.RecommendationStateInfo} RecommendationStateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RecommendationStateInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.RecommendationStateInfo(), key; + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.state = reader.int32(); + break; + case 2: + reader.skip().pos++; + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + key = reader.string(); + reader.pos++; + message.stateMetadata[key] = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RecommendationStateInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1.RecommendationStateInfo} RecommendationStateInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RecommendationStateInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RecommendationStateInfo message. + * @function verify + * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RecommendationStateInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.state != null && message.hasOwnProperty("state")) + switch (message.state) { + default: + return "state: enum value expected"; + case 0: + case 1: + case 6: + case 3: + case 4: + case 5: + break; + } + if (message.stateMetadata != null && message.hasOwnProperty("stateMetadata")) { + if (!$util.isObject(message.stateMetadata)) + return "stateMetadata: object expected"; + var key = Object.keys(message.stateMetadata); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.stateMetadata[key[i]])) + return "stateMetadata: string{k:string} expected"; + } + return null; + }; + + /** + * Creates a RecommendationStateInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1.RecommendationStateInfo} RecommendationStateInfo + */ + RecommendationStateInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.RecommendationStateInfo) + return object; + var message = new $root.google.cloud.recommender.v1.RecommendationStateInfo(); + switch (object.state) { + case "STATE_UNSPECIFIED": + case 0: + message.state = 0; + break; + case "ACTIVE": + case 1: + message.state = 1; + break; + case "CLAIMED": + case 6: + message.state = 6; + break; + case "SUCCEEDED": + case 3: + message.state = 3; + break; + case "FAILED": + case 4: + message.state = 4; + break; + case "DISMISSED": + case 5: + message.state = 5; + break; + } + if (object.stateMetadata) { + if (typeof object.stateMetadata !== "object") + throw TypeError(".google.cloud.recommender.v1.RecommendationStateInfo.stateMetadata: object expected"); + message.stateMetadata = {}; + for (var keys = Object.keys(object.stateMetadata), i = 0; i < keys.length; ++i) + message.stateMetadata[keys[i]] = String(object.stateMetadata[keys[i]]); + } + return message; + }; + + /** + * Creates a plain object from a RecommendationStateInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @static + * @param {google.cloud.recommender.v1.RecommendationStateInfo} message RecommendationStateInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RecommendationStateInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.objects || options.defaults) + object.stateMetadata = {}; + if (options.defaults) + object.state = options.enums === String ? "STATE_UNSPECIFIED" : 0; + if (message.state != null && message.hasOwnProperty("state")) + object.state = options.enums === String ? $root.google.cloud.recommender.v1.RecommendationStateInfo.State[message.state] : message.state; + var keys2; + if (message.stateMetadata && (keys2 = Object.keys(message.stateMetadata)).length) { + object.stateMetadata = {}; + for (var j = 0; j < keys2.length; ++j) + object.stateMetadata[keys2[j]] = message.stateMetadata[keys2[j]]; + } + return object; + }; + + /** + * Converts this RecommendationStateInfo to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @instance + * @returns {Object.} JSON object + */ + RecommendationStateInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * State enum. + * @name google.cloud.recommender.v1.RecommendationStateInfo.State + * @enum {number} + * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value + * @property {number} ACTIVE=1 ACTIVE value + * @property {number} CLAIMED=6 CLAIMED value + * @property {number} SUCCEEDED=3 SUCCEEDED value + * @property {number} FAILED=4 FAILED value + * @property {number} DISMISSED=5 DISMISSED value + */ + RecommendationStateInfo.State = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STATE_UNSPECIFIED"] = 0; + values[valuesById[1] = "ACTIVE"] = 1; + values[valuesById[6] = "CLAIMED"] = 6; + values[valuesById[3] = "SUCCEEDED"] = 3; + values[valuesById[4] = "FAILED"] = 4; + values[valuesById[5] = "DISMISSED"] = 5; + return values; + })(); + + return RecommendationStateInfo; + })(); + + v1.Recommender = (function() { + + /** + * Constructs a new Recommender service. + * @memberof google.cloud.recommender.v1 + * @classdesc Represents a Recommender + * @extends $protobuf.rpc.Service + * @constructor + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + */ + function Recommender(rpcImpl, requestDelimited, responseDelimited) { + $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited); + } + + (Recommender.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = Recommender; + + /** + * Creates new Recommender service using the specified rpc implementation. + * @function create + * @memberof google.cloud.recommender.v1.Recommender + * @static + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + * @returns {Recommender} RPC service. Useful where requests and/or responses are streamed. + */ + Recommender.create = function create(rpcImpl, requestDelimited, responseDelimited) { + return new this(rpcImpl, requestDelimited, responseDelimited); + }; + + /** + * Callback as used by {@link google.cloud.recommender.v1.Recommender#listInsights}. + * @memberof google.cloud.recommender.v1.Recommender + * @typedef ListInsightsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1.ListInsightsResponse} [response] ListInsightsResponse + */ + + /** + * Calls ListInsights. + * @function listInsights + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IListInsightsRequest} request ListInsightsRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.ListInsightsCallback} callback Node-style callback called with the error, if any, and ListInsightsResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.listInsights = function listInsights(request, callback) { + return this.rpcCall(listInsights, $root.google.cloud.recommender.v1.ListInsightsRequest, $root.google.cloud.recommender.v1.ListInsightsResponse, request, callback); + }, "name", { value: "ListInsights" }); + + /** + * Calls ListInsights. + * @function listInsights + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IListInsightsRequest} request ListInsightsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recommender.v1.Recommender#getInsight}. + * @memberof google.cloud.recommender.v1.Recommender + * @typedef GetInsightCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1.Insight} [response] Insight + */ + + /** + * Calls GetInsight. + * @function getInsight + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IGetInsightRequest} request GetInsightRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.GetInsightCallback} callback Node-style callback called with the error, if any, and Insight + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.getInsight = function getInsight(request, callback) { + return this.rpcCall(getInsight, $root.google.cloud.recommender.v1.GetInsightRequest, $root.google.cloud.recommender.v1.Insight, request, callback); + }, "name", { value: "GetInsight" }); + + /** + * Calls GetInsight. + * @function getInsight + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IGetInsightRequest} request GetInsightRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recommender.v1.Recommender#markInsightAccepted}. + * @memberof google.cloud.recommender.v1.Recommender + * @typedef MarkInsightAcceptedCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1.Insight} [response] Insight + */ + + /** + * Calls MarkInsightAccepted. + * @function markInsightAccepted + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IMarkInsightAcceptedRequest} request MarkInsightAcceptedRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.MarkInsightAcceptedCallback} callback Node-style callback called with the error, if any, and Insight + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.markInsightAccepted = function markInsightAccepted(request, callback) { + return this.rpcCall(markInsightAccepted, $root.google.cloud.recommender.v1.MarkInsightAcceptedRequest, $root.google.cloud.recommender.v1.Insight, request, callback); + }, "name", { value: "MarkInsightAccepted" }); + + /** + * Calls MarkInsightAccepted. + * @function markInsightAccepted + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IMarkInsightAcceptedRequest} request MarkInsightAcceptedRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recommender.v1.Recommender#listRecommendations}. + * @memberof google.cloud.recommender.v1.Recommender + * @typedef ListRecommendationsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1.ListRecommendationsResponse} [response] ListRecommendationsResponse + */ + + /** + * Calls ListRecommendations. + * @function listRecommendations + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IListRecommendationsRequest} request ListRecommendationsRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.ListRecommendationsCallback} callback Node-style callback called with the error, if any, and ListRecommendationsResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.listRecommendations = function listRecommendations(request, callback) { + return this.rpcCall(listRecommendations, $root.google.cloud.recommender.v1.ListRecommendationsRequest, $root.google.cloud.recommender.v1.ListRecommendationsResponse, request, callback); + }, "name", { value: "ListRecommendations" }); + + /** + * Calls ListRecommendations. + * @function listRecommendations + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IListRecommendationsRequest} request ListRecommendationsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recommender.v1.Recommender#getRecommendation}. + * @memberof google.cloud.recommender.v1.Recommender + * @typedef GetRecommendationCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1.Recommendation} [response] Recommendation + */ + + /** + * Calls GetRecommendation. + * @function getRecommendation + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IGetRecommendationRequest} request GetRecommendationRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.GetRecommendationCallback} callback Node-style callback called with the error, if any, and Recommendation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.getRecommendation = function getRecommendation(request, callback) { + return this.rpcCall(getRecommendation, $root.google.cloud.recommender.v1.GetRecommendationRequest, $root.google.cloud.recommender.v1.Recommendation, request, callback); + }, "name", { value: "GetRecommendation" }); + + /** + * Calls GetRecommendation. + * @function getRecommendation + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IGetRecommendationRequest} request GetRecommendationRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationClaimed}. + * @memberof google.cloud.recommender.v1.Recommender + * @typedef MarkRecommendationClaimedCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1.Recommendation} [response] Recommendation + */ + + /** + * Calls MarkRecommendationClaimed. + * @function markRecommendationClaimed + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IMarkRecommendationClaimedRequest} request MarkRecommendationClaimedRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.MarkRecommendationClaimedCallback} callback Node-style callback called with the error, if any, and Recommendation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.markRecommendationClaimed = function markRecommendationClaimed(request, callback) { + return this.rpcCall(markRecommendationClaimed, $root.google.cloud.recommender.v1.MarkRecommendationClaimedRequest, $root.google.cloud.recommender.v1.Recommendation, request, callback); + }, "name", { value: "MarkRecommendationClaimed" }); + + /** + * Calls MarkRecommendationClaimed. + * @function markRecommendationClaimed + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IMarkRecommendationClaimedRequest} request MarkRecommendationClaimedRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationSucceeded}. + * @memberof google.cloud.recommender.v1.Recommender + * @typedef MarkRecommendationSucceededCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1.Recommendation} [response] Recommendation + */ + + /** + * Calls MarkRecommendationSucceeded. + * @function markRecommendationSucceeded + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IMarkRecommendationSucceededRequest} request MarkRecommendationSucceededRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.MarkRecommendationSucceededCallback} callback Node-style callback called with the error, if any, and Recommendation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.markRecommendationSucceeded = function markRecommendationSucceeded(request, callback) { + return this.rpcCall(markRecommendationSucceeded, $root.google.cloud.recommender.v1.MarkRecommendationSucceededRequest, $root.google.cloud.recommender.v1.Recommendation, request, callback); + }, "name", { value: "MarkRecommendationSucceeded" }); + + /** + * Calls MarkRecommendationSucceeded. + * @function markRecommendationSucceeded + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IMarkRecommendationSucceededRequest} request MarkRecommendationSucceededRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationFailed}. + * @memberof google.cloud.recommender.v1.Recommender + * @typedef MarkRecommendationFailedCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recommender.v1.Recommendation} [response] Recommendation + */ + + /** + * Calls MarkRecommendationFailed. + * @function markRecommendationFailed + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IMarkRecommendationFailedRequest} request MarkRecommendationFailedRequest message or plain object + * @param {google.cloud.recommender.v1.Recommender.MarkRecommendationFailedCallback} callback Node-style callback called with the error, if any, and Recommendation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Recommender.prototype.markRecommendationFailed = function markRecommendationFailed(request, callback) { + return this.rpcCall(markRecommendationFailed, $root.google.cloud.recommender.v1.MarkRecommendationFailedRequest, $root.google.cloud.recommender.v1.Recommendation, request, callback); + }, "name", { value: "MarkRecommendationFailed" }); + + /** + * Calls MarkRecommendationFailed. + * @function markRecommendationFailed + * @memberof google.cloud.recommender.v1.Recommender + * @instance + * @param {google.cloud.recommender.v1.IMarkRecommendationFailedRequest} request MarkRecommendationFailedRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + return Recommender; + })(); + + v1.ListInsightsRequest = (function() { + + /** + * Properties of a ListInsightsRequest. + * @memberof google.cloud.recommender.v1 + * @interface IListInsightsRequest + * @property {string|null} [parent] ListInsightsRequest parent + * @property {number|null} [pageSize] ListInsightsRequest pageSize + * @property {string|null} [pageToken] ListInsightsRequest pageToken + * @property {string|null} [filter] ListInsightsRequest filter + */ + + /** + * Constructs a new ListInsightsRequest. + * @memberof google.cloud.recommender.v1 + * @classdesc Represents a ListInsightsRequest. + * @implements IListInsightsRequest + * @constructor + * @param {google.cloud.recommender.v1.IListInsightsRequest=} [properties] Properties to set + */ + function ListInsightsRequest(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]]; + } + + /** + * ListInsightsRequest parent. + * @member {string} parent + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @instance + */ + ListInsightsRequest.prototype.parent = ""; + + /** + * ListInsightsRequest pageSize. + * @member {number} pageSize + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @instance + */ + ListInsightsRequest.prototype.pageSize = 0; + + /** + * ListInsightsRequest pageToken. + * @member {string} pageToken + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @instance + */ + ListInsightsRequest.prototype.pageToken = ""; + + /** + * ListInsightsRequest filter. + * @member {string} filter + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @instance + */ + ListInsightsRequest.prototype.filter = ""; + + /** + * Creates a new ListInsightsRequest instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @static + * @param {google.cloud.recommender.v1.IListInsightsRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.ListInsightsRequest} ListInsightsRequest instance + */ + ListInsightsRequest.create = function create(properties) { + return new ListInsightsRequest(properties); + }; + + /** + * Encodes the specified ListInsightsRequest message. Does not implicitly {@link google.cloud.recommender.v1.ListInsightsRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @static + * @param {google.cloud.recommender.v1.IListInsightsRequest} message ListInsightsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListInsightsRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.pageSize); + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.pageToken); + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.filter); + return writer; + }; + + /** + * Encodes the specified ListInsightsRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.ListInsightsRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @static + * @param {google.cloud.recommender.v1.IListInsightsRequest} message ListInsightsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListInsightsRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListInsightsRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1.ListInsightsRequest} ListInsightsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListInsightsRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.ListInsightsRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.parent = reader.string(); + break; + case 2: + message.pageSize = reader.int32(); + break; + case 3: + message.pageToken = reader.string(); + break; + case 4: + message.filter = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListInsightsRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1.ListInsightsRequest} ListInsightsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListInsightsRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListInsightsRequest message. + * @function verify + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListInsightsRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.parent != null && message.hasOwnProperty("parent")) + if (!$util.isString(message.parent)) + return "parent: string expected"; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (!$util.isInteger(message.pageSize)) + return "pageSize: integer expected"; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (!$util.isString(message.pageToken)) + return "pageToken: string expected"; + if (message.filter != null && message.hasOwnProperty("filter")) + if (!$util.isString(message.filter)) + return "filter: string expected"; + return null; + }; + + /** + * Creates a ListInsightsRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1.ListInsightsRequest} ListInsightsRequest + */ + ListInsightsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.ListInsightsRequest) + return object; + var message = new $root.google.cloud.recommender.v1.ListInsightsRequest(); + if (object.parent != null) + message.parent = String(object.parent); + if (object.pageSize != null) + message.pageSize = object.pageSize | 0; + if (object.pageToken != null) + message.pageToken = String(object.pageToken); + if (object.filter != null) + message.filter = String(object.filter); + return message; + }; + + /** + * Creates a plain object from a ListInsightsRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @static + * @param {google.cloud.recommender.v1.ListInsightsRequest} message ListInsightsRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListInsightsRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.parent = ""; + object.pageSize = 0; + object.pageToken = ""; + object.filter = ""; + } + if (message.parent != null && message.hasOwnProperty("parent")) + object.parent = message.parent; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + object.pageSize = message.pageSize; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + object.pageToken = message.pageToken; + if (message.filter != null && message.hasOwnProperty("filter")) + object.filter = message.filter; + return object; + }; + + /** + * Converts this ListInsightsRequest to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @instance + * @returns {Object.} JSON object + */ + ListInsightsRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ListInsightsRequest; + })(); + + v1.ListInsightsResponse = (function() { + + /** + * Properties of a ListInsightsResponse. + * @memberof google.cloud.recommender.v1 + * @interface IListInsightsResponse + * @property {Array.|null} [insights] ListInsightsResponse insights + * @property {string|null} [nextPageToken] ListInsightsResponse nextPageToken + */ + + /** + * Constructs a new ListInsightsResponse. + * @memberof google.cloud.recommender.v1 + * @classdesc Represents a ListInsightsResponse. + * @implements IListInsightsResponse + * @constructor + * @param {google.cloud.recommender.v1.IListInsightsResponse=} [properties] Properties to set + */ + function ListInsightsResponse(properties) { + this.insights = []; + 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]]; + } + + /** + * ListInsightsResponse insights. + * @member {Array.} insights + * @memberof google.cloud.recommender.v1.ListInsightsResponse + * @instance + */ + ListInsightsResponse.prototype.insights = $util.emptyArray; + + /** + * ListInsightsResponse nextPageToken. + * @member {string} nextPageToken + * @memberof google.cloud.recommender.v1.ListInsightsResponse + * @instance + */ + ListInsightsResponse.prototype.nextPageToken = ""; + + /** + * Creates a new ListInsightsResponse instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1.ListInsightsResponse + * @static + * @param {google.cloud.recommender.v1.IListInsightsResponse=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.ListInsightsResponse} ListInsightsResponse instance + */ + ListInsightsResponse.create = function create(properties) { + return new ListInsightsResponse(properties); + }; + + /** + * Encodes the specified ListInsightsResponse message. Does not implicitly {@link google.cloud.recommender.v1.ListInsightsResponse.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1.ListInsightsResponse + * @static + * @param {google.cloud.recommender.v1.IListInsightsResponse} message ListInsightsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListInsightsResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.insights != null && message.insights.length) + for (var i = 0; i < message.insights.length; ++i) + $root.google.cloud.recommender.v1.Insight.encode(message.insights[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); + return writer; + }; + + /** + * Encodes the specified ListInsightsResponse message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.ListInsightsResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1.ListInsightsResponse + * @static + * @param {google.cloud.recommender.v1.IListInsightsResponse} message ListInsightsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListInsightsResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + /** - * State enum. - * @name google.cloud.recommender.v1.RecommendationStateInfo.State - * @enum {number} - * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value - * @property {number} ACTIVE=1 ACTIVE value - * @property {number} CLAIMED=6 CLAIMED value - * @property {number} SUCCEEDED=3 SUCCEEDED value - * @property {number} FAILED=4 FAILED value - * @property {number} DISMISSED=5 DISMISSED value + * Decodes a ListInsightsResponse message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1.ListInsightsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1.ListInsightsResponse} ListInsightsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecommendationStateInfo.State = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "STATE_UNSPECIFIED"] = 0; - values[valuesById[1] = "ACTIVE"] = 1; - values[valuesById[6] = "CLAIMED"] = 6; - values[valuesById[3] = "SUCCEEDED"] = 3; - values[valuesById[4] = "FAILED"] = 4; - values[valuesById[5] = "DISMISSED"] = 5; - return values; - })(); + ListInsightsResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.ListInsightsResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.insights && message.insights.length)) + message.insights = []; + message.insights.push($root.google.cloud.recommender.v1.Insight.decode(reader, reader.uint32())); + break; + case 2: + message.nextPageToken = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - return RecommendationStateInfo; + /** + * Decodes a ListInsightsResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1.ListInsightsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1.ListInsightsResponse} ListInsightsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListInsightsResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListInsightsResponse message. + * @function verify + * @memberof google.cloud.recommender.v1.ListInsightsResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListInsightsResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.insights != null && message.hasOwnProperty("insights")) { + if (!Array.isArray(message.insights)) + return "insights: array expected"; + for (var i = 0; i < message.insights.length; ++i) { + var error = $root.google.cloud.recommender.v1.Insight.verify(message.insights[i]); + if (error) + return "insights." + error; + } + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (!$util.isString(message.nextPageToken)) + return "nextPageToken: string expected"; + return null; + }; + + /** + * Creates a ListInsightsResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1.ListInsightsResponse + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1.ListInsightsResponse} ListInsightsResponse + */ + ListInsightsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.ListInsightsResponse) + return object; + var message = new $root.google.cloud.recommender.v1.ListInsightsResponse(); + if (object.insights) { + if (!Array.isArray(object.insights)) + throw TypeError(".google.cloud.recommender.v1.ListInsightsResponse.insights: array expected"); + message.insights = []; + for (var i = 0; i < object.insights.length; ++i) { + if (typeof object.insights[i] !== "object") + throw TypeError(".google.cloud.recommender.v1.ListInsightsResponse.insights: object expected"); + message.insights[i] = $root.google.cloud.recommender.v1.Insight.fromObject(object.insights[i]); + } + } + if (object.nextPageToken != null) + message.nextPageToken = String(object.nextPageToken); + return message; + }; + + /** + * Creates a plain object from a ListInsightsResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1.ListInsightsResponse + * @static + * @param {google.cloud.recommender.v1.ListInsightsResponse} message ListInsightsResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListInsightsResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.insights = []; + if (options.defaults) + object.nextPageToken = ""; + if (message.insights && message.insights.length) { + object.insights = []; + for (var j = 0; j < message.insights.length; ++j) + object.insights[j] = $root.google.cloud.recommender.v1.Insight.toObject(message.insights[j], options); + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + object.nextPageToken = message.nextPageToken; + return object; + }; + + /** + * Converts this ListInsightsResponse to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1.ListInsightsResponse + * @instance + * @returns {Object.} JSON object + */ + ListInsightsResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ListInsightsResponse; })(); - v1.Recommender = (function() { + v1.GetInsightRequest = (function() { /** - * Constructs a new Recommender service. + * Properties of a GetInsightRequest. * @memberof google.cloud.recommender.v1 - * @classdesc Represents a Recommender - * @extends $protobuf.rpc.Service + * @interface IGetInsightRequest + * @property {string|null} [name] GetInsightRequest name + */ + + /** + * Constructs a new GetInsightRequest. + * @memberof google.cloud.recommender.v1 + * @classdesc Represents a GetInsightRequest. + * @implements IGetInsightRequest * @constructor - * @param {$protobuf.RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + * @param {google.cloud.recommender.v1.IGetInsightRequest=} [properties] Properties to set */ - function Recommender(rpcImpl, requestDelimited, responseDelimited) { - $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited); + function GetInsightRequest(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]]; } - (Recommender.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = Recommender; + /** + * GetInsightRequest name. + * @member {string} name + * @memberof google.cloud.recommender.v1.GetInsightRequest + * @instance + */ + GetInsightRequest.prototype.name = ""; /** - * Creates new Recommender service using the specified rpc implementation. + * Creates a new GetInsightRequest instance using the specified properties. * @function create - * @memberof google.cloud.recommender.v1.Recommender + * @memberof google.cloud.recommender.v1.GetInsightRequest * @static - * @param {$protobuf.RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - * @returns {Recommender} RPC service. Useful where requests and/or responses are streamed. + * @param {google.cloud.recommender.v1.IGetInsightRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.GetInsightRequest} GetInsightRequest instance */ - Recommender.create = function create(rpcImpl, requestDelimited, responseDelimited) { - return new this(rpcImpl, requestDelimited, responseDelimited); + GetInsightRequest.create = function create(properties) { + return new GetInsightRequest(properties); }; /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#listRecommendations}. - * @memberof google.cloud.recommender.v1.Recommender - * @typedef ListRecommendationsCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.cloud.recommender.v1.ListRecommendationsResponse} [response] ListRecommendationsResponse + * Encodes the specified GetInsightRequest message. Does not implicitly {@link google.cloud.recommender.v1.GetInsightRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1.GetInsightRequest + * @static + * @param {google.cloud.recommender.v1.IGetInsightRequest} message GetInsightRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetInsightRequest.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); + return writer; + }; + + /** + * Encodes the specified GetInsightRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.GetInsightRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1.GetInsightRequest + * @static + * @param {google.cloud.recommender.v1.IGetInsightRequest} message GetInsightRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ + GetInsightRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; /** - * Calls ListRecommendations. - * @function listRecommendations - * @memberof google.cloud.recommender.v1.Recommender + * Decodes a GetInsightRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1.GetInsightRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1.GetInsightRequest} GetInsightRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetInsightRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.GetInsightRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetInsightRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1.GetInsightRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1.GetInsightRequest} GetInsightRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetInsightRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetInsightRequest message. + * @function verify + * @memberof google.cloud.recommender.v1.GetInsightRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetInsightRequest.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"; + return null; + }; + + /** + * Creates a GetInsightRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1.GetInsightRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1.GetInsightRequest} GetInsightRequest + */ + GetInsightRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.GetInsightRequest) + return object; + var message = new $root.google.cloud.recommender.v1.GetInsightRequest(); + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from a GetInsightRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1.GetInsightRequest + * @static + * @param {google.cloud.recommender.v1.GetInsightRequest} message GetInsightRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetInsightRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; + + /** + * Converts this GetInsightRequest to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1.GetInsightRequest * @instance - * @param {google.cloud.recommender.v1.IListRecommendationsRequest} request ListRecommendationsRequest message or plain object - * @param {google.cloud.recommender.v1.Recommender.ListRecommendationsCallback} callback Node-style callback called with the error, if any, and ListRecommendationsResponse - * @returns {undefined} - * @variation 1 + * @returns {Object.} JSON object + */ + GetInsightRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GetInsightRequest; + })(); + + v1.MarkInsightAcceptedRequest = (function() { + + /** + * Properties of a MarkInsightAcceptedRequest. + * @memberof google.cloud.recommender.v1 + * @interface IMarkInsightAcceptedRequest + * @property {string|null} [name] MarkInsightAcceptedRequest name + * @property {Object.|null} [stateMetadata] MarkInsightAcceptedRequest stateMetadata + * @property {string|null} [etag] MarkInsightAcceptedRequest etag */ - Object.defineProperty(Recommender.prototype.listRecommendations = function listRecommendations(request, callback) { - return this.rpcCall(listRecommendations, $root.google.cloud.recommender.v1.ListRecommendationsRequest, $root.google.cloud.recommender.v1.ListRecommendationsResponse, request, callback); - }, "name", { value: "ListRecommendations" }); /** - * Calls ListRecommendations. - * @function listRecommendations - * @memberof google.cloud.recommender.v1.Recommender - * @instance - * @param {google.cloud.recommender.v1.IListRecommendationsRequest} request ListRecommendationsRequest message or plain object - * @returns {Promise} Promise - * @variation 2 + * Constructs a new MarkInsightAcceptedRequest. + * @memberof google.cloud.recommender.v1 + * @classdesc Represents a MarkInsightAcceptedRequest. + * @implements IMarkInsightAcceptedRequest + * @constructor + * @param {google.cloud.recommender.v1.IMarkInsightAcceptedRequest=} [properties] Properties to set */ + function MarkInsightAcceptedRequest(properties) { + this.stateMetadata = {}; + 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]]; + } /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#getRecommendation}. - * @memberof google.cloud.recommender.v1.Recommender - * @typedef GetRecommendationCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.cloud.recommender.v1.Recommendation} [response] Recommendation + * MarkInsightAcceptedRequest name. + * @member {string} name + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest + * @instance */ + MarkInsightAcceptedRequest.prototype.name = ""; /** - * Calls GetRecommendation. - * @function getRecommendation - * @memberof google.cloud.recommender.v1.Recommender + * MarkInsightAcceptedRequest stateMetadata. + * @member {Object.} stateMetadata + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest * @instance - * @param {google.cloud.recommender.v1.IGetRecommendationRequest} request GetRecommendationRequest message or plain object - * @param {google.cloud.recommender.v1.Recommender.GetRecommendationCallback} callback Node-style callback called with the error, if any, and Recommendation - * @returns {undefined} - * @variation 1 */ - Object.defineProperty(Recommender.prototype.getRecommendation = function getRecommendation(request, callback) { - return this.rpcCall(getRecommendation, $root.google.cloud.recommender.v1.GetRecommendationRequest, $root.google.cloud.recommender.v1.Recommendation, request, callback); - }, "name", { value: "GetRecommendation" }); + MarkInsightAcceptedRequest.prototype.stateMetadata = $util.emptyObject; /** - * Calls GetRecommendation. - * @function getRecommendation - * @memberof google.cloud.recommender.v1.Recommender + * MarkInsightAcceptedRequest etag. + * @member {string} etag + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest * @instance - * @param {google.cloud.recommender.v1.IGetRecommendationRequest} request GetRecommendationRequest message or plain object - * @returns {Promise} Promise - * @variation 2 */ + MarkInsightAcceptedRequest.prototype.etag = ""; /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationClaimed}. - * @memberof google.cloud.recommender.v1.Recommender - * @typedef MarkRecommendationClaimedCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.cloud.recommender.v1.Recommendation} [response] Recommendation + * Creates a new MarkInsightAcceptedRequest instance using the specified properties. + * @function create + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest + * @static + * @param {google.cloud.recommender.v1.IMarkInsightAcceptedRequest=} [properties] Properties to set + * @returns {google.cloud.recommender.v1.MarkInsightAcceptedRequest} MarkInsightAcceptedRequest instance */ + MarkInsightAcceptedRequest.create = function create(properties) { + return new MarkInsightAcceptedRequest(properties); + }; /** - * Calls MarkRecommendationClaimed. - * @function markRecommendationClaimed - * @memberof google.cloud.recommender.v1.Recommender - * @instance - * @param {google.cloud.recommender.v1.IMarkRecommendationClaimedRequest} request MarkRecommendationClaimedRequest message or plain object - * @param {google.cloud.recommender.v1.Recommender.MarkRecommendationClaimedCallback} callback Node-style callback called with the error, if any, and Recommendation - * @returns {undefined} - * @variation 1 + * Encodes the specified MarkInsightAcceptedRequest message. Does not implicitly {@link google.cloud.recommender.v1.MarkInsightAcceptedRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest + * @static + * @param {google.cloud.recommender.v1.IMarkInsightAcceptedRequest} message MarkInsightAcceptedRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - Object.defineProperty(Recommender.prototype.markRecommendationClaimed = function markRecommendationClaimed(request, callback) { - return this.rpcCall(markRecommendationClaimed, $root.google.cloud.recommender.v1.MarkRecommendationClaimedRequest, $root.google.cloud.recommender.v1.Recommendation, request, callback); - }, "name", { value: "MarkRecommendationClaimed" }); + MarkInsightAcceptedRequest.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.stateMetadata != null && Object.hasOwnProperty.call(message, "stateMetadata")) + for (var keys = Object.keys(message.stateMetadata), i = 0; i < keys.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.stateMetadata[keys[i]]).ldelim(); + if (message.etag != null && Object.hasOwnProperty.call(message, "etag")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.etag); + return writer; + }; /** - * Calls MarkRecommendationClaimed. - * @function markRecommendationClaimed - * @memberof google.cloud.recommender.v1.Recommender - * @instance - * @param {google.cloud.recommender.v1.IMarkRecommendationClaimedRequest} request MarkRecommendationClaimedRequest message or plain object - * @returns {Promise} Promise - * @variation 2 + * Encodes the specified MarkInsightAcceptedRequest message, length delimited. Does not implicitly {@link google.cloud.recommender.v1.MarkInsightAcceptedRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest + * @static + * @param {google.cloud.recommender.v1.IMarkInsightAcceptedRequest} message MarkInsightAcceptedRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ + MarkInsightAcceptedRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationSucceeded}. - * @memberof google.cloud.recommender.v1.Recommender - * @typedef MarkRecommendationSucceededCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.cloud.recommender.v1.Recommendation} [response] Recommendation + * Decodes a MarkInsightAcceptedRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recommender.v1.MarkInsightAcceptedRequest} MarkInsightAcceptedRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ + MarkInsightAcceptedRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.MarkInsightAcceptedRequest(), key; + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + reader.skip().pos++; + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + key = reader.string(); + reader.pos++; + message.stateMetadata[key] = reader.string(); + break; + case 3: + message.etag = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; /** - * Calls MarkRecommendationSucceeded. - * @function markRecommendationSucceeded - * @memberof google.cloud.recommender.v1.Recommender - * @instance - * @param {google.cloud.recommender.v1.IMarkRecommendationSucceededRequest} request MarkRecommendationSucceededRequest message or plain object - * @param {google.cloud.recommender.v1.Recommender.MarkRecommendationSucceededCallback} callback Node-style callback called with the error, if any, and Recommendation - * @returns {undefined} - * @variation 1 + * Decodes a MarkInsightAcceptedRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recommender.v1.MarkInsightAcceptedRequest} MarkInsightAcceptedRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Object.defineProperty(Recommender.prototype.markRecommendationSucceeded = function markRecommendationSucceeded(request, callback) { - return this.rpcCall(markRecommendationSucceeded, $root.google.cloud.recommender.v1.MarkRecommendationSucceededRequest, $root.google.cloud.recommender.v1.Recommendation, request, callback); - }, "name", { value: "MarkRecommendationSucceeded" }); + MarkInsightAcceptedRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; /** - * Calls MarkRecommendationSucceeded. - * @function markRecommendationSucceeded - * @memberof google.cloud.recommender.v1.Recommender - * @instance - * @param {google.cloud.recommender.v1.IMarkRecommendationSucceededRequest} request MarkRecommendationSucceededRequest message or plain object - * @returns {Promise} Promise - * @variation 2 + * Verifies a MarkInsightAcceptedRequest message. + * @function verify + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not */ + MarkInsightAcceptedRequest.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.stateMetadata != null && message.hasOwnProperty("stateMetadata")) { + if (!$util.isObject(message.stateMetadata)) + return "stateMetadata: object expected"; + var key = Object.keys(message.stateMetadata); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.stateMetadata[key[i]])) + return "stateMetadata: string{k:string} expected"; + } + if (message.etag != null && message.hasOwnProperty("etag")) + if (!$util.isString(message.etag)) + return "etag: string expected"; + return null; + }; /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationFailed}. - * @memberof google.cloud.recommender.v1.Recommender - * @typedef MarkRecommendationFailedCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.cloud.recommender.v1.Recommendation} [response] Recommendation + * Creates a MarkInsightAcceptedRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recommender.v1.MarkInsightAcceptedRequest} MarkInsightAcceptedRequest */ + MarkInsightAcceptedRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recommender.v1.MarkInsightAcceptedRequest) + return object; + var message = new $root.google.cloud.recommender.v1.MarkInsightAcceptedRequest(); + if (object.name != null) + message.name = String(object.name); + if (object.stateMetadata) { + if (typeof object.stateMetadata !== "object") + throw TypeError(".google.cloud.recommender.v1.MarkInsightAcceptedRequest.stateMetadata: object expected"); + message.stateMetadata = {}; + for (var keys = Object.keys(object.stateMetadata), i = 0; i < keys.length; ++i) + message.stateMetadata[keys[i]] = String(object.stateMetadata[keys[i]]); + } + if (object.etag != null) + message.etag = String(object.etag); + return message; + }; /** - * Calls MarkRecommendationFailed. - * @function markRecommendationFailed - * @memberof google.cloud.recommender.v1.Recommender - * @instance - * @param {google.cloud.recommender.v1.IMarkRecommendationFailedRequest} request MarkRecommendationFailedRequest message or plain object - * @param {google.cloud.recommender.v1.Recommender.MarkRecommendationFailedCallback} callback Node-style callback called with the error, if any, and Recommendation - * @returns {undefined} - * @variation 1 + * Creates a plain object from a MarkInsightAcceptedRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest + * @static + * @param {google.cloud.recommender.v1.MarkInsightAcceptedRequest} message MarkInsightAcceptedRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object */ - Object.defineProperty(Recommender.prototype.markRecommendationFailed = function markRecommendationFailed(request, callback) { - return this.rpcCall(markRecommendationFailed, $root.google.cloud.recommender.v1.MarkRecommendationFailedRequest, $root.google.cloud.recommender.v1.Recommendation, request, callback); - }, "name", { value: "MarkRecommendationFailed" }); + MarkInsightAcceptedRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.objects || options.defaults) + object.stateMetadata = {}; + if (options.defaults) { + object.name = ""; + object.etag = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + var keys2; + if (message.stateMetadata && (keys2 = Object.keys(message.stateMetadata)).length) { + object.stateMetadata = {}; + for (var j = 0; j < keys2.length; ++j) + object.stateMetadata[keys2[j]] = message.stateMetadata[keys2[j]]; + } + if (message.etag != null && message.hasOwnProperty("etag")) + object.etag = message.etag; + return object; + }; /** - * Calls MarkRecommendationFailed. - * @function markRecommendationFailed - * @memberof google.cloud.recommender.v1.Recommender + * Converts this MarkInsightAcceptedRequest to JSON. + * @function toJSON + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest * @instance - * @param {google.cloud.recommender.v1.IMarkRecommendationFailedRequest} request MarkRecommendationFailedRequest message or plain object - * @returns {Promise} Promise - * @variation 2 + * @returns {Object.} JSON object */ + MarkInsightAcceptedRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return Recommender; + return MarkInsightAcceptedRequest; })(); v1.ListRecommendationsRequest = (function() { diff --git a/packages/google-cloud-recommender/protos/protos.json b/packages/google-cloud-recommender/protos/protos.json index 96f6c92db1d..3788184dfb5 100644 --- a/packages/google-cloud-recommender/protos/protos.json +++ b/packages/google-cloud-recommender/protos/protos.json @@ -11,13 +11,109 @@ "csharp_namespace": "Google.Cloud.Recommender.V1", "go_package": "google.golang.org/genproto/googleapis/cloud/recommender/v1;recommender", "java_multiple_files": true, + "java_outer_classname": "RecommenderProto", "java_package": "com.google.cloud.recommender.v1", "objc_class_prefix": "CREC", "(google.api.resource_definition).type": "recommender.googleapis.com/Recommender", - "(google.api.resource_definition).pattern": "projects/{project}/locations/{location}/recommenders/{recommender}", - "java_outer_classname": "RecommenderProto" + "(google.api.resource_definition).pattern": "projects/{project}/locations/{location}/recommenders/{recommender}" }, "nested": { + "Insight": { + "options": { + "(google.api.resource).type": "recommender.googleapis.com/Insight", + "(google.api.resource).pattern": "projects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" + }, + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "description": { + "type": "string", + "id": 2 + }, + "targetResources": { + "rule": "repeated", + "type": "string", + "id": 9 + }, + "insightSubtype": { + "type": "string", + "id": 10 + }, + "content": { + "type": "google.protobuf.Struct", + "id": 3 + }, + "lastRefreshTime": { + "type": "google.protobuf.Timestamp", + "id": 4 + }, + "observationPeriod": { + "type": "google.protobuf.Duration", + "id": 5 + }, + "stateInfo": { + "type": "InsightStateInfo", + "id": 6 + }, + "category": { + "type": "Category", + "id": 7 + }, + "etag": { + "type": "string", + "id": 11 + }, + "associatedRecommendations": { + "rule": "repeated", + "type": "RecommendationReference", + "id": 8 + } + }, + "nested": { + "RecommendationReference": { + "fields": { + "recommendation": { + "type": "string", + "id": 1 + } + } + }, + "Category": { + "values": { + "CATEGORY_UNSPECIFIED": 0, + "COST": 1, + "SECURITY": 2, + "PERFORMANCE": 3, + "MANAGEABILITY": 4 + } + } + } + }, + "InsightStateInfo": { + "fields": { + "state": { + "type": "State", + "id": 1 + }, + "stateMetadata": { + "keyType": "string", + "type": "string", + "id": 2 + } + }, + "nested": { + "State": { + "values": { + "STATE_UNSPECIFIED": 0, + "ACTIVE": 1, + "ACCEPTED": 2, + "DISMISSED": 3 + } + } + } + }, "Recommendation": { "options": { "(google.api.resource).type": "recommender.googleapis.com/Recommendation", @@ -60,6 +156,21 @@ "etag": { "type": "string", "id": 11 + }, + "associatedInsights": { + "rule": "repeated", + "type": "InsightReference", + "id": 14 + } + }, + "nested": { + "InsightReference": { + "fields": { + "insight": { + "type": "string", + "id": 1 + } + } } } }, @@ -223,6 +334,31 @@ "(google.api.oauth_scopes)": "https://www.googleapis.com/auth/cloud-platform" }, "methods": { + "ListInsights": { + "requestType": "ListInsightsRequest", + "responseType": "ListInsightsResponse", + "options": { + "(google.api.http).get": "/v1/{parent=projects/*/locations/*/insightTypes/*}/insights", + "(google.api.method_signature)": "parent" + } + }, + "GetInsight": { + "requestType": "GetInsightRequest", + "responseType": "Insight", + "options": { + "(google.api.http).get": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}", + "(google.api.method_signature)": "name" + } + }, + "MarkInsightAccepted": { + "requestType": "MarkInsightAcceptedRequest", + "responseType": "Insight", + "options": { + "(google.api.http).post": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}:markAccepted", + "(google.api.http).body": "*", + "(google.api.method_signature)": "name,state_metadata,etag" + } + }, "ListRecommendations": { "requestType": "ListRecommendationsRequest", "responseType": "ListRecommendationsResponse", @@ -268,6 +404,91 @@ } } }, + "ListInsightsRequest": { + "fields": { + "parent": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "recommender.googleapis.com/InsightType" + } + }, + "pageSize": { + "type": "int32", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "pageToken": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "filter": { + "type": "string", + "id": 4, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "ListInsightsResponse": { + "fields": { + "insights": { + "rule": "repeated", + "type": "Insight", + "id": 1 + }, + "nextPageToken": { + "type": "string", + "id": 2 + } + } + }, + "GetInsightRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "recommender.googleapis.com/Insight" + } + } + } + }, + "MarkInsightAcceptedRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "recommender.googleapis.com/Insight" + } + }, + "stateMetadata": { + "keyType": "string", + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "etag": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + } + } + }, "ListRecommendationsRequest": { "fields": { "parent": { diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index c9d534a316b..61b1bca3136 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -35,10 +35,10 @@ import * as gapicConfig from './recommender_client_config.json'; const version = require('../../../package.json').version; /** - * Provides recommendations for cloud customers for various categories like - * performance optimization, cost savings, reliability, feature discovery, etc. - * These recommendations are generated automatically based on analysis of user - * resources, configuration and monitoring metrics. + * Provides insights and recommendations for cloud customers for various + * categories like performance optimization, cost savings, reliability, feature + * discovery, etc. Insights and recommendations are generated automatically + * based on analysis of user resources, configuration and monitoring metrics. * @class * @memberof v1 */ @@ -163,6 +163,12 @@ export class RecommenderClient { // identifiers to uniquely identify resources within the API. // Create useful helper objects for these. this.pathTemplates = { + insightPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' + ), + insightTypePathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/insightTypes/{insight_type}' + ), recommendationPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' ), @@ -175,6 +181,11 @@ export class RecommenderClient { // (e.g. 50 results at a time, with tokens to get subsequent // pages). Denote the keys used for pagination and results. this.descriptors.page = { + listInsights: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'insights' + ), listRecommendations: new this._gaxModule.PageDescriptor( 'pageToken', 'nextPageToken', @@ -228,6 +239,9 @@ export class RecommenderClient { // Iterate over each of the methods that the service provides // and create an API call method for each. const recommenderStubMethods = [ + 'listInsights', + 'getInsight', + 'markInsightAccepted', 'listRecommendations', 'getRecommendation', 'markRecommendationClaimed', @@ -312,6 +326,193 @@ export class RecommenderClient { // ------------------- // -- Service calls -- // ------------------- + getInsight( + request: protos.google.cloud.recommender.v1.IGetInsightRequest, + options?: gax.CallOptions + ): Promise< + [ + protos.google.cloud.recommender.v1.IInsight, + protos.google.cloud.recommender.v1.IGetInsightRequest | undefined, + {} | undefined + ] + >; + getInsight( + request: protos.google.cloud.recommender.v1.IGetInsightRequest, + options: gax.CallOptions, + callback: Callback< + protos.google.cloud.recommender.v1.IInsight, + protos.google.cloud.recommender.v1.IGetInsightRequest | null | undefined, + {} | null | undefined + > + ): void; + getInsight( + request: protos.google.cloud.recommender.v1.IGetInsightRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IInsight, + protos.google.cloud.recommender.v1.IGetInsightRequest | null | undefined, + {} | null | undefined + > + ): void; + /** + * Gets the requested insight. Requires the recommender.*.get IAM permission + * for the specified insight type. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the insight. + * @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 [Insight]{@link google.cloud.recommender.v1.Insight}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ + getInsight( + request: protos.google.cloud.recommender.v1.IGetInsightRequest, + optionsOrCallback?: + | gax.CallOptions + | Callback< + protos.google.cloud.recommender.v1.IInsight, + | protos.google.cloud.recommender.v1.IGetInsightRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.recommender.v1.IInsight, + protos.google.cloud.recommender.v1.IGetInsightRequest | null | undefined, + {} | null | undefined + > + ): Promise< + [ + protos.google.cloud.recommender.v1.IInsight, + protos.google.cloud.recommender.v1.IGetInsightRequest | undefined, + {} | undefined + ] + > | void { + request = request || {}; + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + name: request.name || '', + }); + this.initialize(); + return this.innerApiCalls.getInsight(request, options, callback); + } + markInsightAccepted( + request: protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest, + options?: gax.CallOptions + ): Promise< + [ + protos.google.cloud.recommender.v1.IInsight, + ( + | protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest + | undefined + ), + {} | undefined + ] + >; + markInsightAccepted( + request: protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest, + options: gax.CallOptions, + callback: Callback< + protos.google.cloud.recommender.v1.IInsight, + | protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest + | null + | undefined, + {} | null | undefined + > + ): void; + markInsightAccepted( + request: protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest, + callback: Callback< + protos.google.cloud.recommender.v1.IInsight, + | protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest + | null + | undefined, + {} | null | undefined + > + ): void; + /** + * Marks the Insight State as Accepted. Users can use this method to + * indicate to the Recommender API that they have applied some action based + * on the insight. This stops the insight content from being updated. + * + * MarkInsightAccepted can be applied to insights in ACTIVE state. Requires + * the recommender.*.update IAM permission for the specified insight. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the insight. + * @param {number[]} [request.stateMetadata] + * Optional. State properties user wish to include with this state. Full replace of the + * current state_metadata. + * @param {string} request.etag + * Required. Fingerprint of the Insight. Provides optimistic locking. + * @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 [Insight]{@link google.cloud.recommender.v1.Insight}. + * The promise has a method named "cancel" which cancels the ongoing API call. + */ + markInsightAccepted( + request: protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest, + optionsOrCallback?: + | gax.CallOptions + | Callback< + protos.google.cloud.recommender.v1.IInsight, + | protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.recommender.v1.IInsight, + | protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest + | null + | undefined, + {} | null | undefined + > + ): Promise< + [ + protos.google.cloud.recommender.v1.IInsight, + ( + | protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest + | undefined + ), + {} | undefined + ] + > | void { + request = request || {}; + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + name: request.name || '', + }); + this.initialize(); + return this.innerApiCalls.markInsightAccepted(request, options, callback); + } getRecommendation( request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, options?: gax.CallOptions @@ -436,10 +637,10 @@ export class RecommenderClient { > ): void; /** - * Mark the Recommendation State as Claimed. Users can use this method to + * Marks the Recommendation State as Claimed. Users can use this method to * indicate to the Recommender API that they are starting to apply the * recommendation themselves. This stops the recommendation content from being - * updated. + * updated. Associated insights are frozen and placed in the ACCEPTED state. * * MarkRecommendationClaimed can be applied to recommendations in CLAIMED, * SUCCEEDED, FAILED, or ACTIVE state. @@ -550,10 +751,11 @@ export class RecommenderClient { > ): void; /** - * Mark the Recommendation State as Succeeded. Users can use this method to + * Marks the Recommendation State as Succeeded. Users can use this method to * indicate to the Recommender API that they have applied the recommendation * themselves, and the operation was successful. This stops the recommendation - * content from being updated. + * content from being updated. Associated insights are frozen and placed in + * the ACCEPTED state. * * MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, * CLAIMED, SUCCEEDED, or FAILED state. @@ -664,10 +866,11 @@ export class RecommenderClient { > ): void; /** - * Mark the Recommendation State as Failed. Users can use this method to + * Marks the Recommendation State as Failed. Users can use this method to * indicate to the Recommender API that they have applied the recommendation * themselves, and the operation failed. This stops the recommendation content - * from being updated. + * from being updated. Associated insights are frozen and placed in the + * ACCEPTED state. * * MarkRecommendationFailed can be applied to recommendations in ACTIVE, * CLAIMED, SUCCEEDED, or FAILED state. @@ -744,6 +947,248 @@ export class RecommenderClient { ); } + listInsights( + request: protos.google.cloud.recommender.v1.IListInsightsRequest, + options?: gax.CallOptions + ): Promise< + [ + protos.google.cloud.recommender.v1.IInsight[], + protos.google.cloud.recommender.v1.IListInsightsRequest | null, + protos.google.cloud.recommender.v1.IListInsightsResponse + ] + >; + listInsights( + request: protos.google.cloud.recommender.v1.IListInsightsRequest, + options: gax.CallOptions, + callback: PaginationCallback< + protos.google.cloud.recommender.v1.IListInsightsRequest, + | protos.google.cloud.recommender.v1.IListInsightsResponse + | null + | undefined, + protos.google.cloud.recommender.v1.IInsight + > + ): void; + listInsights( + request: protos.google.cloud.recommender.v1.IListInsightsRequest, + callback: PaginationCallback< + protos.google.cloud.recommender.v1.IListInsightsRequest, + | protos.google.cloud.recommender.v1.IListInsightsResponse + | null + | undefined, + protos.google.cloud.recommender.v1.IInsight + > + ): void; + /** + * Lists insights for a Cloud project. Requires the recommender.*.list IAM + * permission for the specified insight type. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The container resource on which to execute the request. + * Acceptable formats: + * + * 1. + * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]", + * + * LOCATION here refers to GCP Locations: + * https://cloud.google.com/about/locations/ + * @param {number} [request.pageSize] + * Optional. The maximum number of results to return from this request. Non-positive + * values are ignored. If not specified, the server will determine the number + * of results to return. + * @param {string} [request.pageToken] + * Optional. If present, retrieves the next batch of results from the preceding call to + * this method. `page_token` must be the value of `next_page_token` from the + * previous response. The values of other method parameters must be identical + * to those in the previous call. + * @param {string} [request.filter] + * Optional. Filter expression to restrict the insights returned. Supported + * filter fields: state + * Eg: `state:"DISMISSED" or state:"ACTIVE" + * @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 [Insight]{@link google.cloud.recommender.v1.Insight}. + * The client library support 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. + * + * When autoPaginate: false is specified through options, the array has three elements. + * The first element is Array of [Insight]{@link google.cloud.recommender.v1.Insight} that corresponds to + * the one page received from the API server. + * If the second element is not null it contains the request object of type [ListInsightsRequest]{@link google.cloud.recommender.v1.ListInsightsRequest} + * that can be used to obtain the next page of the results. + * If it is null, the next page does not exist. + * The third element contains the raw response received from the API server. Its type is + * [ListInsightsResponse]{@link google.cloud.recommender.v1.ListInsightsResponse}. + * + * The promise has a method named "cancel" which cancels the ongoing API call. + */ + listInsights( + request: protos.google.cloud.recommender.v1.IListInsightsRequest, + optionsOrCallback?: + | gax.CallOptions + | PaginationCallback< + protos.google.cloud.recommender.v1.IListInsightsRequest, + | protos.google.cloud.recommender.v1.IListInsightsResponse + | null + | undefined, + protos.google.cloud.recommender.v1.IInsight + >, + callback?: PaginationCallback< + protos.google.cloud.recommender.v1.IListInsightsRequest, + | protos.google.cloud.recommender.v1.IListInsightsResponse + | null + | undefined, + protos.google.cloud.recommender.v1.IInsight + > + ): Promise< + [ + protos.google.cloud.recommender.v1.IInsight[], + protos.google.cloud.recommender.v1.IListInsightsRequest | null, + protos.google.cloud.recommender.v1.IListInsightsResponse + ] + > | void { + request = request || {}; + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.listInsights(request, options, callback); + } + + /** + * Equivalent to {@link listInsights}, but returns a NodeJS Stream object. + * + * This fetches the paged responses for {@link listInsights} continuously + * and invokes the callback registered for 'data' event for each element in the + * responses. + * + * The returned object has 'end' method when no more elements are required. + * + * autoPaginate option will be ignored. + * + * @see {@link https://nodejs.org/api/stream.html} + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The container resource on which to execute the request. + * Acceptable formats: + * + * 1. + * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]", + * + * LOCATION here refers to GCP Locations: + * https://cloud.google.com/about/locations/ + * @param {number} [request.pageSize] + * Optional. The maximum number of results to return from this request. Non-positive + * values are ignored. If not specified, the server will determine the number + * of results to return. + * @param {string} [request.pageToken] + * Optional. If present, retrieves the next batch of results from the preceding call to + * this method. `page_token` must be the value of `next_page_token` from the + * previous response. The values of other method parameters must be identical + * to those in the previous call. + * @param {string} [request.filter] + * Optional. Filter expression to restrict the insights returned. Supported + * filter fields: state + * Eg: `state:"DISMISSED" or state:"ACTIVE" + * @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 [Insight]{@link google.cloud.recommender.v1.Insight} on 'data' event. + */ + listInsightsStream( + request?: protos.google.cloud.recommender.v1.IListInsightsRequest, + options?: gax.CallOptions + ): Transform { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + const callSettings = new gax.CallSettings(options); + this.initialize(); + return this.descriptors.page.listInsights.createStream( + this.innerApiCalls.listInsights as gax.GaxCall, + request, + callSettings + ); + } + + /** + * Equivalent to {@link listInsights}, but returns an iterable object. + * + * for-await-of syntax is used with the iterable to recursively get response element on-demand. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The container resource on which to execute the request. + * Acceptable formats: + * + * 1. + * "projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]", + * + * LOCATION here refers to GCP Locations: + * https://cloud.google.com/about/locations/ + * @param {number} [request.pageSize] + * Optional. The maximum number of results to return from this request. Non-positive + * values are ignored. If not specified, the server will determine the number + * of results to return. + * @param {string} [request.pageToken] + * Optional. If present, retrieves the next batch of results from the preceding call to + * this method. `page_token` must be the value of `next_page_token` from the + * previous response. The values of other method parameters must be identical + * to those in the previous call. + * @param {string} [request.filter] + * Optional. Filter expression to restrict the insights returned. Supported + * filter fields: state + * Eg: `state:"DISMISSED" or state:"ACTIVE" + * @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 conforms to @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols. + */ + listInsightsAsync( + request?: protos.google.cloud.recommender.v1.IListInsightsRequest, + options?: gax.CallOptions + ): AsyncIterable { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + options = options || {}; + const callSettings = new gax.CallSettings(options); + this.initialize(); + return this.descriptors.page.listInsights.asyncIterate( + this.innerApiCalls['listInsights'] as GaxCall, + (request as unknown) as RequestType, + callSettings + ) as AsyncIterable; + } listRecommendations( request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, options?: gax.CallOptions @@ -990,6 +1435,126 @@ export class RecommenderClient { // -- Path templates -- // -------------------- + /** + * Return a fully-qualified insight resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} insight_type + * @param {string} insight + * @returns {string} Resource name string. + */ + insightPath( + project: string, + location: string, + insightType: string, + insight: string + ) { + return this.pathTemplates.insightPathTemplate.render({ + project: project, + location: location, + insight_type: insightType, + insight: insight, + }); + } + + /** + * Parse the project from Insight resource. + * + * @param {string} insightName + * A fully-qualified path representing Insight resource. + * @returns {string} A string representing the project. + */ + matchProjectFromInsightName(insightName: string) { + return this.pathTemplates.insightPathTemplate.match(insightName).project; + } + + /** + * Parse the location from Insight resource. + * + * @param {string} insightName + * A fully-qualified path representing Insight resource. + * @returns {string} A string representing the location. + */ + matchLocationFromInsightName(insightName: string) { + return this.pathTemplates.insightPathTemplate.match(insightName).location; + } + + /** + * Parse the insight_type from Insight resource. + * + * @param {string} insightName + * A fully-qualified path representing Insight resource. + * @returns {string} A string representing the insight_type. + */ + matchInsightTypeFromInsightName(insightName: string) { + return this.pathTemplates.insightPathTemplate.match(insightName) + .insight_type; + } + + /** + * Parse the insight from Insight resource. + * + * @param {string} insightName + * A fully-qualified path representing Insight resource. + * @returns {string} A string representing the insight. + */ + matchInsightFromInsightName(insightName: string) { + return this.pathTemplates.insightPathTemplate.match(insightName).insight; + } + + /** + * Return a fully-qualified insightType resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} insight_type + * @returns {string} Resource name string. + */ + insightTypePath(project: string, location: string, insightType: string) { + return this.pathTemplates.insightTypePathTemplate.render({ + project: project, + location: location, + insight_type: insightType, + }); + } + + /** + * Parse the project from InsightType resource. + * + * @param {string} insightTypeName + * A fully-qualified path representing InsightType resource. + * @returns {string} A string representing the project. + */ + matchProjectFromInsightTypeName(insightTypeName: string) { + return this.pathTemplates.insightTypePathTemplate.match(insightTypeName) + .project; + } + + /** + * Parse the location from InsightType resource. + * + * @param {string} insightTypeName + * A fully-qualified path representing InsightType resource. + * @returns {string} A string representing the location. + */ + matchLocationFromInsightTypeName(insightTypeName: string) { + return this.pathTemplates.insightTypePathTemplate.match(insightTypeName) + .location; + } + + /** + * Parse the insight_type from InsightType resource. + * + * @param {string} insightTypeName + * A fully-qualified path representing InsightType resource. + * @returns {string} A string representing the insight_type. + */ + matchInsightTypeFromInsightTypeName(insightTypeName: string) { + return this.pathTemplates.insightTypePathTemplate.match(insightTypeName) + .insight_type; + } + /** * Return a fully-qualified recommendation resource name string. * diff --git a/packages/google-cloud-recommender/src/v1/recommender_client_config.json b/packages/google-cloud-recommender/src/v1/recommender_client_config.json index 8cb8a1d116d..ce6027fdf13 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client_config.json +++ b/packages/google-cloud-recommender/src/v1/recommender_client_config.json @@ -20,6 +20,18 @@ } }, "methods": { + "ListInsights": { + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GetInsight": { + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "MarkInsightAccepted": { + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, "ListRecommendations": { "timeout_millis": 60000, "retry_codes_name": "idempotent", diff --git a/packages/google-cloud-recommender/src/v1/recommender_proto_list.json b/packages/google-cloud-recommender/src/v1/recommender_proto_list.json index f1045a2bf13..9492e306033 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_proto_list.json +++ b/packages/google-cloud-recommender/src/v1/recommender_proto_list.json @@ -1,4 +1,5 @@ [ + "../../protos/google/cloud/recommender/v1/insight.proto", "../../protos/google/cloud/recommender/v1/recommendation.proto", "../../protos/google/cloud/recommender/v1/recommender_service.proto" ] diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index e495ba29f09..01c6c83cd8a 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -3,23 +3,15 @@ { "git": { "name": ".", - "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "93654e9fe772bc7a9adbcd8d69ddd731be26810d" - } - }, - { - "git": { - "name": "googleapis", - "remote": "https://github.com/googleapis/googleapis.git", - "sha": "123873dc7e2be35252d172205f67a375e70e9747", - "internalRef": "311581003" + "remote": "git@github.com:googleapis/nodejs-recommender.git", + "sha": "ee4de5b2c7ed3b7b3503b37d041250fb2cf787c5" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "dc9caca650c77b7039e2bbc3339ffb34ae78e5b7" + "sha": "303271797a360f8a439203413f13a160f2f5b3b4" } } ], @@ -29,8 +21,8 @@ "source": "googleapis", "apiName": "recommender", "apiVersion": "v1", - "language": "typescript", - "generator": "gapic-generator-typescript" + "language": "nodejs", + "generator": "bazel" } } ] diff --git a/packages/google-cloud-recommender/synth.py b/packages/google-cloud-recommender/synth.py index 5f4a9e74c39..d0564ce406a 100644 --- a/packages/google-cloud-recommender/synth.py +++ b/packages/google-cloud-recommender/synth.py @@ -25,21 +25,11 @@ # Run the gapic generator -gapic = gcp.GAPICMicrogenerator() +gapic = gcp.GAPICBazel() name = 'recommender' versions = ['v1'] for version in versions: - library = gapic.typescript_library( - name, - version, - proto_path=f'google/cloud/{name}/{version}', - generator_args={ - 'grpc-service-config': f'google/cloud/{name}/{version}/{name}_grpc_service_config.json', - 'package-name': f'@google-cloud/{name}', - 'main-service': 'DataCatalog', # just for webpack.config.js - }, - extra_proto_files=['google/cloud/common_resources.proto'], - ) + library = gapic.node_library(name, version) s.copy(library, excludes=['package.json', 'README.md']) # Copy common templates diff --git a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts index 392b0ee5df4..676b6d9cc76 100644 --- a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts +++ b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts @@ -194,6 +194,232 @@ describe('v1.RecommenderClient', () => { assert.strictEqual(result, fakeProjectId); }); + describe('getInsight', () => { + it('invokes getInsight without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.GetInsightRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Insight() + ); + client.innerApiCalls.getInsight = stubSimpleCall(expectedResponse); + const [response] = await client.getInsight(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.getInsight as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes getInsight without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.GetInsightRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Insight() + ); + client.innerApiCalls.getInsight = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.getInsight( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IInsight | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.getInsight as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); + + it('invokes getInsight with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.GetInsightRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.getInsight = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(client.getInsight(request), expectedError); + assert( + (client.innerApiCalls.getInsight as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + }); + + describe('markInsightAccepted', () => { + it('invokes markInsightAccepted without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkInsightAcceptedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Insight() + ); + client.innerApiCalls.markInsightAccepted = stubSimpleCall( + expectedResponse + ); + const [response] = await client.markInsightAccepted(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markInsightAccepted as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes markInsightAccepted without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkInsightAcceptedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.recommender.v1.Insight() + ); + client.innerApiCalls.markInsightAccepted = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.markInsightAccepted( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IInsight | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.markInsightAccepted as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); + + it('invokes markInsightAccepted with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.MarkInsightAcceptedRequest() + ); + request.name = ''; + const expectedHeaderRequestParams = 'name='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.markInsightAccepted = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(client.markInsightAccepted(request), expectedError); + assert( + (client.innerApiCalls.markInsightAccepted as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + }); + describe('getRecommendation', () => { it('invokes getRecommendation without error', async () => { const client = new recommenderModule.v1.RecommenderClient({ @@ -657,15 +883,15 @@ describe('v1.RecommenderClient', () => { }); }); - describe('listRecommendations', () => { - it('invokes listRecommendations without error', async () => { + describe('listInsights', () => { + it('invokes listInsights without error', async () => { const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + new protos.google.cloud.recommender.v1.ListInsightsRequest() ); request.parent = ''; const expectedHeaderRequestParams = 'parent='; @@ -677,36 +903,28 @@ describe('v1.RecommenderClient', () => { }, }; const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), + generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), ]; - client.innerApiCalls.listRecommendations = stubSimpleCall( - expectedResponse - ); - const [response] = await client.listRecommendations(request); + client.innerApiCalls.listInsights = stubSimpleCall(expectedResponse); + const [response] = await client.listInsights(request); assert.deepStrictEqual(response, expectedResponse); assert( - (client.innerApiCalls.listRecommendations as SinonStub) + (client.innerApiCalls.listInsights as SinonStub) .getCall(0) .calledWith(request, expectedOptions, undefined) ); }); - it('invokes listRecommendations without error using callback', async () => { + it('invokes listInsights without error using callback', async () => { const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + new protos.google.cloud.recommender.v1.ListInsightsRequest() ); request.parent = ''; const expectedHeaderRequestParams = 'parent='; @@ -718,25 +936,19 @@ describe('v1.RecommenderClient', () => { }, }; const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), + generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), ]; - client.innerApiCalls.listRecommendations = stubSimpleCallWithCallback( + client.innerApiCalls.listInsights = stubSimpleCallWithCallback( expectedResponse ); const promise = new Promise((resolve, reject) => { - client.listRecommendations( + client.listInsights( request, ( err?: Error | null, - result?: protos.google.cloud.recommender.v1.IRecommendation[] | null + result?: protos.google.cloud.recommender.v1.IInsight[] | null ) => { if (err) { reject(err); @@ -749,20 +961,20 @@ describe('v1.RecommenderClient', () => { const response = await promise; assert.deepStrictEqual(response, expectedResponse); assert( - (client.innerApiCalls.listRecommendations as SinonStub) + (client.innerApiCalls.listInsights as SinonStub) .getCall(0) .calledWith(request, expectedOptions /*, callback defined above */) ); }); - it('invokes listRecommendations with error', async () => { + it('invokes listInsights with error', async () => { const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + new protos.google.cloud.recommender.v1.ListInsightsRequest() ); request.parent = ''; const expectedHeaderRequestParams = 'parent='; @@ -774,49 +986,43 @@ describe('v1.RecommenderClient', () => { }, }; const expectedError = new Error('expected'); - client.innerApiCalls.listRecommendations = stubSimpleCall( + client.innerApiCalls.listInsights = stubSimpleCall( undefined, expectedError ); - await assert.rejects(client.listRecommendations(request), expectedError); + await assert.rejects(client.listInsights(request), expectedError); assert( - (client.innerApiCalls.listRecommendations as SinonStub) + (client.innerApiCalls.listInsights as SinonStub) .getCall(0) .calledWith(request, expectedOptions, undefined) ); }); - it('invokes listRecommendationsStream without error', async () => { + it('invokes listInsightsStream without error', async () => { const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + new protos.google.cloud.recommender.v1.ListInsightsRequest() ); request.parent = ''; const expectedHeaderRequestParams = 'parent='; const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() - ), + generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), ]; - client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall( + client.descriptors.page.listInsights.createStream = stubPageStreamingCall( expectedResponse ); - const stream = client.listRecommendationsStream(request); + const stream = client.listInsightsStream(request); const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; + const responses: protos.google.cloud.recommender.v1.Insight[] = []; stream.on( 'data', - (response: protos.google.cloud.recommender.v1.Recommendation) => { + (response: protos.google.cloud.recommender.v1.Insight) => { responses.push(response); } ); @@ -830,12 +1036,12 @@ describe('v1.RecommenderClient', () => { const responses = await promise; assert.deepStrictEqual(responses, expectedResponse); assert( - (client.descriptors.page.listRecommendations.createStream as SinonStub) + (client.descriptors.page.listInsights.createStream as SinonStub) .getCall(0) - .calledWith(client.innerApiCalls.listRecommendations, request) + .calledWith(client.innerApiCalls.listInsights, request) ); assert.strictEqual( - (client.descriptors.page.listRecommendations + (client.descriptors.page.listInsights .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ 'x-goog-request-params' ], @@ -843,28 +1049,28 @@ describe('v1.RecommenderClient', () => { ); }); - it('invokes listRecommendationsStream with error', async () => { + it('invokes listInsightsStream with error', async () => { const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + new protos.google.cloud.recommender.v1.ListInsightsRequest() ); request.parent = ''; const expectedHeaderRequestParams = 'parent='; const expectedError = new Error('expected'); - client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall( + client.descriptors.page.listInsights.createStream = stubPageStreamingCall( undefined, expectedError ); - const stream = client.listRecommendationsStream(request); + const stream = client.listInsightsStream(request); const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; + const responses: protos.google.cloud.recommender.v1.Insight[] = []; stream.on( 'data', - (response: protos.google.cloud.recommender.v1.Recommendation) => { + (response: protos.google.cloud.recommender.v1.Insight) => { responses.push(response); } ); @@ -877,12 +1083,12 @@ describe('v1.RecommenderClient', () => { }); await assert.rejects(promise, expectedError); assert( - (client.descriptors.page.listRecommendations.createStream as SinonStub) + (client.descriptors.page.listInsights.createStream as SinonStub) .getCall(0) - .calledWith(client.innerApiCalls.listRecommendations, request) + .calledWith(client.innerApiCalls.listInsights, request) ); assert.strictEqual( - (client.descriptors.page.listRecommendations + (client.descriptors.page.listInsights .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ 'x-goog-request-params' ], @@ -890,20 +1096,330 @@ describe('v1.RecommenderClient', () => { ); }); - it('uses async iteration with listRecommendations without error', async () => { + it('uses async iteration with listInsights without error', async () => { const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); const request = generateSampleMessage( - new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + new protos.google.cloud.recommender.v1.ListInsightsRequest() ); request.parent = ''; const expectedHeaderRequestParams = 'parent='; const expectedResponse = [ - generateSampleMessage( - new protos.google.cloud.recommender.v1.Recommendation() + generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), + generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), + ]; + client.descriptors.page.listInsights.asyncIterate = stubAsyncIterationCall( + expectedResponse + ); + const responses: protos.google.cloud.recommender.v1.IInsight[] = []; + const iterable = client.listInsightsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + (client.descriptors.page.listInsights + .asyncIterate as SinonStub).getCall(0).args[1], + request + ); + assert.strictEqual( + (client.descriptors.page.listInsights + .asyncIterate as SinonStub).getCall(0).args[2].otherArgs.headers[ + 'x-goog-request-params' + ], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with listInsights with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListInsightsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedError = new Error('expected'); + client.descriptors.page.listInsights.asyncIterate = stubAsyncIterationCall( + undefined, + expectedError + ); + const iterable = client.listInsightsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.recommender.v1.IInsight[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + (client.descriptors.page.listInsights + .asyncIterate as SinonStub).getCall(0).args[1], + request + ); + assert.strictEqual( + (client.descriptors.page.listInsights + .asyncIterate as SinonStub).getCall(0).args[2].otherArgs.headers[ + 'x-goog-request-params' + ], + expectedHeaderRequestParams + ); + }); + }); + + describe('listRecommendations', () => { + it('invokes listRecommendations without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + ]; + client.innerApiCalls.listRecommendations = stubSimpleCall( + expectedResponse + ); + const [response] = await client.listRecommendations(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.listRecommendations as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes listRecommendations without error using callback', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + ]; + client.innerApiCalls.listRecommendations = stubSimpleCallWithCallback( + expectedResponse + ); + const promise = new Promise((resolve, reject) => { + client.listRecommendations( + request, + ( + err?: Error | null, + result?: protos.google.cloud.recommender.v1.IRecommendation[] | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.listRecommendations as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); + + it('invokes listRecommendations with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.listRecommendations = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects(client.listRecommendations(request), expectedError); + assert( + (client.innerApiCalls.listRecommendations as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes listRecommendationsStream without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() + ), + ]; + client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall( + expectedResponse + ); + const stream = client.listRecommendationsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; + stream.on( + 'data', + (response: protos.google.cloud.recommender.v1.Recommendation) => { + 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.listRecommendations.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listRecommendations, request) + ); + assert.strictEqual( + (client.descriptors.page.listRecommendations + .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ + 'x-goog-request-params' + ], + expectedHeaderRequestParams + ); + }); + + it('invokes listRecommendationsStream with error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedError = new Error('expected'); + client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall( + undefined, + expectedError + ); + const stream = client.listRecommendationsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; + stream.on( + 'data', + (response: protos.google.cloud.recommender.v1.Recommendation) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listRecommendations.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listRecommendations, request) + ); + assert.strictEqual( + (client.descriptors.page.listRecommendations + .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ + 'x-goog-request-params' + ], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with listRecommendations without error', async () => { + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recommender.v1.ListRecommendationsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recommender.v1.Recommendation() ), generateSampleMessage( new protos.google.cloud.recommender.v1.Recommendation() @@ -974,6 +1490,146 @@ describe('v1.RecommenderClient', () => { }); describe('Path templates', () => { + describe('insight', () => { + const fakePath = '/rendered/path/insight'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + insight_type: 'insightTypeValue', + insight: 'insightValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.insightPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.insightPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('insightPath', () => { + const result = client.insightPath( + 'projectValue', + 'locationValue', + 'insightTypeValue', + 'insightValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.insightPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromInsightName', () => { + const result = client.matchProjectFromInsightName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.insightPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromInsightName', () => { + const result = client.matchLocationFromInsightName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.insightPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchInsightTypeFromInsightName', () => { + const result = client.matchInsightTypeFromInsightName(fakePath); + assert.strictEqual(result, 'insightTypeValue'); + assert( + (client.pathTemplates.insightPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchInsightFromInsightName', () => { + const result = client.matchInsightFromInsightName(fakePath); + assert.strictEqual(result, 'insightValue'); + assert( + (client.pathTemplates.insightPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('insightType', () => { + const fakePath = '/rendered/path/insightType'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + insight_type: 'insightTypeValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.insightTypePathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.insightTypePathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('insightTypePath', () => { + const result = client.insightTypePath( + 'projectValue', + 'locationValue', + 'insightTypeValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.insightTypePathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromInsightTypeName', () => { + const result = client.matchProjectFromInsightTypeName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.insightTypePathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromInsightTypeName', () => { + const result = client.matchLocationFromInsightTypeName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.insightTypePathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchInsightTypeFromInsightTypeName', () => { + const result = client.matchInsightTypeFromInsightTypeName(fakePath); + assert.strictEqual(result, 'insightTypeValue'); + assert( + (client.pathTemplates.insightTypePathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + describe('recommendation', () => { const fakePath = '/rendered/path/recommendation'; const expectedParameters = { diff --git a/packages/google-cloud-recommender/webpack.config.js b/packages/google-cloud-recommender/webpack.config.js index 40a80f89007..09bd9240c8a 100644 --- a/packages/google-cloud-recommender/webpack.config.js +++ b/packages/google-cloud-recommender/webpack.config.js @@ -17,8 +17,8 @@ const path = require('path'); module.exports = { entry: './src/index.ts', output: { - library: 'DataCatalog', - filename: './data-catalog.js', + library: 'Recommender', + filename: './recommender.js', }, node: { child_process: 'empty', From 2e20f093eb6665b105c70873bde7d5c022417baf Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 9 Jul 2020 22:38:15 -0700 Subject: [PATCH 064/158] build: typeo in nodejs .gitattribute (#94) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/cc99acfa-05b8-434b-9500-2f6faf2eaa02/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/799d8e6522c1ef7cb55a70d9ea0b15e045c3d00b --- packages/google-cloud-recommender/.gitattributes | 2 +- packages/google-cloud-recommender/synth.metadata | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/google-cloud-recommender/.gitattributes b/packages/google-cloud-recommender/.gitattributes index 2e63216ae9c..d4f4169b28b 100644 --- a/packages/google-cloud-recommender/.gitattributes +++ b/packages/google-cloud-recommender/.gitattributes @@ -1,3 +1,3 @@ *.ts text eol=lf -*.js test eol=lf +*.js text eol=lf protos/* linguist-generated diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 01c6c83cd8a..3dc90efb43d 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -3,15 +3,23 @@ { "git": { "name": ".", - "remote": "git@github.com:googleapis/nodejs-recommender.git", - "sha": "ee4de5b2c7ed3b7b3503b37d041250fb2cf787c5" + "remote": "https://github.com/googleapis/nodejs-recommender.git", + "sha": "5c7b40f02628f84bdbbb6210689bf8a05da8c224" + } + }, + { + "git": { + "name": "googleapis", + "remote": "https://github.com/googleapis/googleapis.git", + "sha": "4f4aa3a03e470f1390758b9d89eb1aa88837a5be", + "internalRef": "320300472" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "303271797a360f8a439203413f13a160f2f5b3b4" + "sha": "799d8e6522c1ef7cb55a70d9ea0b15e045c3d00b" } } ], From 7096d1482cd5f0c307ef048e9309f3233937a21d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 10 Jul 2020 18:51:33 +0200 Subject: [PATCH 065/158] chore(deps): update dependency ts-loader to v8 (#93) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ts-loader](https://togithub.com/TypeStrong/ts-loader) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/ts-loader/7.0.5/8.0.0) | --- ### Release Notes
TypeStrong/ts-loader ### [`v8.0.0`](https://togithub.com/TypeStrong/ts-loader/blob/master/CHANGELOG.md#v800) [Compare Source](https://togithub.com/TypeStrong/ts-loader/compare/v7.0.5...v8.0.0) - [Support for symlinks in project references](https://togithub.com/TypeStrong/ts-loader/pull/1136) - thanks [@​sheetalkamat](https://togithub.com/sheetalkamat)! - `ts-loader` now supports TypeScript 3.6 and greater **BREAKING CHANGE**
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index d341908c13c..baa33827f05 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -43,7 +43,7 @@ "null-loader": "^4.0.0", "pack-n-play": "^1.0.0-2", "sinon": "^9.0.1", - "ts-loader": "^7.0.0", + "ts-loader": "^8.0.0", "typescript": "^3.8.3", "webpack": "^4.41.2", "webpack-cli": "^3.3.10" From 61afdd336f35b27b01b36470b9cdd7d723a36d9f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 12 Jul 2020 18:49:52 +0200 Subject: [PATCH 066/158] chore(deps): update dependency @types/mocha to v8 (#95) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@types/mocha](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/@types%2fmocha/7.0.2/8.0.0) | --- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index baa33827f05..60fffe1a450 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -30,7 +30,7 @@ "google-gax": "^2.1.0" }, "devDependencies": { - "@types/mocha": "^7.0.0", + "@types/mocha": "^8.0.0", "@types/node": "^12.0.0", "@types/sinon": "^9.0.0", "c8": "^7.0.0", From ec4cf4623f2b605a7bab19b78be74f3341e629dc Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2020 10:08:44 -0700 Subject: [PATCH 067/158] chore: release 3.1.1 (#87) --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 2eb0066bbbd..84460df5194 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [3.1.1](https://www.github.com/googleapis/nodejs-recommender/compare/v3.1.0...v3.1.1) (2020-07-12) + + +### Bug Fixes + +* update node issue template ([#86](https://www.github.com/googleapis/nodejs-recommender/issues/86)) ([93654e9](https://www.github.com/googleapis/nodejs-recommender/commit/93654e9fe772bc7a9adbcd8d69ddd731be26810d)) + ## [3.1.0](https://www.github.com/googleapis/nodejs-recommender/compare/v3.0.0...v3.1.0) (2020-06-12) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 60fffe1a450..f69571cec44 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "3.1.0", + "version": "3.1.1", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index f40bc04fb87..c1659654440 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^3.1.0" + "@google-cloud/recommender": "^3.1.1" }, "devDependencies": { "c8": "^7.0.0", From 4435ef763529ee205125495a087b287aeb7b1ef7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2020 11:12:56 -0700 Subject: [PATCH 068/158] chore: release 3.2.0 (#97) * updated CHANGELOG.md [ci skip] * updated package.json [ci skip] * updated samples/package.json Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 84460df5194..61109506a62 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [3.2.0](https://www.github.com/googleapis/nodejs-recommender/compare/v3.1.1...v3.2.0) (2020-07-13) + + +### Features + +* adds methods for interacting with insights ([#96](https://www.github.com/googleapis/nodejs-recommender/issues/96)) ([0004d75](https://www.github.com/googleapis/nodejs-recommender/commit/0004d75f5681e0231473ab2abd167c1c1eeb3b8c)) + ### [3.1.1](https://www.github.com/googleapis/nodejs-recommender/compare/v3.1.0...v3.1.1) (2020-07-12) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index f69571cec44..4ebfe73ac1a 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "3.1.1", + "version": "3.2.0", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index c1659654440..72e2b7156db 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^3.1.1" + "@google-cloud/recommender": "^3.2.0" }, "devDependencies": { "c8": "^7.0.0", From 35876c12dd9995e8f994eeb35b8d8e59bfe4caf2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 17 Jul 2020 16:02:37 -0700 Subject: [PATCH 069/158] build: add Node 8 tests (#101) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/5b03461e-47c0-40e8-a8ad-c465ee146cc5/targets - [ ] To automatically regenerate this PR, check this box. --- .../google-cloud-recommender/protos/protos.js | 214 ++++++++++++++---- .../google-cloud-recommender/synth.metadata | 2 +- 2 files changed, 171 insertions(+), 45 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index ae8deffaaac..22b967f9eb6 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -869,7 +869,7 @@ InsightStateInfo.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.InsightStateInfo(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.InsightStateInfo(), key, value; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -877,12 +877,26 @@ message.state = reader.int32(); break; case 2: - reader.skip().pos++; if (message.stateMetadata === $util.emptyObject) message.stateMetadata = {}; - key = reader.string(); - reader.pos++; - message.stateMetadata[key] = reader.string(); + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.stateMetadata[key] = value; break; default: reader.skipType(tag & 7); @@ -2302,7 +2316,7 @@ Operation.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Operation(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.Operation(), key, value; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -2331,20 +2345,48 @@ message.valueMatcher = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); break; case 8: - reader.skip().pos++; if (message.pathFilters === $util.emptyObject) message.pathFilters = {}; - key = reader.string(); - reader.pos++; - message.pathFilters[key] = $root.google.protobuf.Value.decode(reader, reader.uint32()); + var end2 = reader.uint32() + reader.pos; + key = ""; + value = null; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = $root.google.protobuf.Value.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.pathFilters[key] = value; break; case 11: - reader.skip().pos++; if (message.pathValueMatchers === $util.emptyObject) message.pathValueMatchers = {}; - key = reader.string(); - reader.pos++; - message.pathValueMatchers[key] = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); + var end2 = reader.uint32() + reader.pos; + key = ""; + value = null; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.pathValueMatchers[key] = value; break; default: reader.skipType(tag & 7); @@ -3381,7 +3423,7 @@ RecommendationStateInfo.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.RecommendationStateInfo(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.RecommendationStateInfo(), key, value; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -3389,12 +3431,26 @@ message.state = reader.int32(); break; case 2: - reader.skip().pos++; if (message.stateMetadata === $util.emptyObject) message.stateMetadata = {}; - key = reader.string(); - reader.pos++; - message.stateMetadata[key] = reader.string(); + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.stateMetadata[key] = value; break; default: reader.skipType(tag & 7); @@ -4649,7 +4705,7 @@ MarkInsightAcceptedRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.MarkInsightAcceptedRequest(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.MarkInsightAcceptedRequest(), key, value; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -4657,12 +4713,26 @@ message.name = reader.string(); break; case 2: - reader.skip().pos++; if (message.stateMetadata === $util.emptyObject) message.stateMetadata = {}; - key = reader.string(); - reader.pos++; - message.stateMetadata[key] = reader.string(); + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.stateMetadata[key] = value; break; case 3: message.etag = reader.string(); @@ -5575,7 +5645,7 @@ MarkRecommendationClaimedRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.MarkRecommendationClaimedRequest(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.MarkRecommendationClaimedRequest(), key, value; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -5583,12 +5653,26 @@ message.name = reader.string(); break; case 2: - reader.skip().pos++; if (message.stateMetadata === $util.emptyObject) message.stateMetadata = {}; - key = reader.string(); - reader.pos++; - message.stateMetadata[key] = reader.string(); + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.stateMetadata[key] = value; break; case 3: message.etag = reader.string(); @@ -5829,7 +5913,7 @@ MarkRecommendationSucceededRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.MarkRecommendationSucceededRequest(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.MarkRecommendationSucceededRequest(), key, value; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -5837,12 +5921,26 @@ message.name = reader.string(); break; case 2: - reader.skip().pos++; if (message.stateMetadata === $util.emptyObject) message.stateMetadata = {}; - key = reader.string(); - reader.pos++; - message.stateMetadata[key] = reader.string(); + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.stateMetadata[key] = value; break; case 3: message.etag = reader.string(); @@ -6083,7 +6181,7 @@ MarkRecommendationFailedRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.MarkRecommendationFailedRequest(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recommender.v1.MarkRecommendationFailedRequest(), key, value; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -6091,12 +6189,26 @@ message.name = reader.string(); break; case 2: - reader.skip().pos++; if (message.stateMetadata === $util.emptyObject) message.stateMetadata = {}; - key = reader.string(); - reader.pos++; - message.stateMetadata[key] = reader.string(); + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.stateMetadata[key] = value; break; case 3: message.etag = reader.string(); @@ -16731,17 +16843,31 @@ Struct.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Struct(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Struct(), key, value; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - reader.skip().pos++; if (message.fields === $util.emptyObject) message.fields = {}; - key = reader.string(); - reader.pos++; - message.fields[key] = $root.google.protobuf.Value.decode(reader, reader.uint32()); + var end2 = reader.uint32() + reader.pos; + key = ""; + value = null; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = $root.google.protobuf.Value.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.fields[key] = value; break; default: reader.skipType(tag & 7); diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 3dc90efb43d..ffb97a4335c 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "5c7b40f02628f84bdbbb6210689bf8a05da8c224" + "sha": "15d9a16c631471f94d182a9ca3db3e3879010f25" } }, { From 07fcc151f65571ccf285c3173b4188eba74fc995 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 17 Jul 2020 16:28:10 -0700 Subject: [PATCH 070/158] build: missing closing paren in publish script, delete template for Node 8, add config files for cloud-rad (#102) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/5b03461e-47c0-40e8-a8ad-c465ee146cc5/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/21f1470ecd01424dc91c70f1a7c798e4e87d1eec Source-Link: https://github.com/googleapis/synthtool/commit/388e10f5ae302d3e8de1fac99f3a95d1ab8f824a Source-Link: https://github.com/googleapis/synthtool/commit/d82deccf657a66e31bd5da9efdb96c6fa322fc7e --- .../api-extractor.json | 369 ++++++++++++++++++ .../google-cloud-recommender/synth.metadata | 2 +- 2 files changed, 370 insertions(+), 1 deletion(-) create mode 100644 packages/google-cloud-recommender/api-extractor.json diff --git a/packages/google-cloud-recommender/api-extractor.json b/packages/google-cloud-recommender/api-extractor.json new file mode 100644 index 00000000000..de228294b23 --- /dev/null +++ b/packages/google-cloud-recommender/api-extractor.json @@ -0,0 +1,369 @@ +/** + * Config file for API Extractor. For more info, please visit: https://api-extractor.com + */ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + /** + * Optionally specifies another JSON config file that this file extends from. This provides a way for + * standard settings to be shared across multiple projects. + * + * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains + * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be + * resolved using NodeJS require(). + * + * SUPPORTED TOKENS: none + * DEFAULT VALUE: "" + */ + // "extends": "./shared/api-extractor-base.json" + // "extends": "my-package/include/api-extractor-base.json" + + /** + * Determines the "" token that can be used with other config file settings. The project folder + * typically contains the tsconfig.json and package.json config files, but the path is user-defined. + * + * The path is resolved relative to the folder of the config file that contains the setting. + * + * The default value for "projectFolder" is the token "", which means the folder is determined by traversing + * parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder + * that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error + * will be reported. + * + * SUPPORTED TOKENS: + * DEFAULT VALUE: "" + */ + // "projectFolder": "..", + + /** + * (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor + * analyzes the symbols exported by this module. + * + * The file extension must be ".d.ts" and not ".ts". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + */ + "mainEntryPointFilePath": "/protos/protos.d.ts", + + /** + * A list of NPM package names whose exports should be treated as part of this package. + * + * For example, suppose that Webpack is used to generate a distributed bundle for the project "library1", + * and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part + * of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly + * imports library2. To avoid this, we can specify: + * + * "bundledPackages": [ "library2" ], + * + * This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been + * local files for library1. + */ + "bundledPackages": [ ], + + /** + * Determines how the TypeScript compiler engine will be invoked by API Extractor. + */ + "compiler": { + /** + * Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * Note: This setting will be ignored if "overrideTsconfig" is used. + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/tsconfig.json" + */ + // "tsconfigFilePath": "/tsconfig.json", + + /** + * Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk. + * The object must conform to the TypeScript tsconfig schema: + * + * http://json.schemastore.org/tsconfig + * + * If omitted, then the tsconfig.json file will be read from the "projectFolder". + * + * DEFAULT VALUE: no overrideTsconfig section + */ + // "overrideTsconfig": { + // . . . + // } + + /** + * This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended + * and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when + * dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses + * for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck. + * + * DEFAULT VALUE: false + */ + // "skipLibCheck": true, + }, + + /** + * Configures how the API report file (*.api.md) will be generated. + */ + "apiReport": { + /** + * (REQUIRED) Whether to generate an API report. + */ + "enabled": true, + + /** + * The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce + * a full file path. + * + * The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/". + * + * SUPPORTED TOKENS: , + * DEFAULT VALUE: ".api.md" + */ + // "reportFileName": ".api.md", + + /** + * Specifies the folder where the API report file is written. The file name portion is determined by + * the "reportFileName" setting. + * + * The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy, + * e.g. for an API review. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/etc/" + */ + // "reportFolder": "/etc/", + + /** + * Specifies the folder where the temporary report file is written. The file name portion is determined by + * the "reportFileName" setting. + * + * After the temporary file is written to disk, it is compared with the file in the "reportFolder". + * If they are different, a production build will fail. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/" + */ + // "reportTempFolder": "/temp/" + }, + + /** + * Configures how the doc model file (*.api.json) will be generated. + */ + "docModel": { + /** + * (REQUIRED) Whether to generate a doc model file. + */ + "enabled": true, + + /** + * The output path for the doc model file. The file extension should be ".api.json". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/.api.json" + */ + // "apiJsonFilePath": "/temp/.api.json" + }, + + /** + * Configures how the .d.ts rollup file will be generated. + */ + "dtsRollup": { + /** + * (REQUIRED) Whether to generate the .d.ts rollup file. + */ + "enabled": true, + + /** + * Specifies the output path for a .d.ts rollup file to be generated without any trimming. + * This file will include all declarations that are exported by the main entry point. + * + * If the path is an empty string, then this file will not be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/dist/.d.ts" + */ + // "untrimmedFilePath": "/dist/.d.ts", + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release. + * This file will include only declarations that are marked as "@public" or "@beta". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "betaTrimmedFilePath": "/dist/-beta.d.ts", + + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release. + * This file will include only declarations that are marked as "@public". + * + * If the path is an empty string, then this file will not be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "publicTrimmedFilePath": "/dist/-public.d.ts", + + /** + * When a declaration is trimmed, by default it will be replaced by a code comment such as + * "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the + * declaration completely. + * + * DEFAULT VALUE: false + */ + // "omitTrimmingComments": true + }, + + /** + * Configures how the tsdoc-metadata.json file will be generated. + */ + "tsdocMetadata": { + /** + * Whether to generate the tsdoc-metadata.json file. + * + * DEFAULT VALUE: true + */ + // "enabled": true, + + /** + * Specifies where the TSDoc metadata file should be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * The default value is "", which causes the path to be automatically inferred from the "tsdocMetadata", + * "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup + * falls back to "tsdoc-metadata.json" in the package folder. + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "tsdocMetadataFilePath": "/dist/tsdoc-metadata.json" + }, + + /** + * Specifies what type of newlines API Extractor should use when writing output files. By default, the output files + * will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead. + * To use the OS's default newline kind, specify "os". + * + * DEFAULT VALUE: "crlf" + */ + // "newlineKind": "crlf", + + /** + * Configures how API Extractor reports error and warning messages produced during analysis. + * + * There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages. + */ + "messages": { + /** + * Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing + * the input .d.ts files. + * + * TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551" + * + * DEFAULT VALUE: A single "default" entry with logLevel=warning. + */ + "compilerMessageReporting": { + /** + * Configures the default routing for messages that don't match an explicit rule in this table. + */ + "default": { + /** + * Specifies whether the message should be written to the the tool's output log. Note that + * the "addToApiReportFile" property may supersede this option. + * + * Possible values: "error", "warning", "none" + * + * Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail + * and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes + * the "--local" option), the warning is displayed but the build will not fail. + * + * DEFAULT VALUE: "warning" + */ + "logLevel": "warning", + + /** + * When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md), + * then the message will be written inside that file; otherwise, the message is instead logged according to + * the "logLevel" option. + * + * DEFAULT VALUE: false + */ + // "addToApiReportFile": false + }, + + // "TS2551": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + }, + + /** + * Configures handling of messages reported by API Extractor during its analysis. + * + * API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag" + * + * DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings + */ + "extractorMessageReporting": { + "default": { + "logLevel": "warning", + // "addToApiReportFile": false + }, + + // "ae-extra-release-tag": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + }, + + /** + * Configures handling of messages reported by the TSDoc parser when analyzing code comments. + * + * TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text" + * + * DEFAULT VALUE: A single "default" entry with logLevel=warning. + */ + "tsdocMessageReporting": { + "default": { + "logLevel": "warning", + // "addToApiReportFile": false + } + + // "tsdoc-link-tag-unescaped-text": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + } + } + +} diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index ffb97a4335c..e39425844f1 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "799d8e6522c1ef7cb55a70d9ea0b15e045c3d00b" + "sha": "21f1470ecd01424dc91c70f1a7c798e4e87d1eec" } } ], From ab736524c9d5a7075295d14cbec99c69736a298b Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Tue, 21 Jul 2020 14:44:24 -0400 Subject: [PATCH 071/158] chore: add dev dependencies for cloud-rad ref docs (#103) --- packages/google-cloud-recommender/package.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 4ebfe73ac1a..0c29172580a 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -24,7 +24,9 @@ "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test": "c8 mocha build/test", "prelint": "cd samples; npm link ../; npm install", - "precompile": "gts clean" + "precompile": "gts clean", + "api-extractor": "api-extractor run --local", + "api-documenter": "api-documenter yaml --input-folder=temp" }, "dependencies": { "google-gax": "^2.1.0" @@ -46,7 +48,9 @@ "ts-loader": "^8.0.0", "typescript": "^3.8.3", "webpack": "^4.41.2", - "webpack-cli": "^3.3.10" + "webpack-cli": "^3.3.10", + "@microsoft/api-documenter": "^7.8.10", + "@microsoft/api-extractor": "^7.8.10" }, "engines": { "node": ">=10" From 755d452629b47baa4b33bfa9da61261b149f6fdb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 23 Jul 2020 10:31:33 -0700 Subject: [PATCH 072/158] build: rename _toc to toc (#104) Source-Author: F. Hinkelmann Source-Date: Tue Jul 21 10:53:20 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: 99c93fe09f8c1dca09dfc0301c8668e3a70dd796 Source-Link: https://github.com/googleapis/synthtool/commit/99c93fe09f8c1dca09dfc0301c8668e3a70dd796 Co-authored-by: sofisl <55454395+sofisl@users.noreply.github.com> --- packages/google-cloud-recommender/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index e39425844f1..895bfd9a144 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "15d9a16c631471f94d182a9ca3db3e3879010f25" + "sha": "ad6923d4bb046bbf4524b8f42820c0f743955920" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "21f1470ecd01424dc91c70f1a7c798e4e87d1eec" + "sha": "99c93fe09f8c1dca09dfc0301c8668e3a70dd796" } } ], From 32165f6d4d286de2cf18387168e21af03e958c74 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 24 Jul 2020 13:30:08 -0700 Subject: [PATCH 073/158] chore: move gitattributes files to node templates (#105) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/452e1583-6c83-495a-ad97-fb34fc6f653f/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/3a00b7fea8c4c83eaff8eb207f530a2e3e8e1de3 --- packages/google-cloud-recommender/.gitattributes | 1 + packages/google-cloud-recommender/synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/.gitattributes b/packages/google-cloud-recommender/.gitattributes index d4f4169b28b..33739cb74e4 100644 --- a/packages/google-cloud-recommender/.gitattributes +++ b/packages/google-cloud-recommender/.gitattributes @@ -1,3 +1,4 @@ *.ts text eol=lf *.js text eol=lf protos/* linguist-generated +**/api-extractor.json linguist-language=JSON-with-Comments diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 895bfd9a144..4ed2dfe05e0 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "ad6923d4bb046bbf4524b8f42820c0f743955920" + "sha": "cc6e1dea735e1c0560e679f5417dfd06dd0b1af6" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "99c93fe09f8c1dca09dfc0301c8668e3a70dd796" + "sha": "3a00b7fea8c4c83eaff8eb207f530a2e3e8e1de3" } } ], From 8248bc9d0ac069e6681426ba65fea1f75de195ea Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 29 Jul 2020 16:36:16 -0700 Subject: [PATCH 074/158] chore(node): fix kokoro build path for cloud-rad (#106) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/4bdc1826-2f69-49f1-a63b-94f99cceb5ee/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/89d431fb2975fc4e0ed24995a6e6dfc8ff4c24fa --- packages/google-cloud-recommender/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 4ed2dfe05e0..6dc784d1172 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "cc6e1dea735e1c0560e679f5417dfd06dd0b1af6" + "sha": "e9bc0eec0681581c1daa3eb622b527b783852853" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "3a00b7fea8c4c83eaff8eb207f530a2e3e8e1de3" + "sha": "89d431fb2975fc4e0ed24995a6e6dfc8ff4c24fa" } } ], From bfac4246f45375ce62b7f9a29a798530b9ddb198 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 30 Jul 2020 19:10:29 -0700 Subject: [PATCH 075/158] build: update protos (#107) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/b205fd33-200c-4298-88b8-18b0d1c79a3e/targets - [ ] To automatically regenerate this PR, check this box. --- packages/google-cloud-recommender/protos/protos.d.ts | 2 +- packages/google-cloud-recommender/protos/protos.js | 2 +- packages/google-cloud-recommender/synth.metadata | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index 3ddbc61b5de..2bec683ac34 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -13,7 +13,7 @@ // limitations under the License. import * as Long from "long"; -import * as $protobuf from "protobufjs"; +import {protobuf as $protobuf} from "google-gax"; /** Namespace google. */ export namespace google { diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index 22b967f9eb6..2f82f82152a 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -19,7 +19,7 @@ define(["protobufjs/minimal"], factory); /* CommonJS */ else if (typeof require === 'function' && typeof module === 'object' && module && module.exports) - module.exports = factory(require("protobufjs/minimal")); + module.exports = factory(require("google-gax").protobufMinimal); })(this, function($protobuf) { "use strict"; diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 6dc784d1172..8d3a019831e 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "e9bc0eec0681581c1daa3eb622b527b783852853" + "sha": "67416173da7f77584be24228bddb372a425adb3a" } }, { From e48e0c98d637e1d3f772b2c6af1f002de79160ad Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sun, 2 Aug 2020 21:50:03 -0700 Subject: [PATCH 076/158] docs: add links to the CHANGELOG from the README.md for Java and Node (#108) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/7b446397-88f3-4463-9e7d-d2ce7069989d/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/5936421202fb53ed4641bcb824017dd393a3dbcc --- packages/google-cloud-recommender/README.md | 3 +++ packages/google-cloud-recommender/synth.metadata | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index 21ee70e5067..67e10ffcf83 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -14,6 +14,9 @@ Recommender client for Node.js +A comprehensive list of changes in each version may be found in +[the CHANGELOG](https://github.com/googleapis/nodejs-recommender/blob/master/CHANGELOG.md). + * [Recommender Node.js Client API Reference][client-docs] * [Recommender Documentation][product-docs] * [github.com/googleapis/nodejs-recommender](https://github.com/googleapis/nodejs-recommender) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 8d3a019831e..3825f52c211 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "67416173da7f77584be24228bddb372a425adb3a" + "sha": "f34b482119ba454c54086f2cb8758df08223c837" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "89d431fb2975fc4e0ed24995a6e6dfc8ff4c24fa" + "sha": "5936421202fb53ed4641bcb824017dd393a3dbcc" } } ], From f2b7fcccf3b254e0d4481e5353d086986eea1460 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 10 Aug 2020 10:56:14 -0700 Subject: [PATCH 077/158] build: --credential-file-override is no longer required (#109) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/96fb0e9d-e02a-4451-878f-e646368369cc/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/94421c47802f56a44c320257b2b4c190dc7d6b68 --- packages/google-cloud-recommender/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 3825f52c211..22d40273ebe 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "f34b482119ba454c54086f2cb8758df08223c837" + "sha": "d6d90eb2b7c181bc4c9c248f73ea0ecd2eedf4ba" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5936421202fb53ed4641bcb824017dd393a3dbcc" + "sha": "94421c47802f56a44c320257b2b4c190dc7d6b68" } } ], From 1d5528d2ff0ee3c64351ea8620eaf837addcf730 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 12 Aug 2020 21:14:05 -0700 Subject: [PATCH 078/158] build: use gapic-generator-typescript v1.0.7. (#110) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/b742586e-df31-4aac-8092-78288e9ea8e7/targets - [ ] To automatically regenerate this PR, check this box. PiperOrigin-RevId: 325949033 Source-Link: https://github.com/googleapis/googleapis/commit/94006b3cb8d2fb44703cf535da15608eed6bf7db --- .../google-cloud-recommender/src/v1/recommender_client.ts | 5 ++--- packages/google-cloud-recommender/synth.metadata | 6 +++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 61b1bca3136..35c242cf2aa 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -262,12 +262,11 @@ export class RecommenderClient { } ); + const descriptor = this.descriptors.page[methodName] || undefined; const apiCall = this._gaxModule.createApiCall( callPromise, this._defaults[methodName], - this.descriptors.page[methodName] || - this.descriptors.stream[methodName] || - this.descriptors.longrunning[methodName] + descriptor ); this.innerApiCalls[methodName] = apiCall; diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 22d40273ebe..b3e03345b19 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,15 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "d6d90eb2b7c181bc4c9c248f73ea0ecd2eedf4ba" + "sha": "678959c5753c55b80108ac910ee8694c207f2dae" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "4f4aa3a03e470f1390758b9d89eb1aa88837a5be", - "internalRef": "320300472" + "sha": "94006b3cb8d2fb44703cf535da15608eed6bf7db", + "internalRef": "325949033" } }, { From ae64aeb01e19249024241b81eda1f70c7371a823 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 12 Aug 2020 21:21:41 -0700 Subject: [PATCH 079/158] build: update docs and publish scripts (#111) * chore: update cloud rad kokoro build job Delete `SharePoint` item from TOC. Source-Author: F. Hinkelmann Source-Date: Tue Aug 11 11:25:41 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: bd0deaa1113b588d70449535ab9cbf0f2bd0e72f Source-Link: https://github.com/googleapis/synthtool/commit/bd0deaa1113b588d70449535ab9cbf0f2bd0e72f * build: perform publish using Node 12 Source-Author: Benjamin E. Coe Source-Date: Wed Aug 12 12:12:29 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 5747555f7620113d9a2078a48f4c047a99d31b3e Source-Link: https://github.com/googleapis/synthtool/commit/5747555f7620113d9a2078a48f4c047a99d31b3e Co-authored-by: Justin Beckwith --- packages/google-cloud-recommender/synth.metadata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index b3e03345b19..ce91a71ffc7 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "94421c47802f56a44c320257b2b4c190dc7d6b68" + "sha": "5747555f7620113d9a2078a48f4c047a99d31b3e" } } ], From afd6f473a3ba18b4b208ac0d9c734e4955c947bb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 19 Aug 2020 22:08:25 -0700 Subject: [PATCH 080/158] chore: start tracking obsolete files --- .../google-cloud-recommender/synth.metadata | 82 ++++++++++++++++++- 1 file changed, 78 insertions(+), 4 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index ce91a71ffc7..1efe59d9ce8 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,22 +4,22 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "678959c5753c55b80108ac910ee8694c207f2dae" + "sha": "8e7be8b41cd643f5016c5077091383f736bf96fe" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "94006b3cb8d2fb44703cf535da15608eed6bf7db", - "internalRef": "325949033" + "sha": "4c5071b615d96ef9dfd6a63d8429090f1f2872bb", + "internalRef": "327369997" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5747555f7620113d9a2078a48f4c047a99d31b3e" + "sha": "1a60ff2a3975c2f5054431588bd95db9c3b862ba" } } ], @@ -33,5 +33,79 @@ "generator": "bazel" } } + ], + "generatedFiles": [ + ".eslintignore", + ".eslintrc.json", + ".gitattributes", + ".github/ISSUE_TEMPLATE/bug_report.md", + ".github/ISSUE_TEMPLATE/feature_request.md", + ".github/ISSUE_TEMPLATE/support_request.md", + ".github/PULL_REQUEST_TEMPLATE.md", + ".github/publish.yml", + ".github/release-please.yml", + ".github/workflows/ci.yaml", + ".gitignore", + ".jsdoc.js", + ".kokoro/.gitattributes", + ".kokoro/common.cfg", + ".kokoro/continuous/node10/common.cfg", + ".kokoro/continuous/node10/docs.cfg", + ".kokoro/continuous/node10/lint.cfg", + ".kokoro/continuous/node10/samples-test.cfg", + ".kokoro/continuous/node10/system-test.cfg", + ".kokoro/continuous/node10/test.cfg", + ".kokoro/continuous/node12/common.cfg", + ".kokoro/continuous/node12/test.cfg", + ".kokoro/docs.sh", + ".kokoro/lint.sh", + ".kokoro/populate-secrets.sh", + ".kokoro/presubmit/node10/common.cfg", + ".kokoro/presubmit/node10/samples-test.cfg", + ".kokoro/presubmit/node10/system-test.cfg", + ".kokoro/presubmit/node12/common.cfg", + ".kokoro/presubmit/node12/test.cfg", + ".kokoro/publish.sh", + ".kokoro/release/docs-devsite.cfg", + ".kokoro/release/docs-devsite.sh", + ".kokoro/release/docs.cfg", + ".kokoro/release/docs.sh", + ".kokoro/release/publish.cfg", + ".kokoro/samples-test.sh", + ".kokoro/system-test.sh", + ".kokoro/test.bat", + ".kokoro/test.sh", + ".kokoro/trampoline.sh", + ".mocharc.js", + ".nycrc", + ".prettierignore", + ".prettierrc.js", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.md", + "LICENSE", + "README.md", + "api-extractor.json", + "linkinator.config.json", + "package-lock.json.1262594109", + "protos/google/cloud/recommender/v1/insight.proto", + "protos/google/cloud/recommender/v1/recommendation.proto", + "protos/google/cloud/recommender/v1/recommender_service.proto", + "protos/protos.d.ts", + "protos/protos.js", + "protos/protos.json", + "renovate.json", + "samples/README.md", + "samples/package-lock.json.2762573019", + "src/index.ts", + "src/v1/index.ts", + "src/v1/recommender_client.ts", + "src/v1/recommender_client_config.json", + "src/v1/recommender_proto_list.json", + "system-test/fixtures/sample/src/index.js", + "system-test/fixtures/sample/src/index.ts", + "system-test/install.ts", + "test/gapic_recommender_v1.ts", + "tsconfig.json", + "webpack.config.js" ] } \ No newline at end of file From 4f8f1e820a793c5ecb6c728ca2d39f3a29e9cebc Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 21 Aug 2020 16:30:29 -0700 Subject: [PATCH 081/158] build: move system and samples test from Node 10 to Node 12 (#113) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/ba2d388f-b3b2-4ad7-a163-0c6b4d86894f/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/05de3e1e14a0b07eab8b474e669164dbd31f81fb --- packages/google-cloud-recommender/synth.metadata | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 1efe59d9ce8..cb8e4a44273 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "8e7be8b41cd643f5016c5077091383f736bf96fe" + "sha": "4b806dcfee5236e52b13b6a5ee93083d24cde0eb" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1a60ff2a3975c2f5054431588bd95db9c3b862ba" + "sha": "05de3e1e14a0b07eab8b474e669164dbd31f81fb" } } ], @@ -51,19 +51,19 @@ ".kokoro/common.cfg", ".kokoro/continuous/node10/common.cfg", ".kokoro/continuous/node10/docs.cfg", - ".kokoro/continuous/node10/lint.cfg", - ".kokoro/continuous/node10/samples-test.cfg", - ".kokoro/continuous/node10/system-test.cfg", ".kokoro/continuous/node10/test.cfg", ".kokoro/continuous/node12/common.cfg", + ".kokoro/continuous/node12/lint.cfg", + ".kokoro/continuous/node12/samples-test.cfg", + ".kokoro/continuous/node12/system-test.cfg", ".kokoro/continuous/node12/test.cfg", ".kokoro/docs.sh", ".kokoro/lint.sh", ".kokoro/populate-secrets.sh", ".kokoro/presubmit/node10/common.cfg", - ".kokoro/presubmit/node10/samples-test.cfg", - ".kokoro/presubmit/node10/system-test.cfg", ".kokoro/presubmit/node12/common.cfg", + ".kokoro/presubmit/node12/samples-test.cfg", + ".kokoro/presubmit/node12/system-test.cfg", ".kokoro/presubmit/node12/test.cfg", ".kokoro/publish.sh", ".kokoro/release/docs-devsite.cfg", @@ -86,7 +86,6 @@ "README.md", "api-extractor.json", "linkinator.config.json", - "package-lock.json.1262594109", "protos/google/cloud/recommender/v1/insight.proto", "protos/google/cloud/recommender/v1/recommendation.proto", "protos/google/cloud/recommender/v1/recommender_service.proto", @@ -95,7 +94,6 @@ "protos/protos.json", "renovate.json", "samples/README.md", - "samples/package-lock.json.2762573019", "src/index.ts", "src/v1/index.ts", "src/v1/recommender_client.ts", From ba4590c3d96f3c715b1edcf5c46288637aebc7cf Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 28 Aug 2020 10:02:06 -0700 Subject: [PATCH 082/158] build: track flaky tests for "nightly", add new secrets for tagging (#114) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/36077dab-6428-471f-9375-a14a1a227f45/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/8cf6d2834ad14318e64429c3b94f6443ae83daf9 --- packages/google-cloud-recommender/synth.metadata | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index cb8e4a44273..58e98c6366b 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "4b806dcfee5236e52b13b6a5ee93083d24cde0eb" + "sha": "f7438d1d6aaadfc59d78080ee4c730f459088e85" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "05de3e1e14a0b07eab8b474e669164dbd31f81fb" + "sha": "8cf6d2834ad14318e64429c3b94f6443ae83daf9" } } ], @@ -42,7 +42,6 @@ ".github/ISSUE_TEMPLATE/feature_request.md", ".github/ISSUE_TEMPLATE/support_request.md", ".github/PULL_REQUEST_TEMPLATE.md", - ".github/publish.yml", ".github/release-please.yml", ".github/workflows/ci.yaml", ".gitignore", From 35a4a73348c3ea19e58d51c66bd607302e744872 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 12 Sep 2020 14:06:31 -0700 Subject: [PATCH 083/158] build(test): recursively find test files; fail on unsupported dependency versions (#117) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/a1c25589-9aeb-49f0-922e-4037066a83df/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/fdd03c161003ab97657cc0218f25c82c89ddf4b6 --- packages/google-cloud-recommender/.mocharc.js | 3 ++- packages/google-cloud-recommender/synth.metadata | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/google-cloud-recommender/.mocharc.js b/packages/google-cloud-recommender/.mocharc.js index ff7b34fa5d1..0b600509bed 100644 --- a/packages/google-cloud-recommender/.mocharc.js +++ b/packages/google-cloud-recommender/.mocharc.js @@ -14,7 +14,8 @@ const config = { "enable-source-maps": true, "throw-deprecation": true, - "timeout": 10000 + "timeout": 10000, + "recursive": true } if (process.env.MOCHA_THROW_DEPRECATION === 'false') { delete config['throw-deprecation']; diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 58e98c6366b..6788c7cf5bc 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "f7438d1d6aaadfc59d78080ee4c730f459088e85" + "sha": "ca9608da8d012123aa48f8f83185f9ae12ed8d9d" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "8cf6d2834ad14318e64429c3b94f6443ae83daf9" + "sha": "fdd03c161003ab97657cc0218f25c82c89ddf4b6" } } ], From b9de73d1e4855e380dd10cc86b1867831f4ab7b0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 1 Oct 2020 04:56:13 -0700 Subject: [PATCH 084/158] chore: update bucket for cloud-rad (#118) Co-authored-by: gcf-merge-on-green[bot] <60162190+gcf-merge-on-green[bot]@users.noreply.github.com> Source-Author: F. Hinkelmann Source-Date: Wed Sep 30 14:13:57 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: 079dcce498117f9570cebe6e6cff254b38ba3860 Source-Link: https://github.com/googleapis/synthtool/commit/079dcce498117f9570cebe6e6cff254b38ba3860 --- packages/google-cloud-recommender/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 6788c7cf5bc..cd27e0c11e1 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "ca9608da8d012123aa48f8f83185f9ae12ed8d9d" + "sha": "d27ed6c4b96868f39e2badd2363ad4d104544ff4" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "fdd03c161003ab97657cc0218f25c82c89ddf4b6" + "sha": "079dcce498117f9570cebe6e6cff254b38ba3860" } } ], From be8db5dec59682f7ad9f60eb62a16aa100aa1e44 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 7 Oct 2020 18:24:46 -0700 Subject: [PATCH 085/158] build(node_library): migrate to Trampoline V2 (#119) Source-Author: Takashi Matsuo Source-Date: Fri Oct 2 12:13:27 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 0c868d49b8e05bc1f299bc773df9eb4ef9ed96e9 Source-Link: https://github.com/googleapis/synthtool/commit/0c868d49b8e05bc1f299bc773df9eb4ef9ed96e9 --- packages/google-cloud-recommender/synth.metadata | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index cd27e0c11e1..74ed590bf9d 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "d27ed6c4b96868f39e2badd2363ad4d104544ff4" + "sha": "32a25b2c0f8c75683338e97c4f19143e06f07d7a" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "079dcce498117f9570cebe6e6cff254b38ba3860" + "sha": "0c868d49b8e05bc1f299bc773df9eb4ef9ed96e9" } } ], @@ -75,10 +75,12 @@ ".kokoro/test.bat", ".kokoro/test.sh", ".kokoro/trampoline.sh", + ".kokoro/trampoline_v2.sh", ".mocharc.js", ".nycrc", ".prettierignore", ".prettierrc.js", + ".trampolinerc", "CODE_OF_CONDUCT.md", "CONTRIBUTING.md", "LICENSE", From bdba0790949116eb84d3adfc2c22d33083376c4e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 12 Oct 2020 21:54:21 +0200 Subject: [PATCH 086/158] chore(deps): update dependency webpack-cli to v4 (#122) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [webpack-cli](https://togithub.com/webpack/webpack-cli) | devDependencies | major | [`^3.3.10` -> `^4.0.0`](https://renovatebot.com/diffs/npm/webpack-cli/3.3.12/4.0.0) | --- ### Release Notes
webpack/webpack-cli ### [`v4.0.0`](https://togithub.com/webpack/webpack-cli/blob/master/CHANGELOG.md#​400-httpsgithubcomwebpackwebpack-clicomparewebpack-cli400-rc1webpack-cli400-2020-10-10) [Compare Source](https://togithub.com/webpack/webpack-cli/compare/v3.3.12...webpack-cli@4.0.0) ##### Bug Fixes - add compilation lifecycle in watch instance ([#​1903](https://togithub.com/webpack/webpack-cli/issues/1903)) ([02b6d21](https://togithub.com/webpack/webpack-cli/commit/02b6d21eaa20166a7ed37816de716b8fc22b756a)) - cleanup `package-utils` package ([#​1822](https://togithub.com/webpack/webpack-cli/issues/1822)) ([fd5b92b](https://togithub.com/webpack/webpack-cli/commit/fd5b92b3cd40361daec5bf4486e455a41f4c9738)) - cli-executer supplies args further up ([#​1904](https://togithub.com/webpack/webpack-cli/issues/1904)) ([097564a](https://togithub.com/webpack/webpack-cli/commit/097564a851b36b63e0a6bf88144997ef65aa057a)) - exit code for validation errors ([59f6303](https://togithub.com/webpack/webpack-cli/commit/59f63037fcbdbb8934b578b9adf5725bc4ae1235)) - exit process in case of schema errors ([71e89b4](https://togithub.com/webpack/webpack-cli/commit/71e89b4092d953ea587cc4f606451ab78cbcdb93)) ##### Features - assign config paths in build dependencies in cache config ([#​1900](https://togithub.com/webpack/webpack-cli/issues/1900)) ([7e90f11](https://togithub.com/webpack/webpack-cli/commit/7e90f110b119f36ef9def4f66cf4e17ccf1438cd))
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 0c29172580a..36c092a5354 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -48,7 +48,7 @@ "ts-loader": "^8.0.0", "typescript": "^3.8.3", "webpack": "^4.41.2", - "webpack-cli": "^3.3.10", + "webpack-cli": "^4.0.0", "@microsoft/api-documenter": "^7.8.10", "@microsoft/api-extractor": "^7.8.10" }, From 162ae9969d011d4d34e04764548dfa08c1c3cd82 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 14 Oct 2020 23:02:32 +0200 Subject: [PATCH 087/158] chore(deps): update dependency webpack to v5 (#121) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [webpack](https://togithub.com/webpack/webpack) | devDependencies | major | [`^4.41.2` -> `^5.0.0`](https://renovatebot.com/diffs/npm/webpack/4.44.2/5.1.0) | --- ### Release Notes
webpack/webpack ### [`v5.1.0`](https://togithub.com/webpack/webpack/releases/v5.1.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v5.0.0...v5.1.0) ### Features - expose `webpack` property from `Compiler` - expose `cleverMerge`, `EntryOptionPlugin`, `DynamicEntryPlugin` ### Bugfixes - missing `require("..").xxx` in try-catch produces a warning instead of an error now - handle reexports in concatenated modules correctly when they are side-effect-free - fix incorrect deprecation message for ModuleTemplate.hooks.hash ### [`v5.0.0`](https://togithub.com/webpack/webpack/releases/v5.0.0) [Compare Source](https://togithub.com/webpack/webpack/compare/v4.44.2...v5.0.0) [Announcement and changelog](https://webpack.js.org/blog/2020-10-10-webpack-5-release/)
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 36c092a5354..d08026dee21 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -47,7 +47,7 @@ "sinon": "^9.0.1", "ts-loader": "^8.0.0", "typescript": "^3.8.3", - "webpack": "^4.41.2", + "webpack": "^5.0.0", "webpack-cli": "^4.0.0", "@microsoft/api-documenter": "^7.8.10", "@microsoft/api-extractor": "^7.8.10" From a9816bd6f98e22eb0f7d4a7fe6103c5cbe148fcb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 16 Oct 2020 10:10:06 -0700 Subject: [PATCH 088/158] build: only check --engine-strict for production deps (#123) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/a30f98da-7f8e-4a25-a598-8357af693448/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/5451633881133e5573cc271a18e73b18caca8b1b --- packages/google-cloud-recommender/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 74ed590bf9d..61dc3f014b1 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "32a25b2c0f8c75683338e97c4f19143e06f07d7a" + "sha": "a091ff585784da7ad4ba7e23fb249660bf808c3a" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "0c868d49b8e05bc1f299bc773df9eb4ef9ed96e9" + "sha": "5451633881133e5573cc271a18e73b18caca8b1b" } } ], From b81e3dcdb2ba24af805e93a147ba9c9a75911bdb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 21 Oct 2020 16:14:36 -0700 Subject: [PATCH 089/158] chore: clean up Node.js TOC for cloud-rad (#124) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/35103ef2-979e-4beb-a5b8-34c85c93e32a/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/901ddd44e9ef7887ee681b9183bbdea99437fdcc Source-Link: https://github.com/googleapis/synthtool/commit/f96d3b455fe27c3dc7bc37c3c9cd27b1c6d269c8 --- packages/google-cloud-recommender/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 61dc3f014b1..c3cfee121d7 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "a091ff585784da7ad4ba7e23fb249660bf808c3a" + "sha": "a649697a9e5e7a2b66a2dfbc68845cdb5d6c0d3e" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5451633881133e5573cc271a18e73b18caca8b1b" + "sha": "901ddd44e9ef7887ee681b9183bbdea99437fdcc" } } ], From 83a2a5bead3c0a79bc0a3c1a7a0f9bccea9493b7 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 27 Oct 2020 08:38:46 -0700 Subject: [PATCH 090/158] docs: updated code of conduct (includes update to actions) (#127) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/313ec1b8-2bb0-49a2-a59d-9211defb7a66/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/89c849ba5013e45e8fb688b138f33c2ec6083dc5 Source-Link: https://github.com/googleapis/synthtool/commit/a783321fd55f010709294455584a553f4b24b944 Source-Link: https://github.com/googleapis/synthtool/commit/b7413d38b763827c72c0360f0a3d286c84656eeb Source-Link: https://github.com/googleapis/synthtool/commit/5f6ef0ec5501d33c4667885b37a7685a30d41a76 --- .../CODE_OF_CONDUCT.md | 123 +++++++++++++----- .../google-cloud-recommender/synth.metadata | 4 +- 2 files changed, 89 insertions(+), 38 deletions(-) diff --git a/packages/google-cloud-recommender/CODE_OF_CONDUCT.md b/packages/google-cloud-recommender/CODE_OF_CONDUCT.md index 46b2a08ea6d..2add2547a81 100644 --- a/packages/google-cloud-recommender/CODE_OF_CONDUCT.md +++ b/packages/google-cloud-recommender/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/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index c3cfee121d7..70ef7ea5cd9 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "a649697a9e5e7a2b66a2dfbc68845cdb5d6c0d3e" + "sha": "802b53f95ff1ee68c63f8f4143c2df368a020cc6" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "901ddd44e9ef7887ee681b9183bbdea99437fdcc" + "sha": "89c849ba5013e45e8fb688b138f33c2ec6083dc5" } } ], From 3ed6039013c238c2f2415ba46a0d95ae114a98ad Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 29 Oct 2020 08:07:41 -0700 Subject: [PATCH 091/158] fix: updating the v1 retry params name for ListInsights, GetInsight, and MarkInsightAccepted. (#128) PiperOrigin-RevId: 339319071 Source-Author: Google APIs Source-Date: Tue Oct 27 13:36:00 2020 -0700 Source-Repo: googleapis/googleapis Source-Sha: 9bdc6e729faad989b2a6c3994281b8304908f32c Source-Link: https://github.com/googleapis/googleapis/commit/9bdc6e729faad989b2a6c3994281b8304908f32c --- .../src/v1/recommender_client_config.json | 7 +++++-- packages/google-cloud-recommender/synth.metadata | 6 +++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/google-cloud-recommender/src/v1/recommender_client_config.json b/packages/google-cloud-recommender/src/v1/recommender_client_config.json index ce6027fdf13..a5a33f32778 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client_config.json +++ b/packages/google-cloud-recommender/src/v1/recommender_client_config.json @@ -21,14 +21,17 @@ }, "methods": { "ListInsights": { - "retry_codes_name": "non_idempotent", + "timeout_millis": 60000, + "retry_codes_name": "idempotent", "retry_params_name": "default" }, "GetInsight": { - "retry_codes_name": "non_idempotent", + "timeout_millis": 60000, + "retry_codes_name": "idempotent", "retry_params_name": "default" }, "MarkInsightAccepted": { + "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default" }, diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 70ef7ea5cd9..f81e4a5d9c8 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,15 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "802b53f95ff1ee68c63f8f4143c2df368a020cc6" + "sha": "d525e829f01bb746aade57e7eb95573ef19f5d08" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "4c5071b615d96ef9dfd6a63d8429090f1f2872bb", - "internalRef": "327369997" + "sha": "9bdc6e729faad989b2a6c3994281b8304908f32c", + "internalRef": "339319071" } }, { From 910c4ab2da022b19ff5a8be9a9f1e1b6ef02fc72 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 2 Nov 2020 15:59:03 -0800 Subject: [PATCH 092/158] build(node): add KOKORO_BUILD_ARTIFACTS_SUBDIR to env (#130) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/933ad2fd-a72d-472d-91bb-4b474e01ed77/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/ba9918cd22874245b55734f57470c719b577e591 --- packages/google-cloud-recommender/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index f81e4a5d9c8..d65e5395610 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "d525e829f01bb746aade57e7eb95573ef19f5d08" + "sha": "7785604f0bcc763224dc3bd13d552578c3cddb30" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "89c849ba5013e45e8fb688b138f33c2ec6083dc5" + "sha": "ba9918cd22874245b55734f57470c719b577e591" } } ], From 30c81adc258e20eb477031bf77ed2a35f2416ef9 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Fri, 6 Nov 2020 15:42:40 -0800 Subject: [PATCH 093/158] fix: do not modify options object, use defaultScopes (#131) Regenerated the library using [gapic-generator-typescript](https://github.com/googleapis/gapic-generator-typescript) v1.2.1. --- .../google-cloud-recommender/package.json | 2 +- .../google-cloud-recommender/src/index.ts | 1 + .../src/v1/recommender_client.ts | 216 ++++++++++-------- .../google-cloud-recommender/synth.metadata | 16 +- .../system-test/fixtures/sample/src/index.ts | 9 +- .../system-test/install.ts | 18 +- 6 files changed, 146 insertions(+), 116 deletions(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index d08026dee21..5eee8b39512 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -29,7 +29,7 @@ "api-documenter": "api-documenter yaml --input-folder=temp" }, "dependencies": { - "google-gax": "^2.1.0" + "google-gax": "^2.9.2" }, "devDependencies": { "@types/mocha": "^8.0.0", diff --git a/packages/google-cloud-recommender/src/index.ts b/packages/google-cloud-recommender/src/index.ts index bab729506af..8a37dd73324 100644 --- a/packages/google-cloud-recommender/src/index.ts +++ b/packages/google-cloud-recommender/src/index.ts @@ -18,6 +18,7 @@ import * as v1 from './v1'; const RecommenderClient = v1.RecommenderClient; +type RecommenderClient = v1.RecommenderClient; export {v1, RecommenderClient}; export default {v1, RecommenderClient}; import * as protos from '../protos/protos'; diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 35c242cf2aa..0e69d62a1e8 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -63,8 +63,10 @@ export class RecommenderClient { /** * Construct an instance of RecommenderClient. * - * @param {object} [options] - The configuration object. See the subsequent - * parameters for more details. + * @param {object} [options] - The configuration object. + * The options accepted by the constructor are described in detail + * in [this document](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#creating-the-client-instance). + * The common options are: * @param {object} [options.credentials] - Credentials object. * @param {string} [options.credentials.client_email] * @param {string} [options.credentials.private_key] @@ -84,42 +86,33 @@ export class RecommenderClient { * your project ID will be detected automatically. * @param {string} [options.apiEndpoint] - The domain name of the * API remote host. + * @param {gax.ClientConfig} [options.clientConfig] - client configuration override. + * TODO(@alexander-fenster): link to gax documentation. + * @param {boolean} fallback - Use HTTP fallback mode. + * In fallback mode, a special browser-compatible transport implementation is used + * instead of gRPC transport. In browser context (if the `window` object is defined) + * the fallback mode is enabled automatically; set `options.fallback` to `false` + * if you need to override this behavior. */ - constructor(opts?: ClientOptions) { - // Ensure that options include the service address and port. + // Ensure that options include all the required fields. const staticMembers = this.constructor as typeof RecommenderClient; const servicePath = - opts && opts.servicePath - ? opts.servicePath - : opts && opts.apiEndpoint - ? opts.apiEndpoint - : staticMembers.servicePath; - const port = opts && opts.port ? opts.port : staticMembers.port; + opts?.servicePath || opts?.apiEndpoint || staticMembers.servicePath; + const port = opts?.port || staticMembers.port; + const clientConfig = opts?.clientConfig ?? {}; + const fallback = opts?.fallback ?? typeof window !== 'undefined'; + opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); - if (!opts) { - opts = {servicePath, port}; + // If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case. + if (servicePath !== staticMembers.servicePath && !('scopes' in opts)) { + opts['scopes'] = staticMembers.scopes; } - opts.servicePath = opts.servicePath || servicePath; - opts.port = opts.port || port; - - // users can override the config from client side, like retry codes name. - // The detailed structure of the clientConfig can be found here: https://github.com/googleapis/gax-nodejs/blob/master/src/gax.ts#L546 - // The way to override client config for Showcase API: - // - // const customConfig = {"interfaces": {"google.showcase.v1beta1.Echo": {"methods": {"Echo": {"retry_codes_name": "idempotent", "retry_params_name": "default"}}}}} - // const showcaseClient = new showcaseClient({ projectId, customConfig }); - opts.clientConfig = opts.clientConfig || {}; - // If we're running in browser, it's OK to omit `fallback` since - // google-gax has `browser` field in its `package.json`. - // For Electron (which does not respect `browser` field), - // pass `{fallback: true}` to the RecommenderClient constructor. + // Choose either gRPC or proto-over-HTTP implementation of google-gax. this._gaxModule = opts.fallback ? gax.fallback : gax; - // Create a `gaxGrpc` object, with any grpc-specific options - // sent to the client. - opts.scopes = (this.constructor as typeof RecommenderClient).scopes; + // Create a `gaxGrpc` object, with any grpc-specific options sent to the client. this._gaxGrpc = new this._gaxModule.GrpcClient(opts); // Save options to use in initialize() method. @@ -128,6 +121,11 @@ export class RecommenderClient { // Save the auth object to the client, for use by other methods. this.auth = this._gaxGrpc.auth as gax.GoogleAuth; + // Set the default scopes in auth client if needed. + if (servicePath === staticMembers.servicePath) { + this.auth.defaultScopes = staticMembers.scopes; + } + // Determine the client header string. const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; if (typeof process !== 'undefined' && 'versions' in process) { @@ -277,6 +275,7 @@ export class RecommenderClient { /** * The DNS address for this API service. + * @returns {string} The DNS address for this service. */ static get servicePath() { return 'recommender.googleapis.com'; @@ -285,6 +284,7 @@ export class RecommenderClient { /** * The DNS address for this API service - same as servicePath(), * exists for compatibility reasons. + * @returns {string} The DNS address for this service. */ static get apiEndpoint() { return 'recommender.googleapis.com'; @@ -292,6 +292,7 @@ export class RecommenderClient { /** * The port for this API service. + * @returns {number} The default port for this service. */ static get port() { return 443; @@ -300,6 +301,7 @@ export class RecommenderClient { /** * The scopes needed to make gRPC calls for every method defined * in this service. + * @returns {string[]} List of default scopes. */ static get scopes() { return ['https://www.googleapis.com/auth/cloud-platform']; @@ -309,8 +311,7 @@ export class RecommenderClient { getProjectId(callback: Callback): void; /** * Return the project ID used by this class. - * @param {function(Error, string)} callback - the callback to - * be called with the current project Id. + * @returns {Promise} A promise that resolves to string containing the project ID. */ getProjectId( callback?: Callback @@ -364,7 +365,11 @@ export class RecommenderClient { * 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 [Insight]{@link google.cloud.recommender.v1.Insight}. - * The promise has a method named "cancel" which cancels the ongoing API call. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example + * const [response] = await client.getInsight(request); */ getInsight( request: protos.google.cloud.recommender.v1.IGetInsightRequest, @@ -463,7 +468,11 @@ export class RecommenderClient { * 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 [Insight]{@link google.cloud.recommender.v1.Insight}. - * The promise has a method named "cancel" which cancels the ongoing API call. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example + * const [response] = await client.markInsightAccepted(request); */ markInsightAccepted( request: protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest, @@ -555,7 +564,11 @@ export class RecommenderClient { * 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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The promise has a method named "cancel" which cancels the ongoing API call. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example + * const [response] = await client.getRecommendation(request); */ getRecommendation( request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, @@ -662,7 +675,11 @@ export class RecommenderClient { * 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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The promise has a method named "cancel" which cancels the ongoing API call. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example + * const [response] = await client.markRecommendationClaimed(request); */ markRecommendationClaimed( request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, @@ -777,7 +794,11 @@ export class RecommenderClient { * 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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The promise has a method named "cancel" which cancels the ongoing API call. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example + * const [response] = await client.markRecommendationSucceeded(request); */ markRecommendationSucceeded( request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, @@ -892,7 +913,11 @@ export class RecommenderClient { * 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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The promise has a method named "cancel" which cancels the ongoing API call. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example + * const [response] = await client.markRecommendationFailed(request); */ markRecommendationFailed( request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, @@ -1009,19 +1034,14 @@ export class RecommenderClient { * 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 [Insight]{@link google.cloud.recommender.v1.Insight}. - * The client library support auto-pagination by default: it will call the API as many + * 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. - * - * When autoPaginate: false is specified through options, the array has three elements. - * The first element is Array of [Insight]{@link google.cloud.recommender.v1.Insight} that corresponds to - * the one page received from the API server. - * If the second element is not null it contains the request object of type [ListInsightsRequest]{@link google.cloud.recommender.v1.ListInsightsRequest} - * that can be used to obtain the next page of the results. - * If it is null, the next page does not exist. - * The third element contains the raw response received from the API server. Its type is - * [ListInsightsResponse]{@link google.cloud.recommender.v1.ListInsightsResponse}. - * - * The promise has a method named "cancel" which cancels the ongoing API call. + * Note that it can affect your quota. + * We recommend using `listInsightsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. */ listInsights( request: protos.google.cloud.recommender.v1.IListInsightsRequest, @@ -1069,18 +1089,7 @@ export class RecommenderClient { } /** - * Equivalent to {@link listInsights}, but returns a NodeJS Stream object. - * - * This fetches the paged responses for {@link listInsights} continuously - * and invokes the callback registered for 'data' event for each element in the - * responses. - * - * The returned object has 'end' method when no more elements are required. - * - * autoPaginate option will be ignored. - * - * @see {@link https://nodejs.org/api/stream.html} - * + * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. * @param {Object} request * The request object that will be sent. * @param {string} request.parent @@ -1109,6 +1118,13 @@ export class RecommenderClient { * 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 [Insight]{@link google.cloud.recommender.v1.Insight} 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 `listInsightsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. */ listInsightsStream( request?: protos.google.cloud.recommender.v1.IListInsightsRequest, @@ -1133,10 +1149,9 @@ export class RecommenderClient { } /** - * Equivalent to {@link listInsights}, but returns an iterable object. - * - * for-await-of syntax is used with the iterable to recursively get response element on-demand. + * Equivalent to `listInsights`, 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.parent @@ -1164,7 +1179,18 @@ export class RecommenderClient { * @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 conforms to @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols. + * An iterable Object that allows [async iteration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols). + * When you iterate the returned iterable, each element will be an object representing + * [Insight]{@link google.cloud.recommender.v1.Insight}. 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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + * @example + * const iterable = client.listInsightsAsync(request); + * for await (const response of iterable) { + * // process response + * } */ listInsightsAsync( request?: protos.google.cloud.recommender.v1.IListInsightsRequest, @@ -1251,19 +1277,14 @@ export class RecommenderClient { * 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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. - * The client library support auto-pagination by default: it will call the API as many + * 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. - * - * When autoPaginate: false is specified through options, the array has three elements. - * The first element is Array of [Recommendation]{@link google.cloud.recommender.v1.Recommendation} that corresponds to - * the one page received from the API server. - * If the second element is not null it contains the request object of type [ListRecommendationsRequest]{@link google.cloud.recommender.v1.ListRecommendationsRequest} - * that can be used to obtain the next page of the results. - * If it is null, the next page does not exist. - * The third element contains the raw response received from the API server. Its type is - * [ListRecommendationsResponse]{@link google.cloud.recommender.v1.ListRecommendationsResponse}. - * - * The promise has a method named "cancel" which cancels the ongoing API call. + * Note that it can affect your quota. + * We recommend using `listRecommendationsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. */ listRecommendations( request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, @@ -1311,18 +1332,7 @@ export class RecommenderClient { } /** - * Equivalent to {@link listRecommendations}, but returns a NodeJS Stream object. - * - * This fetches the paged responses for {@link listRecommendations} continuously - * and invokes the callback registered for 'data' event for each element in the - * responses. - * - * The returned object has 'end' method when no more elements are required. - * - * autoPaginate option will be ignored. - * - * @see {@link https://nodejs.org/api/stream.html} - * + * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. * @param {Object} request * The request object that will be sent. * @param {string} request.parent @@ -1351,6 +1361,13 @@ export class RecommenderClient { * 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 [Recommendation]{@link google.cloud.recommender.v1.Recommendation} 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 `listRecommendationsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. */ listRecommendationsStream( request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, @@ -1375,10 +1392,9 @@ export class RecommenderClient { } /** - * Equivalent to {@link listRecommendations}, but returns an iterable object. - * - * for-await-of syntax is used with the iterable to recursively get response element on-demand. + * Equivalent to `listRecommendations`, 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.parent @@ -1406,7 +1422,18 @@ export class RecommenderClient { * @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 conforms to @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols. + * An iterable Object that allows [async iteration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols). + * When you iterate the returned iterable, each element will be an object representing + * [Recommendation]{@link google.cloud.recommender.v1.Recommendation}. 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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + * @example + * const iterable = client.listRecommendationsAsync(request); + * for await (const response of iterable) { + * // process response + * } */ listRecommendationsAsync( request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, @@ -1682,9 +1709,10 @@ export class RecommenderClient { } /** - * Terminate the GRPC channel and close the client. + * Terminate the gRPC channel and close the client. * * The client will no longer be usable and all future behavior is undefined. + * @returns {Promise} A promise that resolves when the client is closed. */ close(): Promise { this.initialize(); diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index d65e5395610..e53ecf7acca 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -3,23 +3,15 @@ { "git": { "name": ".", - "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "7785604f0bcc763224dc3bd13d552578c3cddb30" - } - }, - { - "git": { - "name": "googleapis", - "remote": "https://github.com/googleapis/googleapis.git", - "sha": "9bdc6e729faad989b2a6c3994281b8304908f32c", - "internalRef": "339319071" + "remote": "git@github.com:googleapis/nodejs-recommender.git", + "sha": "781c03217d79f2cf94c61376fb05a7e38c474b4b" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "ba9918cd22874245b55734f57470c719b577e591" + "sha": "1f1148d3c7a7a52f0c98077f976bd9b3c948ee2b" } } ], @@ -87,6 +79,7 @@ "README.md", "api-extractor.json", "linkinator.config.json", + "package-lock.json.2534061630", "protos/google/cloud/recommender/v1/insight.proto", "protos/google/cloud/recommender/v1/recommendation.proto", "protos/google/cloud/recommender/v1/recommender_service.proto", @@ -95,6 +88,7 @@ "protos/protos.json", "renovate.json", "samples/README.md", + "samples/package-lock.json.69962807", "src/index.ts", "src/v1/index.ts", "src/v1/recommender_client.ts", diff --git a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts index e34cf834f4e..733c83d4b52 100644 --- a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts +++ b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts @@ -18,8 +18,15 @@ import {RecommenderClient} from '@google-cloud/recommender'; +// check that the client class type name can be used +function doStuffWithRecommenderClient(client: RecommenderClient) { + client.close(); +} + function main() { - new RecommenderClient(); + // check that the client instance can be created + const recommenderClient = new RecommenderClient(); + doStuffWithRecommenderClient(recommenderClient); } main(); diff --git a/packages/google-cloud-recommender/system-test/install.ts b/packages/google-cloud-recommender/system-test/install.ts index 4c1ba3eb79a..39d90f771de 100644 --- a/packages/google-cloud-recommender/system-test/install.ts +++ b/packages/google-cloud-recommender/system-test/install.ts @@ -20,32 +20,32 @@ import {packNTest} from 'pack-n-play'; import {readFileSync} from 'fs'; import {describe, it} from 'mocha'; -describe('typescript consumer tests', () => { - it('should have correct type signature for typescript users', async function () { +describe('📦 pack-n-play test', () => { + it('TypeScript code', async function () { this.timeout(300000); const options = { - packageDir: process.cwd(), // path to your module. + packageDir: process.cwd(), sample: { - description: 'typescript based user can use the type definitions', + description: 'TypeScript user can use the type definitions', ts: readFileSync( './system-test/fixtures/sample/src/index.ts' ).toString(), }, }; - await packNTest(options); // will throw upon error. + await packNTest(options); }); - it('should have correct type signature for javascript users', async function () { + it('JavaScript code', async function () { this.timeout(300000); const options = { - packageDir: process.cwd(), // path to your module. + packageDir: process.cwd(), sample: { - description: 'typescript based user can use the type definitions', + description: 'JavaScript user can use the library', ts: readFileSync( './system-test/fixtures/sample/src/index.js' ).toString(), }, }; - await packNTest(options); // will throw upon error. + await packNTest(options); }); }); From 45d34780e295b78e81e9de83b8a2687bccd34d56 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 16 Nov 2020 09:38:36 -0800 Subject: [PATCH 094/158] chore: release 3.2.1 (#129) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- packages/google-cloud-recommender/CHANGELOG.md | 8 ++++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 61109506a62..19fbc8cc6a1 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [3.2.1](https://www.github.com/googleapis/nodejs-recommender/compare/v3.2.0...v3.2.1) (2020-11-06) + + +### Bug Fixes + +* do not modify options object, use defaultScopes ([#131](https://www.github.com/googleapis/nodejs-recommender/issues/131)) ([3c11c71](https://www.github.com/googleapis/nodejs-recommender/commit/3c11c71f11a42930227cda2cbc939728afdc11fe)) +* updating the v1 retry params name for ListInsights, GetInsight, and MarkInsightAccepted. ([#128](https://www.github.com/googleapis/nodejs-recommender/issues/128)) ([7785604](https://www.github.com/googleapis/nodejs-recommender/commit/7785604f0bcc763224dc3bd13d552578c3cddb30)) + ## [3.2.0](https://www.github.com/googleapis/nodejs-recommender/compare/v3.1.1...v3.2.0) (2020-07-13) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 5eee8b39512..a37c4268047 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "3.2.0", + "version": "3.2.1", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 72e2b7156db..e32c24e04dd 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^3.2.0" + "@google-cloud/recommender": "^3.2.1" }, "devDependencies": { "c8": "^7.0.0", From ef0769a5a70108c2bb59a25a851591f11a2aca50 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 23 Nov 2020 13:34:04 -0800 Subject: [PATCH 095/158] fix(browser): check for fetch on window --- .../protos/protos.json | 103 +++++++++++++++-- .../src/v1/recommender_client.ts | 104 ++++++++++-------- .../google-cloud-recommender/synth.metadata | 14 ++- 3 files changed, 161 insertions(+), 60 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.json b/packages/google-cloud-recommender/protos/protos.json index 3788184dfb5..8512eb6942f 100644 --- a/packages/google-cloud-recommender/protos/protos.json +++ b/packages/google-cloud-recommender/protos/protos.json @@ -340,7 +340,17 @@ "options": { "(google.api.http).get": "/v1/{parent=projects/*/locations/*/insightTypes/*}/insights", "(google.api.method_signature)": "parent" - } + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1/{parent=projects/*/locations/*/insightTypes/*}/insights" + } + }, + { + "(google.api.method_signature)": "parent" + } + ] }, "GetInsight": { "requestType": "GetInsightRequest", @@ -348,7 +358,17 @@ "options": { "(google.api.http).get": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}", "(google.api.method_signature)": "name" - } + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}" + } + }, + { + "(google.api.method_signature)": "name" + } + ] }, "MarkInsightAccepted": { "requestType": "MarkInsightAcceptedRequest", @@ -357,7 +377,18 @@ "(google.api.http).post": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}:markAccepted", "(google.api.http).body": "*", "(google.api.method_signature)": "name,state_metadata,etag" - } + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}:markAccepted", + "body": "*" + } + }, + { + "(google.api.method_signature)": "name,state_metadata,etag" + } + ] }, "ListRecommendations": { "requestType": "ListRecommendationsRequest", @@ -365,7 +396,20 @@ "options": { "(google.api.http).get": "/v1/{parent=projects/*/locations/*/recommenders/*}/recommendations", "(google.api.method_signature)": "parent,filter" - } + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1/{parent=projects/*/locations/*/recommenders/*}/recommendations" + } + }, + { + "(google.api.method_signature)": "parent" + }, + { + "(google.api.method_signature)": "parent,filter" + } + ] }, "GetRecommendation": { "requestType": "GetRecommendationRequest", @@ -373,7 +417,17 @@ "options": { "(google.api.http).get": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}", "(google.api.method_signature)": "name" - } + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}" + } + }, + { + "(google.api.method_signature)": "name" + } + ] }, "MarkRecommendationClaimed": { "requestType": "MarkRecommendationClaimedRequest", @@ -382,7 +436,18 @@ "(google.api.http).post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed", "(google.api.http).body": "*", "(google.api.method_signature)": "name,state_metadata,etag" - } + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed", + "body": "*" + } + }, + { + "(google.api.method_signature)": "name,state_metadata,etag" + } + ] }, "MarkRecommendationSucceeded": { "requestType": "MarkRecommendationSucceededRequest", @@ -391,7 +456,18 @@ "(google.api.http).post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", "(google.api.http).body": "*", "(google.api.method_signature)": "name,state_metadata,etag" - } + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", + "body": "*" + } + }, + { + "(google.api.method_signature)": "name,state_metadata,etag" + } + ] }, "MarkRecommendationFailed": { "requestType": "MarkRecommendationFailedRequest", @@ -400,7 +476,18 @@ "(google.api.http).post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed", "(google.api.http).body": "*", "(google.api.method_signature)": "name,state_metadata,etag" - } + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed", + "body": "*" + } + }, + { + "(google.api.method_signature)": "name,state_metadata,etag" + } + ] } } }, diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 0e69d62a1e8..38b1e2f0256 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -16,6 +16,7 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** +/* global window */ import * as gax from 'google-gax'; import { Callback, @@ -30,6 +31,11 @@ import * as path from 'path'; import {Transform} from 'stream'; import {RequestType} from 'google-gax/build/src/apitypes'; import * as protos from '../../protos/protos'; +/** + * Client JSON configuration object, loaded from + * `src/v1/recommender_client_config.json`. + * This file defines retry strategy and timeouts for all API methods in this library. + */ import * as gapicConfig from './recommender_client_config.json'; const version = require('../../../package.json').version; @@ -86,9 +92,9 @@ export class RecommenderClient { * your project ID will be detected automatically. * @param {string} [options.apiEndpoint] - The domain name of the * API remote host. - * @param {gax.ClientConfig} [options.clientConfig] - client configuration override. - * TODO(@alexander-fenster): link to gax documentation. - * @param {boolean} fallback - Use HTTP fallback mode. + * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override. + * Follows the structure of {@link gapicConfig}. + * @param {boolean} [options.fallback] - Use HTTP fallback mode. * In fallback mode, a special browser-compatible transport implementation is used * instead of gRPC transport. In browser context (if the `window` object is defined) * the fallback mode is enabled automatically; set `options.fallback` to `false` @@ -101,7 +107,9 @@ export class RecommenderClient { opts?.servicePath || opts?.apiEndpoint || staticMembers.servicePath; const port = opts?.port || staticMembers.port; const clientConfig = opts?.clientConfig ?? {}; - const fallback = opts?.fallback ?? typeof window !== 'undefined'; + const fallback = + opts?.fallback ?? + (typeof window !== 'undefined' && typeof window?.fetch === 'function'); opts = Object.assign({servicePath, port, clientConfig, fallback}, opts); // If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case. @@ -328,7 +336,7 @@ export class RecommenderClient { // ------------------- getInsight( request: protos.google.cloud.recommender.v1.IGetInsightRequest, - options?: gax.CallOptions + options?: CallOptions ): Promise< [ protos.google.cloud.recommender.v1.IInsight, @@ -338,7 +346,7 @@ export class RecommenderClient { >; getInsight( request: protos.google.cloud.recommender.v1.IGetInsightRequest, - options: gax.CallOptions, + options: CallOptions, callback: Callback< protos.google.cloud.recommender.v1.IInsight, protos.google.cloud.recommender.v1.IGetInsightRequest | null | undefined, @@ -374,7 +382,7 @@ export class RecommenderClient { getInsight( request: protos.google.cloud.recommender.v1.IGetInsightRequest, optionsOrCallback?: - | gax.CallOptions + | CallOptions | Callback< protos.google.cloud.recommender.v1.IInsight, | protos.google.cloud.recommender.v1.IGetInsightRequest @@ -395,12 +403,12 @@ export class RecommenderClient { ] > | void { request = request || {}; - let options: gax.CallOptions; + let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; } else { - options = optionsOrCallback as gax.CallOptions; + options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -415,7 +423,7 @@ export class RecommenderClient { } markInsightAccepted( request: protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest, - options?: gax.CallOptions + options?: CallOptions ): Promise< [ protos.google.cloud.recommender.v1.IInsight, @@ -428,7 +436,7 @@ export class RecommenderClient { >; markInsightAccepted( request: protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest, - options: gax.CallOptions, + options: CallOptions, callback: Callback< protos.google.cloud.recommender.v1.IInsight, | protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest @@ -477,7 +485,7 @@ export class RecommenderClient { markInsightAccepted( request: protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest, optionsOrCallback?: - | gax.CallOptions + | CallOptions | Callback< protos.google.cloud.recommender.v1.IInsight, | protos.google.cloud.recommender.v1.IMarkInsightAcceptedRequest @@ -503,12 +511,12 @@ export class RecommenderClient { ] > | void { request = request || {}; - let options: gax.CallOptions; + let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; } else { - options = optionsOrCallback as gax.CallOptions; + options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -523,7 +531,7 @@ export class RecommenderClient { } getRecommendation( request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, - options?: gax.CallOptions + options?: CallOptions ): Promise< [ protos.google.cloud.recommender.v1.IRecommendation, @@ -533,7 +541,7 @@ export class RecommenderClient { >; getRecommendation( request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, - options: gax.CallOptions, + options: CallOptions, callback: Callback< protos.google.cloud.recommender.v1.IRecommendation, | protos.google.cloud.recommender.v1.IGetRecommendationRequest @@ -573,7 +581,7 @@ export class RecommenderClient { getRecommendation( request: protos.google.cloud.recommender.v1.IGetRecommendationRequest, optionsOrCallback?: - | gax.CallOptions + | CallOptions | Callback< protos.google.cloud.recommender.v1.IRecommendation, | protos.google.cloud.recommender.v1.IGetRecommendationRequest @@ -596,12 +604,12 @@ export class RecommenderClient { ] > | void { request = request || {}; - let options: gax.CallOptions; + let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; } else { - options = optionsOrCallback as gax.CallOptions; + options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -616,7 +624,7 @@ export class RecommenderClient { } markRecommendationClaimed( request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, - options?: gax.CallOptions + options?: CallOptions ): Promise< [ protos.google.cloud.recommender.v1.IRecommendation, @@ -629,7 +637,7 @@ export class RecommenderClient { >; markRecommendationClaimed( request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, - options: gax.CallOptions, + options: CallOptions, callback: Callback< protos.google.cloud.recommender.v1.IRecommendation, | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest @@ -684,7 +692,7 @@ export class RecommenderClient { markRecommendationClaimed( request: protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest, optionsOrCallback?: - | gax.CallOptions + | CallOptions | Callback< protos.google.cloud.recommender.v1.IRecommendation, | protos.google.cloud.recommender.v1.IMarkRecommendationClaimedRequest @@ -710,12 +718,12 @@ export class RecommenderClient { ] > | void { request = request || {}; - let options: gax.CallOptions; + let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; } else { - options = optionsOrCallback as gax.CallOptions; + options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -734,7 +742,7 @@ export class RecommenderClient { } markRecommendationSucceeded( request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, - options?: gax.CallOptions + options?: CallOptions ): Promise< [ protos.google.cloud.recommender.v1.IRecommendation, @@ -747,7 +755,7 @@ export class RecommenderClient { >; markRecommendationSucceeded( request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, - options: gax.CallOptions, + options: CallOptions, callback: Callback< protos.google.cloud.recommender.v1.IRecommendation, | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest @@ -803,7 +811,7 @@ export class RecommenderClient { markRecommendationSucceeded( request: protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest, optionsOrCallback?: - | gax.CallOptions + | CallOptions | Callback< protos.google.cloud.recommender.v1.IRecommendation, | protos.google.cloud.recommender.v1.IMarkRecommendationSucceededRequest @@ -829,12 +837,12 @@ export class RecommenderClient { ] > | void { request = request || {}; - let options: gax.CallOptions; + let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; } else { - options = optionsOrCallback as gax.CallOptions; + options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -853,7 +861,7 @@ export class RecommenderClient { } markRecommendationFailed( request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, - options?: gax.CallOptions + options?: CallOptions ): Promise< [ protos.google.cloud.recommender.v1.IRecommendation, @@ -866,7 +874,7 @@ export class RecommenderClient { >; markRecommendationFailed( request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, - options: gax.CallOptions, + options: CallOptions, callback: Callback< protos.google.cloud.recommender.v1.IRecommendation, | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest @@ -922,7 +930,7 @@ export class RecommenderClient { markRecommendationFailed( request: protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest, optionsOrCallback?: - | gax.CallOptions + | CallOptions | Callback< protos.google.cloud.recommender.v1.IRecommendation, | protos.google.cloud.recommender.v1.IMarkRecommendationFailedRequest @@ -948,12 +956,12 @@ export class RecommenderClient { ] > | void { request = request || {}; - let options: gax.CallOptions; + let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; } else { - options = optionsOrCallback as gax.CallOptions; + options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -973,7 +981,7 @@ export class RecommenderClient { listInsights( request: protos.google.cloud.recommender.v1.IListInsightsRequest, - options?: gax.CallOptions + options?: CallOptions ): Promise< [ protos.google.cloud.recommender.v1.IInsight[], @@ -983,7 +991,7 @@ export class RecommenderClient { >; listInsights( request: protos.google.cloud.recommender.v1.IListInsightsRequest, - options: gax.CallOptions, + options: CallOptions, callback: PaginationCallback< protos.google.cloud.recommender.v1.IListInsightsRequest, | protos.google.cloud.recommender.v1.IListInsightsResponse @@ -1046,7 +1054,7 @@ export class RecommenderClient { listInsights( request: protos.google.cloud.recommender.v1.IListInsightsRequest, optionsOrCallback?: - | gax.CallOptions + | CallOptions | PaginationCallback< protos.google.cloud.recommender.v1.IListInsightsRequest, | protos.google.cloud.recommender.v1.IListInsightsResponse @@ -1069,12 +1077,12 @@ export class RecommenderClient { ] > | void { request = request || {}; - let options: gax.CallOptions; + let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; } else { - options = optionsOrCallback as gax.CallOptions; + options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -1128,7 +1136,7 @@ export class RecommenderClient { */ listInsightsStream( request?: protos.google.cloud.recommender.v1.IListInsightsRequest, - options?: gax.CallOptions + options?: CallOptions ): Transform { request = request || {}; options = options || {}; @@ -1194,7 +1202,7 @@ export class RecommenderClient { */ listInsightsAsync( request?: protos.google.cloud.recommender.v1.IListInsightsRequest, - options?: gax.CallOptions + options?: CallOptions ): AsyncIterable { request = request || {}; options = options || {}; @@ -1216,7 +1224,7 @@ export class RecommenderClient { } listRecommendations( request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - options?: gax.CallOptions + options?: CallOptions ): Promise< [ protos.google.cloud.recommender.v1.IRecommendation[], @@ -1226,7 +1234,7 @@ export class RecommenderClient { >; listRecommendations( request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - options: gax.CallOptions, + options: CallOptions, callback: PaginationCallback< protos.google.cloud.recommender.v1.IListRecommendationsRequest, | protos.google.cloud.recommender.v1.IListRecommendationsResponse @@ -1289,7 +1297,7 @@ export class RecommenderClient { listRecommendations( request: protos.google.cloud.recommender.v1.IListRecommendationsRequest, optionsOrCallback?: - | gax.CallOptions + | CallOptions | PaginationCallback< protos.google.cloud.recommender.v1.IListRecommendationsRequest, | protos.google.cloud.recommender.v1.IListRecommendationsResponse @@ -1312,12 +1320,12 @@ export class RecommenderClient { ] > | void { request = request || {}; - let options: gax.CallOptions; + let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; } else { - options = optionsOrCallback as gax.CallOptions; + options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; @@ -1371,7 +1379,7 @@ export class RecommenderClient { */ listRecommendationsStream( request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - options?: gax.CallOptions + options?: CallOptions ): Transform { request = request || {}; options = options || {}; @@ -1437,7 +1445,7 @@ export class RecommenderClient { */ listRecommendationsAsync( request?: protos.google.cloud.recommender.v1.IListRecommendationsRequest, - options?: gax.CallOptions + options?: CallOptions ): AsyncIterable { request = request || {}; options = options || {}; diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index e53ecf7acca..db9cda65b20 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -3,8 +3,16 @@ { "git": { "name": ".", - "remote": "git@github.com:googleapis/nodejs-recommender.git", - "sha": "781c03217d79f2cf94c61376fb05a7e38c474b4b" + "remote": "https://github.com/googleapis/nodejs-recommender.git", + "sha": "dbd234064eb60b580befa61fa7c0285b6712e0ee" + } + }, + { + "git": { + "name": "googleapis", + "remote": "https://github.com/googleapis/googleapis.git", + "sha": "2f019bf70bfe06f1e2af1b04011b0a2405190e43", + "internalRef": "343202295" } }, { @@ -79,7 +87,6 @@ "README.md", "api-extractor.json", "linkinator.config.json", - "package-lock.json.2534061630", "protos/google/cloud/recommender/v1/insight.proto", "protos/google/cloud/recommender/v1/recommendation.proto", "protos/google/cloud/recommender/v1/recommender_service.proto", @@ -88,7 +95,6 @@ "protos/protos.json", "renovate.json", "samples/README.md", - "samples/package-lock.json.69962807", "src/index.ts", "src/v1/index.ts", "src/v1/recommender_client.ts", From 22737b0aaa11f95d1ba3faf1d7882cc357cb2fad Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 25 Nov 2020 08:34:36 -0800 Subject: [PATCH 096/158] docs: spelling correction for "targetting" (#135) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/75dad5cb-c926-42f9-97b9-e333e129c3c3/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/15013eff642a7e7e855aed5a29e6e83c39beba2a --- packages/google-cloud-recommender/README.md | 2 +- .../google-cloud-recommender/synth.metadata | 77 +------------------ 2 files changed, 3 insertions(+), 76 deletions(-) diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index 67e10ffcf83..56e848da470 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -100,7 +100,7 @@ Our client libraries follow the [Node.js release schedule](https://nodejs.org/en Libraries are compatible with all current _active_ and _maintenance_ versions of Node.js. -Client libraries targetting some end-of-life versions of Node.js are available, and +Client libraries targeting some end-of-life versions of Node.js are available, and can be installed via npm [dist-tags](https://docs.npmjs.com/cli/dist-tag). The dist-tags follow the naming convention `legacy-(version)`. diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index db9cda65b20..c46fba14aeb 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "dbd234064eb60b580befa61fa7c0285b6712e0ee" + "sha": "733f1d3fb81fcf435be32aded223fcae0a9c414e" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1f1148d3c7a7a52f0c98077f976bd9b3c948ee2b" + "sha": "15013eff642a7e7e855aed5a29e6e83c39beba2a" } } ], @@ -33,78 +33,5 @@ "generator": "bazel" } } - ], - "generatedFiles": [ - ".eslintignore", - ".eslintrc.json", - ".gitattributes", - ".github/ISSUE_TEMPLATE/bug_report.md", - ".github/ISSUE_TEMPLATE/feature_request.md", - ".github/ISSUE_TEMPLATE/support_request.md", - ".github/PULL_REQUEST_TEMPLATE.md", - ".github/release-please.yml", - ".github/workflows/ci.yaml", - ".gitignore", - ".jsdoc.js", - ".kokoro/.gitattributes", - ".kokoro/common.cfg", - ".kokoro/continuous/node10/common.cfg", - ".kokoro/continuous/node10/docs.cfg", - ".kokoro/continuous/node10/test.cfg", - ".kokoro/continuous/node12/common.cfg", - ".kokoro/continuous/node12/lint.cfg", - ".kokoro/continuous/node12/samples-test.cfg", - ".kokoro/continuous/node12/system-test.cfg", - ".kokoro/continuous/node12/test.cfg", - ".kokoro/docs.sh", - ".kokoro/lint.sh", - ".kokoro/populate-secrets.sh", - ".kokoro/presubmit/node10/common.cfg", - ".kokoro/presubmit/node12/common.cfg", - ".kokoro/presubmit/node12/samples-test.cfg", - ".kokoro/presubmit/node12/system-test.cfg", - ".kokoro/presubmit/node12/test.cfg", - ".kokoro/publish.sh", - ".kokoro/release/docs-devsite.cfg", - ".kokoro/release/docs-devsite.sh", - ".kokoro/release/docs.cfg", - ".kokoro/release/docs.sh", - ".kokoro/release/publish.cfg", - ".kokoro/samples-test.sh", - ".kokoro/system-test.sh", - ".kokoro/test.bat", - ".kokoro/test.sh", - ".kokoro/trampoline.sh", - ".kokoro/trampoline_v2.sh", - ".mocharc.js", - ".nycrc", - ".prettierignore", - ".prettierrc.js", - ".trampolinerc", - "CODE_OF_CONDUCT.md", - "CONTRIBUTING.md", - "LICENSE", - "README.md", - "api-extractor.json", - "linkinator.config.json", - "protos/google/cloud/recommender/v1/insight.proto", - "protos/google/cloud/recommender/v1/recommendation.proto", - "protos/google/cloud/recommender/v1/recommender_service.proto", - "protos/protos.d.ts", - "protos/protos.js", - "protos/protos.json", - "renovate.json", - "samples/README.md", - "src/index.ts", - "src/v1/index.ts", - "src/v1/recommender_client.ts", - "src/v1/recommender_client_config.json", - "src/v1/recommender_proto_list.json", - "system-test/fixtures/sample/src/index.js", - "system-test/fixtures/sample/src/index.ts", - "system-test/install.ts", - "test/gapic_recommender_v1.ts", - "tsconfig.json", - "webpack.config.js" ] } \ No newline at end of file From 032385cd34859e052e5b16e9654c3fbd717c34d6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 2 Dec 2020 19:40:36 +0000 Subject: [PATCH 097/158] chore: release 3.2.2 (#134) :robot: I have created a release \*beep\* \*boop\* --- ### [3.2.2](https://www.github.com/googleapis/nodejs-recommender/compare/v3.2.1...v3.2.2) (2020-11-25) ### Bug Fixes * **browser:** check for fetch on window ([733f1d3](https://www.github.com/googleapis/nodejs-recommender/commit/733f1d3fb81fcf435be32aded223fcae0a9c414e)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 19fbc8cc6a1..456d9ecc0a7 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [3.2.2](https://www.github.com/googleapis/nodejs-recommender/compare/v3.2.1...v3.2.2) (2020-11-25) + + +### Bug Fixes + +* **browser:** check for fetch on window ([733f1d3](https://www.github.com/googleapis/nodejs-recommender/commit/733f1d3fb81fcf435be32aded223fcae0a9c414e)) + ### [3.2.1](https://www.github.com/googleapis/nodejs-recommender/compare/v3.2.0...v3.2.1) (2020-11-06) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index a37c4268047..de22c594224 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "3.2.1", + "version": "3.2.2", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index e32c24e04dd..b0b8a3bbabe 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^3.2.1" + "@google-cloud/recommender": "^3.2.2" }, "devDependencies": { "c8": "^7.0.0", From f1e17b63e26d035053587c3ba4275d2e26b717bc Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 4 Dec 2020 08:58:36 -0800 Subject: [PATCH 098/158] chore: generate GAPIC metadata JSON file (#136) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/15d2fc95-8ec0-48d8-8ade-d188b4874078/targets - [ ] To automatically regenerate this PR, check this box. PiperOrigin-RevId: 345596855 Source-Link: https://github.com/googleapis/googleapis/commit/d189e871205fea665a9648f7c4676f027495ccaf --- .../src/v1/gapic_metadata.json | 111 ++++++++++++++++++ .../google-cloud-recommender/synth.metadata | 6 +- 2 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 packages/google-cloud-recommender/src/v1/gapic_metadata.json diff --git a/packages/google-cloud-recommender/src/v1/gapic_metadata.json b/packages/google-cloud-recommender/src/v1/gapic_metadata.json new file mode 100644 index 00000000000..55b21d43d2c --- /dev/null +++ b/packages/google-cloud-recommender/src/v1/gapic_metadata.json @@ -0,0 +1,111 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", + "language": "typescript", + "protoPackage": "google.cloud.recommender.v1", + "libraryPackage": "@google-cloud/recommender", + "services": { + "Recommender": { + "clients": { + "grpc": { + "libraryClient": "RecommenderClient", + "rpcs": { + "GetInsight": { + "methods": [ + "getInsight" + ] + }, + "MarkInsightAccepted": { + "methods": [ + "markInsightAccepted" + ] + }, + "GetRecommendation": { + "methods": [ + "getRecommendation" + ] + }, + "MarkRecommendationClaimed": { + "methods": [ + "markRecommendationClaimed" + ] + }, + "MarkRecommendationSucceeded": { + "methods": [ + "markRecommendationSucceeded" + ] + }, + "MarkRecommendationFailed": { + "methods": [ + "markRecommendationFailed" + ] + }, + "ListInsights": { + "methods": [ + "listInsights", + "listInsightsStream", + "listInsightsAsync" + ] + }, + "ListRecommendations": { + "methods": [ + "listRecommendations", + "listRecommendationsStream", + "listRecommendationsAsync" + ] + } + } + }, + "grpc-fallback": { + "libraryClient": "RecommenderClient", + "rpcs": { + "GetInsight": { + "methods": [ + "getInsight" + ] + }, + "MarkInsightAccepted": { + "methods": [ + "markInsightAccepted" + ] + }, + "GetRecommendation": { + "methods": [ + "getRecommendation" + ] + }, + "MarkRecommendationClaimed": { + "methods": [ + "markRecommendationClaimed" + ] + }, + "MarkRecommendationSucceeded": { + "methods": [ + "markRecommendationSucceeded" + ] + }, + "MarkRecommendationFailed": { + "methods": [ + "markRecommendationFailed" + ] + }, + "ListInsights": { + "methods": [ + "listInsights", + "listInsightsStream", + "listInsightsAsync" + ] + }, + "ListRecommendations": { + "methods": [ + "listRecommendations", + "listRecommendationsStream", + "listRecommendationsAsync" + ] + } + } + } + } + } + } +} diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index c46fba14aeb..885ef2ed949 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,15 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "733f1d3fb81fcf435be32aded223fcae0a9c414e" + "sha": "f9f2de9fb84595cb3890b4218be0e27093373387" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "2f019bf70bfe06f1e2af1b04011b0a2405190e43", - "internalRef": "343202295" + "sha": "d189e871205fea665a9648f7c4676f027495ccaf", + "internalRef": "345596855" } }, { From 709acf086ea11af1da0222a1593fe9a8ed44e186 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 22 Dec 2020 11:46:31 -0800 Subject: [PATCH 099/158] docs: add instructions for authenticating for system tests (#139) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/e893c041-f585-44a0-8a3b-f1f3eee08f43/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/363fe305e9ce34a6cd53951c6ee5f997094b54ee --- packages/google-cloud-recommender/CONTRIBUTING.md | 15 +++++++++++++-- packages/google-cloud-recommender/README.md | 3 +-- packages/google-cloud-recommender/synth.metadata | 4 ++-- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/google-cloud-recommender/CONTRIBUTING.md b/packages/google-cloud-recommender/CONTRIBUTING.md index f6c4cf010e3..444b2106756 100644 --- a/packages/google-cloud-recommender/CONTRIBUTING.md +++ b/packages/google-cloud-recommender/CONTRIBUTING.md @@ -37,6 +37,15 @@ accept your pull requests. 1. Title your pull request following [Conventional Commits](https://www.conventionalcommits.org/) styling. 1. Submit a pull request. +### Before you begin + +1. [Select or create a Cloud Platform project][projects]. +1. [Enable billing for your project][billing]. +1. [Enable the Recommender API][enable_api]. +1. [Set up authentication with a service account][auth] so you can access the + API from your local workstation. + + ## Running the tests 1. [Prepare your environment for Node.js setup][setup]. @@ -51,11 +60,9 @@ accept your pull requests. npm test # Run sample integration tests. - gcloud auth application-default login npm run samples-test # Run all system tests. - gcloud auth application-default login npm run system-test 1. Lint (and maybe fix) any changes: @@ -63,3 +70,7 @@ accept your pull requests. npm run fix [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=recommender.googleapis.com +[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index 56e848da470..beca47bd785 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -82,8 +82,7 @@ const recommendations = await listRecommendations(); ## Samples -Samples are in the [`samples/`](https://github.com/googleapis/nodejs-recommender/tree/master/samples) directory. The samples' `README.md` -has instructions for running the samples. +Samples are in the [`samples/`](https://github.com/googleapis/nodejs-recommender/tree/master/samples) directory. Each sample's `README.md` has instructions for running its sample. | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 885ef2ed949..a0ab3afeb9a 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "f9f2de9fb84595cb3890b4218be0e27093373387" + "sha": "e06347ac86941705801aad1e3c3b6b87092aa535" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "15013eff642a7e7e855aed5a29e6e83c39beba2a" + "sha": "363fe305e9ce34a6cd53951c6ee5f997094b54ee" } } ], From aecf57499c9335b9a167abce06f43a2f1756d24d Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 1 Jan 2021 03:01:04 -0800 Subject: [PATCH 100/158] chore: update license headers (#140) --- packages/google-cloud-recommender/.jsdoc.js | 4 ++-- packages/google-cloud-recommender/protos/protos.d.ts | 2 +- packages/google-cloud-recommender/protos/protos.js | 2 +- packages/google-cloud-recommender/src/index.ts | 2 +- packages/google-cloud-recommender/src/v1/index.ts | 2 +- .../google-cloud-recommender/src/v1/recommender_client.ts | 2 +- packages/google-cloud-recommender/synth.metadata | 2 +- .../system-test/fixtures/sample/src/index.js | 2 +- .../system-test/fixtures/sample/src/index.ts | 2 +- packages/google-cloud-recommender/system-test/install.ts | 2 +- .../google-cloud-recommender/test/gapic_recommender_v1.ts | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/google-cloud-recommender/.jsdoc.js b/packages/google-cloud-recommender/.jsdoc.js index 71f54bf72c0..020db4c57e8 100644 --- a/packages/google-cloud-recommender/.jsdoc.js +++ b/packages/google-cloud-recommender/.jsdoc.js @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -40,7 +40,7 @@ module.exports = { includePattern: '\\.js$' }, templates: { - copyright: 'Copyright 2020 Google LLC', + copyright: 'Copyright 2021 Google LLC', includeDate: false, sourceFiles: false, systemName: '@google-cloud/recommender', diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index 2bec683ac34..ed0e809b5f0 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index 2f82f82152a..39ad1ac0da5 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/src/index.ts b/packages/google-cloud-recommender/src/index.ts index 8a37dd73324..fba6e32f792 100644 --- a/packages/google-cloud-recommender/src/index.ts +++ b/packages/google-cloud-recommender/src/index.ts @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/src/v1/index.ts b/packages/google-cloud-recommender/src/v1/index.ts index d687f3169ac..368aaebbc89 100644 --- a/packages/google-cloud-recommender/src/v1/index.ts +++ b/packages/google-cloud-recommender/src/v1/index.ts @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 38b1e2f0256..10836b5b11a 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index a0ab3afeb9a..29a1541f45d 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "e06347ac86941705801aad1e3c3b6b87092aa535" + "sha": "559e94ac98f3539b7e68d86f9dd575f8239a2081" } }, { diff --git a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js index e8f4e4a22a6..c33833cd73c 100644 --- a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js +++ b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.js @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts index 733c83d4b52..659c9f95315 100644 --- a/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts +++ b/packages/google-cloud-recommender/system-test/fixtures/sample/src/index.ts @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/system-test/install.ts b/packages/google-cloud-recommender/system-test/install.ts index 39d90f771de..d2d61c0396f 100644 --- a/packages/google-cloud-recommender/system-test/install.ts +++ b/packages/google-cloud-recommender/system-test/install.ts @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts index 676b6d9cc76..68135dfe6d4 100644 --- a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts +++ b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. From 80384c0f2c4cdec2d75de4497141814d60dd232b Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 6 Jan 2021 16:19:28 -0800 Subject: [PATCH 101/158] feat: Add support for "billingAccounts" as another parent resource name for recommendations and insights APIs. (#138) BREAKING CHANGE: resource path helper recommenderPath has been removed --- packages/google-cloud-recommender/README.md | 2 +- .../google/cloud/recommender/v1/insight.proto | 2 + .../cloud/recommender/v1/recommendation.proto | 8 +- .../recommender/v1/recommender_service.proto | 32 + .../protos/protos.d.ts | 12 + .../google-cloud-recommender/protos/protos.js | 78 ++- .../protos/protos.json | 75 ++- .../samples/quickstart.js | 6 +- .../src/v1/recommender_client.ts | 621 ++++++++++++++---- .../google-cloud-recommender/synth.metadata | 6 +- .../test/gapic_recommender_v1.ts | 546 ++++++++++++--- 11 files changed, 1168 insertions(+), 220 deletions(-) diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index beca47bd785..3cee77b9659 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -66,7 +66,7 @@ async function listRecommendations() { // recommenderId = 'google.compute.instance.MachineTypeRecommender'; const [recommendations] = await recommender.listRecommendations({ - parent: recommender.recommenderPath(project, 'global', recommenderId), + parent: recommender.projectLocationRecommenderPath(project, 'global', recommenderId), }); console.info(`recommendations for ${recommenderId}:`); for (const recommendation of recommendations) { diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto index 783a714776e..3708c8355f5 100644 --- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto @@ -30,6 +30,7 @@ option objc_class_prefix = "CREC"; option (google.api.resource_definition) = { type: "recommender.googleapis.com/InsightType" pattern: "projects/{project}/locations/{location}/insightTypes/{insight_type}" + pattern: "billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}" }; // An insight along with the information used to derive the insight. The insight @@ -38,6 +39,7 @@ message Insight { option (google.api.resource) = { type: "recommender.googleapis.com/Insight" pattern: "projects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" + pattern: "billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" }; // Reference to an associated recommendation. diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto index aa8321eeb42..42345d8e1d0 100644 --- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto @@ -30,6 +30,7 @@ option objc_class_prefix = "CREC"; option (google.api.resource_definition) = { type: "recommender.googleapis.com/Recommender" pattern: "projects/{project}/locations/{location}/recommenders/{recommender}" + pattern: "billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}" }; // A recommendation along with a suggested action. E.g., a rightsizing @@ -38,6 +39,7 @@ message Recommendation { option (google.api.resource) = { type: "recommender.googleapis.com/Recommendation" pattern: "projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" + pattern: "billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" }; // Reference to an associated insight. @@ -170,12 +172,12 @@ message Operation { // "/versions/*/targetSize/percent": 20 // } // * Example: { - // "/bindings/*/role": "roles/admin" + // "/bindings/*/role": "roles/owner" // "/bindings/*/condition" : null // } // * Example: { - // "/bindings/*/role": "roles/admin" - // "/bindings/*/members/*" : ["x@google.com", "y@google.com"] + // "/bindings/*/role": "roles/owner" + // "/bindings/*/members/*" : ["x@example.com", "y@example.com"] // } // When both path_filters and path_value_matchers are set, an implicit AND // must be performed. diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto index 4f24a050959..3bd54f836b8 100644 --- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto @@ -43,6 +43,9 @@ service Recommender { rpc ListInsights(ListInsightsRequest) returns (ListInsightsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/insightTypes/*}/insights" + additional_bindings { + get: "/v1/{parent=billingAccounts/*/locations/*/insightTypes/*}/insights" + } }; option (google.api.method_signature) = "parent"; } @@ -52,6 +55,9 @@ service Recommender { rpc GetInsight(GetInsightRequest) returns (Insight) { option (google.api.http) = { get: "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}" + additional_bindings { + get: "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}" + } }; option (google.api.method_signature) = "name"; } @@ -66,6 +72,10 @@ service Recommender { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}:markAccepted" body: "*" + additional_bindings { + post: "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}:markAccepted" + body: "*" + } }; option (google.api.method_signature) = "name,state_metadata,etag"; } @@ -75,6 +85,9 @@ service Recommender { rpc ListRecommendations(ListRecommendationsRequest) returns (ListRecommendationsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/recommenders/*}/recommendations" + additional_bindings { + get: "/v1/{parent=billingAccounts/*/locations/*/recommenders/*}/recommendations" + } }; option (google.api.method_signature) = "parent"; option (google.api.method_signature) = "parent,filter"; @@ -85,6 +98,9 @@ service Recommender { rpc GetRecommendation(GetRecommendationRequest) returns (Recommendation) { option (google.api.http) = { get: "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}" + additional_bindings { + get: "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}" + } }; option (google.api.method_signature) = "name"; } @@ -103,6 +119,10 @@ service Recommender { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed" body: "*" + additional_bindings { + post: "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markClaimed" + body: "*" + } }; option (google.api.method_signature) = "name,state_metadata,etag"; } @@ -122,6 +142,10 @@ service Recommender { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded" body: "*" + additional_bindings { + post: "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markSucceeded" + body: "*" + } }; option (google.api.method_signature) = "name,state_metadata,etag"; } @@ -141,6 +165,10 @@ service Recommender { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed" body: "*" + additional_bindings { + post: "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markFailed" + body: "*" + } }; option (google.api.method_signature) = "name,state_metadata,etag"; } @@ -156,6 +184,8 @@ message ListInsightsRequest { // // LOCATION here refers to GCP Locations: // https://cloud.google.com/about/locations/ + // INSIGHT_TYPE_ID refers to supported insight types: + // https://cloud.google.com/recommender/docs/insights/insight-types.) string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -229,6 +259,8 @@ message ListRecommendationsRequest { // // LOCATION here refers to GCP Locations: // https://cloud.google.com/about/locations/ + // RECOMMENDER_ID refers to supported recommenders: + // https://cloud.google.com/recommender/docs/recommenders. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index ed0e809b5f0..bc31eba437f 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -2572,6 +2572,9 @@ export namespace google { /** ResourceDescriptor singular */ singular?: (string|null); + + /** ResourceDescriptor style */ + style?: (google.api.ResourceDescriptor.Style[]|null); } /** Represents a ResourceDescriptor. */ @@ -2601,6 +2604,9 @@ export namespace google { /** ResourceDescriptor singular. */ public singular: string; + /** ResourceDescriptor style. */ + public style: google.api.ResourceDescriptor.Style[]; + /** * Creates a new ResourceDescriptor instance using the specified properties. * @param [properties] Properties to set @@ -2680,6 +2686,12 @@ export namespace google { ORIGINALLY_SINGLE_PATTERN = 1, FUTURE_MULTI_PATTERN = 2 } + + /** Style enum. */ + enum Style { + STYLE_UNSPECIFIED = 0, + DECLARATIVE_FRIENDLY = 1 + } } /** Properties of a ResourceReference. */ diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index 39ad1ac0da5..ace10af9547 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -6367,6 +6367,7 @@ * @property {google.api.ResourceDescriptor.History|null} [history] ResourceDescriptor history * @property {string|null} [plural] ResourceDescriptor plural * @property {string|null} [singular] ResourceDescriptor singular + * @property {Array.|null} [style] ResourceDescriptor style */ /** @@ -6379,6 +6380,7 @@ */ function ResourceDescriptor(properties) { this.pattern = []; + this.style = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -6433,6 +6435,14 @@ */ ResourceDescriptor.prototype.singular = ""; + /** + * ResourceDescriptor style. + * @member {Array.} style + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.style = $util.emptyArray; + /** * Creates a new ResourceDescriptor instance using the specified properties. * @function create @@ -6470,6 +6480,12 @@ writer.uint32(/* id 5, wireType 2 =*/42).string(message.plural); if (message.singular != null && Object.hasOwnProperty.call(message, "singular")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.singular); + if (message.style != null && message.style.length) { + writer.uint32(/* id 10, wireType 2 =*/82).fork(); + for (var i = 0; i < message.style.length; ++i) + writer.int32(message.style[i]); + writer.ldelim(); + } return writer; }; @@ -6524,6 +6540,16 @@ case 6: message.singular = reader.string(); break; + case 10: + if (!(message.style && message.style.length)) + message.style = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.style.push(reader.int32()); + } else + message.style.push(reader.int32()); + break; default: reader.skipType(tag & 7); break; @@ -6587,6 +6613,18 @@ if (message.singular != null && message.hasOwnProperty("singular")) if (!$util.isString(message.singular)) return "singular: string expected"; + if (message.style != null && message.hasOwnProperty("style")) { + if (!Array.isArray(message.style)) + return "style: array expected"; + for (var i = 0; i < message.style.length; ++i) + switch (message.style[i]) { + default: + return "style: enum value[] expected"; + case 0: + case 1: + break; + } + } return null; }; @@ -6631,6 +6669,23 @@ message.plural = String(object.plural); if (object.singular != null) message.singular = String(object.singular); + if (object.style) { + if (!Array.isArray(object.style)) + throw TypeError(".google.api.ResourceDescriptor.style: array expected"); + message.style = []; + for (var i = 0; i < object.style.length; ++i) + switch (object.style[i]) { + default: + case "STYLE_UNSPECIFIED": + case 0: + message.style[i] = 0; + break; + case "DECLARATIVE_FRIENDLY": + case 1: + message.style[i] = 1; + break; + } + } return message; }; @@ -6647,8 +6702,10 @@ if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) + if (options.arrays || options.defaults) { object.pattern = []; + object.style = []; + } if (options.defaults) { object.type = ""; object.nameField = ""; @@ -6671,6 +6728,11 @@ object.plural = message.plural; if (message.singular != null && message.hasOwnProperty("singular")) object.singular = message.singular; + if (message.style && message.style.length) { + object.style = []; + for (var j = 0; j < message.style.length; ++j) + object.style[j] = options.enums === String ? $root.google.api.ResourceDescriptor.Style[message.style[j]] : message.style[j]; + } return object; }; @@ -6701,6 +6763,20 @@ return values; })(); + /** + * Style enum. + * @name google.api.ResourceDescriptor.Style + * @enum {number} + * @property {number} STYLE_UNSPECIFIED=0 STYLE_UNSPECIFIED value + * @property {number} DECLARATIVE_FRIENDLY=1 DECLARATIVE_FRIENDLY value + */ + ResourceDescriptor.Style = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STYLE_UNSPECIFIED"] = 0; + values[valuesById[1] = "DECLARATIVE_FRIENDLY"] = 1; + return values; + })(); + return ResourceDescriptor; })(); diff --git a/packages/google-cloud-recommender/protos/protos.json b/packages/google-cloud-recommender/protos/protos.json index 8512eb6942f..7be5025029b 100644 --- a/packages/google-cloud-recommender/protos/protos.json +++ b/packages/google-cloud-recommender/protos/protos.json @@ -15,13 +15,13 @@ "java_package": "com.google.cloud.recommender.v1", "objc_class_prefix": "CREC", "(google.api.resource_definition).type": "recommender.googleapis.com/Recommender", - "(google.api.resource_definition).pattern": "projects/{project}/locations/{location}/recommenders/{recommender}" + "(google.api.resource_definition).pattern": "billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}" }, "nested": { "Insight": { "options": { "(google.api.resource).type": "recommender.googleapis.com/Insight", - "(google.api.resource).pattern": "projects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" + "(google.api.resource).pattern": "billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" }, "fields": { "name": { @@ -117,7 +117,7 @@ "Recommendation": { "options": { "(google.api.resource).type": "recommender.googleapis.com/Recommendation", - "(google.api.resource).pattern": "projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" + "(google.api.resource).pattern": "billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" }, "fields": { "name": { @@ -339,12 +339,16 @@ "responseType": "ListInsightsResponse", "options": { "(google.api.http).get": "/v1/{parent=projects/*/locations/*/insightTypes/*}/insights", + "(google.api.http).additional_bindings.get": "/v1/{parent=billingAccounts/*/locations/*/insightTypes/*}/insights", "(google.api.method_signature)": "parent" }, "parsedOptions": [ { "(google.api.http)": { - "get": "/v1/{parent=projects/*/locations/*/insightTypes/*}/insights" + "get": "/v1/{parent=projects/*/locations/*/insightTypes/*}/insights", + "additional_bindings": { + "get": "/v1/{parent=billingAccounts/*/locations/*/insightTypes/*}/insights" + } } }, { @@ -357,12 +361,16 @@ "responseType": "Insight", "options": { "(google.api.http).get": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}", + "(google.api.http).additional_bindings.get": "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}", "(google.api.method_signature)": "name" }, "parsedOptions": [ { "(google.api.http)": { - "get": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}" + "get": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}", + "additional_bindings": { + "get": "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}" + } } }, { @@ -376,13 +384,19 @@ "options": { "(google.api.http).post": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}:markAccepted", "(google.api.http).body": "*", + "(google.api.http).additional_bindings.post": "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}:markAccepted", + "(google.api.http).additional_bindings.body": "*", "(google.api.method_signature)": "name,state_metadata,etag" }, "parsedOptions": [ { "(google.api.http)": { "post": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}:markAccepted", - "body": "*" + "body": "*", + "additional_bindings": { + "post": "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}:markAccepted", + "body": "*" + } } }, { @@ -395,12 +409,16 @@ "responseType": "ListRecommendationsResponse", "options": { "(google.api.http).get": "/v1/{parent=projects/*/locations/*/recommenders/*}/recommendations", + "(google.api.http).additional_bindings.get": "/v1/{parent=billingAccounts/*/locations/*/recommenders/*}/recommendations", "(google.api.method_signature)": "parent,filter" }, "parsedOptions": [ { "(google.api.http)": { - "get": "/v1/{parent=projects/*/locations/*/recommenders/*}/recommendations" + "get": "/v1/{parent=projects/*/locations/*/recommenders/*}/recommendations", + "additional_bindings": { + "get": "/v1/{parent=billingAccounts/*/locations/*/recommenders/*}/recommendations" + } } }, { @@ -416,12 +434,16 @@ "responseType": "Recommendation", "options": { "(google.api.http).get": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}", + "(google.api.http).additional_bindings.get": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}", "(google.api.method_signature)": "name" }, "parsedOptions": [ { "(google.api.http)": { - "get": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}" + "get": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}", + "additional_bindings": { + "get": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}" + } } }, { @@ -435,13 +457,19 @@ "options": { "(google.api.http).post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed", "(google.api.http).body": "*", + "(google.api.http).additional_bindings.post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markClaimed", + "(google.api.http).additional_bindings.body": "*", "(google.api.method_signature)": "name,state_metadata,etag" }, "parsedOptions": [ { "(google.api.http)": { "post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed", - "body": "*" + "body": "*", + "additional_bindings": { + "post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markClaimed", + "body": "*" + } } }, { @@ -455,13 +483,19 @@ "options": { "(google.api.http).post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", "(google.api.http).body": "*", + "(google.api.http).additional_bindings.post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", + "(google.api.http).additional_bindings.body": "*", "(google.api.method_signature)": "name,state_metadata,etag" }, "parsedOptions": [ { "(google.api.http)": { "post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", - "body": "*" + "body": "*", + "additional_bindings": { + "post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", + "body": "*" + } } }, { @@ -475,13 +509,19 @@ "options": { "(google.api.http).post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed", "(google.api.http).body": "*", + "(google.api.http).additional_bindings.post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markFailed", + "(google.api.http).additional_bindings.body": "*", "(google.api.method_signature)": "name,state_metadata,etag" }, "parsedOptions": [ { "(google.api.http)": { "post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed", - "body": "*" + "body": "*", + "additional_bindings": { + "post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markFailed", + "body": "*" + } } }, { @@ -761,6 +801,11 @@ "singular": { "type": "string", "id": 6 + }, + "style": { + "rule": "repeated", + "type": "Style", + "id": 10 } }, "nested": { @@ -770,6 +815,12 @@ "ORIGINALLY_SINGLE_PATTERN": 1, "FUTURE_MULTI_PATTERN": 2 } + }, + "Style": { + "values": { + "STYLE_UNSPECIFIED": 0, + "DECLARATIVE_FRIENDLY": 1 + } } } }, @@ -908,7 +959,7 @@ }, "protobuf": { "options": { - "go_package": "github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor", + "go_package": "google.golang.org/protobuf/types/descriptorpb", "java_package": "com.google.protobuf", "java_outer_classname": "DescriptorProtos", "csharp_namespace": "Google.Protobuf.Reflection", diff --git a/packages/google-cloud-recommender/samples/quickstart.js b/packages/google-cloud-recommender/samples/quickstart.js index a8314c5ad34..3ec850b519f 100644 --- a/packages/google-cloud-recommender/samples/quickstart.js +++ b/packages/google-cloud-recommender/samples/quickstart.js @@ -33,7 +33,11 @@ async function main( // recommenderId = 'google.compute.instance.MachineTypeRecommender'; const [recommendations] = await recommender.listRecommendations({ - parent: recommender.recommenderPath(project, 'global', recommenderId), + parent: recommender.projectLocationRecommenderPath( + project, + 'global', + recommenderId + ), }); console.info(`recommendations for ${recommenderId}:`); for (const recommendation of recommendations) { diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 10836b5b11a..849785fba65 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -169,18 +169,30 @@ export class RecommenderClient { // identifiers to uniquely identify resources within the API. // Create useful helper objects for these. this.pathTemplates = { - insightPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' + billingAccountLocationInsightTypePathTemplate: new this._gaxModule.PathTemplate( + 'billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}' + ), + billingAccountLocationInsightTypeInsightPathTemplate: new this._gaxModule.PathTemplate( + 'billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' + ), + billingAccountLocationRecommenderPathTemplate: new this._gaxModule.PathTemplate( + 'billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}' + ), + billingAccountLocationRecommenderRecommendationPathTemplate: new this._gaxModule.PathTemplate( + 'billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' ), - insightTypePathTemplate: new this._gaxModule.PathTemplate( + projectLocationInsightTypePathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/insightTypes/{insight_type}' ), - recommendationPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' + projectLocationInsightTypeInsightPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' ), - recommenderPathTemplate: new this._gaxModule.PathTemplate( + projectLocationRecommenderPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/recommenders/{recommender}' ), + projectLocationRecommenderRecommendationPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' + ), }; // Some of the methods on this service return "paged" results, @@ -1025,6 +1037,8 @@ export class RecommenderClient { * * LOCATION here refers to GCP Locations: * https://cloud.google.com/about/locations/ + * INSIGHT_TYPE_ID refers to supported insight types: + * https://cloud.google.com/recommender/docs/insights/insight-types.) * @param {number} [request.pageSize] * Optional. The maximum number of results to return from this request. Non-positive * values are ignored. If not specified, the server will determine the number @@ -1109,6 +1123,8 @@ export class RecommenderClient { * * LOCATION here refers to GCP Locations: * https://cloud.google.com/about/locations/ + * INSIGHT_TYPE_ID refers to supported insight types: + * https://cloud.google.com/recommender/docs/insights/insight-types.) * @param {number} [request.pageSize] * Optional. The maximum number of results to return from this request. Non-positive * values are ignored. If not specified, the server will determine the number @@ -1171,6 +1187,8 @@ export class RecommenderClient { * * LOCATION here refers to GCP Locations: * https://cloud.google.com/about/locations/ + * INSIGHT_TYPE_ID refers to supported insight types: + * https://cloud.google.com/recommender/docs/insights/insight-types.) * @param {number} [request.pageSize] * Optional. The maximum number of results to return from this request. Non-positive * values are ignored. If not specified, the server will determine the number @@ -1268,6 +1286,8 @@ export class RecommenderClient { * * LOCATION here refers to GCP Locations: * https://cloud.google.com/about/locations/ + * RECOMMENDER_ID refers to supported recommenders: + * https://cloud.google.com/recommender/docs/recommenders. * @param {number} [request.pageSize] * Optional. The maximum number of results to return from this request. Non-positive * values are ignored. If not specified, the server will determine the number @@ -1352,6 +1372,8 @@ export class RecommenderClient { * * LOCATION here refers to GCP Locations: * https://cloud.google.com/about/locations/ + * RECOMMENDER_ID refers to supported recommenders: + * https://cloud.google.com/recommender/docs/recommenders. * @param {number} [request.pageSize] * Optional. The maximum number of results to return from this request. Non-positive * values are ignored. If not specified, the server will determine the number @@ -1414,6 +1436,8 @@ export class RecommenderClient { * * LOCATION here refers to GCP Locations: * https://cloud.google.com/about/locations/ + * RECOMMENDER_ID refers to supported recommenders: + * https://cloud.google.com/recommender/docs/recommenders. * @param {number} [request.pageSize] * Optional. The maximum number of results to return from this request. Non-positive * values are ignored. If not specified, the server will determine the number @@ -1470,83 +1494,323 @@ export class RecommenderClient { // -------------------- /** - * Return a fully-qualified insight resource name string. + * Return a fully-qualified billingAccountLocationInsightType resource name string. * - * @param {string} project + * @param {string} billing_account + * @param {string} location + * @param {string} insight_type + * @returns {string} Resource name string. + */ + billingAccountLocationInsightTypePath( + billingAccount: string, + location: string, + insightType: string + ) { + return this.pathTemplates.billingAccountLocationInsightTypePathTemplate.render( + { + billing_account: billingAccount, + location: location, + insight_type: insightType, + } + ); + } + + /** + * Parse the billing_account from BillingAccountLocationInsightType resource. + * + * @param {string} billingAccountLocationInsightTypeName + * A fully-qualified path representing billing_account_location_insight_type resource. + * @returns {string} A string representing the billing_account. + */ + matchBillingAccountFromBillingAccountLocationInsightTypeName( + billingAccountLocationInsightTypeName: string + ) { + return this.pathTemplates.billingAccountLocationInsightTypePathTemplate.match( + billingAccountLocationInsightTypeName + ).billing_account; + } + + /** + * Parse the location from BillingAccountLocationInsightType resource. + * + * @param {string} billingAccountLocationInsightTypeName + * A fully-qualified path representing billing_account_location_insight_type resource. + * @returns {string} A string representing the location. + */ + matchLocationFromBillingAccountLocationInsightTypeName( + billingAccountLocationInsightTypeName: string + ) { + return this.pathTemplates.billingAccountLocationInsightTypePathTemplate.match( + billingAccountLocationInsightTypeName + ).location; + } + + /** + * Parse the insight_type from BillingAccountLocationInsightType resource. + * + * @param {string} billingAccountLocationInsightTypeName + * A fully-qualified path representing billing_account_location_insight_type resource. + * @returns {string} A string representing the insight_type. + */ + matchInsightTypeFromBillingAccountLocationInsightTypeName( + billingAccountLocationInsightTypeName: string + ) { + return this.pathTemplates.billingAccountLocationInsightTypePathTemplate.match( + billingAccountLocationInsightTypeName + ).insight_type; + } + + /** + * Return a fully-qualified billingAccountLocationInsightTypeInsight resource name string. + * + * @param {string} billing_account * @param {string} location * @param {string} insight_type * @param {string} insight * @returns {string} Resource name string. */ - insightPath( - project: string, + billingAccountLocationInsightTypeInsightPath( + billingAccount: string, location: string, insightType: string, insight: string ) { - return this.pathTemplates.insightPathTemplate.render({ - project: project, - location: location, - insight_type: insightType, - insight: insight, - }); + return this.pathTemplates.billingAccountLocationInsightTypeInsightPathTemplate.render( + { + billing_account: billingAccount, + location: location, + insight_type: insightType, + insight: insight, + } + ); } /** - * Parse the project from Insight resource. + * Parse the billing_account from BillingAccountLocationInsightTypeInsight resource. * - * @param {string} insightName - * A fully-qualified path representing Insight resource. - * @returns {string} A string representing the project. + * @param {string} billingAccountLocationInsightTypeInsightName + * A fully-qualified path representing billing_account_location_insight_type_insight resource. + * @returns {string} A string representing the billing_account. */ - matchProjectFromInsightName(insightName: string) { - return this.pathTemplates.insightPathTemplate.match(insightName).project; + matchBillingAccountFromBillingAccountLocationInsightTypeInsightName( + billingAccountLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.billingAccountLocationInsightTypeInsightPathTemplate.match( + billingAccountLocationInsightTypeInsightName + ).billing_account; } /** - * Parse the location from Insight resource. + * Parse the location from BillingAccountLocationInsightTypeInsight resource. * - * @param {string} insightName - * A fully-qualified path representing Insight resource. + * @param {string} billingAccountLocationInsightTypeInsightName + * A fully-qualified path representing billing_account_location_insight_type_insight resource. * @returns {string} A string representing the location. */ - matchLocationFromInsightName(insightName: string) { - return this.pathTemplates.insightPathTemplate.match(insightName).location; + matchLocationFromBillingAccountLocationInsightTypeInsightName( + billingAccountLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.billingAccountLocationInsightTypeInsightPathTemplate.match( + billingAccountLocationInsightTypeInsightName + ).location; } /** - * Parse the insight_type from Insight resource. + * Parse the insight_type from BillingAccountLocationInsightTypeInsight resource. * - * @param {string} insightName - * A fully-qualified path representing Insight resource. + * @param {string} billingAccountLocationInsightTypeInsightName + * A fully-qualified path representing billing_account_location_insight_type_insight resource. * @returns {string} A string representing the insight_type. */ - matchInsightTypeFromInsightName(insightName: string) { - return this.pathTemplates.insightPathTemplate.match(insightName) - .insight_type; + matchInsightTypeFromBillingAccountLocationInsightTypeInsightName( + billingAccountLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.billingAccountLocationInsightTypeInsightPathTemplate.match( + billingAccountLocationInsightTypeInsightName + ).insight_type; } /** - * Parse the insight from Insight resource. + * Parse the insight from BillingAccountLocationInsightTypeInsight resource. * - * @param {string} insightName - * A fully-qualified path representing Insight resource. + * @param {string} billingAccountLocationInsightTypeInsightName + * A fully-qualified path representing billing_account_location_insight_type_insight resource. * @returns {string} A string representing the insight. */ - matchInsightFromInsightName(insightName: string) { - return this.pathTemplates.insightPathTemplate.match(insightName).insight; + matchInsightFromBillingAccountLocationInsightTypeInsightName( + billingAccountLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.billingAccountLocationInsightTypeInsightPathTemplate.match( + billingAccountLocationInsightTypeInsightName + ).insight; + } + + /** + * Return a fully-qualified billingAccountLocationRecommender resource name string. + * + * @param {string} billing_account + * @param {string} location + * @param {string} recommender + * @returns {string} Resource name string. + */ + billingAccountLocationRecommenderPath( + billingAccount: string, + location: string, + recommender: string + ) { + return this.pathTemplates.billingAccountLocationRecommenderPathTemplate.render( + { + billing_account: billingAccount, + location: location, + recommender: recommender, + } + ); + } + + /** + * Parse the billing_account from BillingAccountLocationRecommender resource. + * + * @param {string} billingAccountLocationRecommenderName + * A fully-qualified path representing billing_account_location_recommender resource. + * @returns {string} A string representing the billing_account. + */ + matchBillingAccountFromBillingAccountLocationRecommenderName( + billingAccountLocationRecommenderName: string + ) { + return this.pathTemplates.billingAccountLocationRecommenderPathTemplate.match( + billingAccountLocationRecommenderName + ).billing_account; + } + + /** + * Parse the location from BillingAccountLocationRecommender resource. + * + * @param {string} billingAccountLocationRecommenderName + * A fully-qualified path representing billing_account_location_recommender resource. + * @returns {string} A string representing the location. + */ + matchLocationFromBillingAccountLocationRecommenderName( + billingAccountLocationRecommenderName: string + ) { + return this.pathTemplates.billingAccountLocationRecommenderPathTemplate.match( + billingAccountLocationRecommenderName + ).location; + } + + /** + * Parse the recommender from BillingAccountLocationRecommender resource. + * + * @param {string} billingAccountLocationRecommenderName + * A fully-qualified path representing billing_account_location_recommender resource. + * @returns {string} A string representing the recommender. + */ + matchRecommenderFromBillingAccountLocationRecommenderName( + billingAccountLocationRecommenderName: string + ) { + return this.pathTemplates.billingAccountLocationRecommenderPathTemplate.match( + billingAccountLocationRecommenderName + ).recommender; + } + + /** + * Return a fully-qualified billingAccountLocationRecommenderRecommendation resource name string. + * + * @param {string} billing_account + * @param {string} location + * @param {string} recommender + * @param {string} recommendation + * @returns {string} Resource name string. + */ + billingAccountLocationRecommenderRecommendationPath( + billingAccount: string, + location: string, + recommender: string, + recommendation: string + ) { + return this.pathTemplates.billingAccountLocationRecommenderRecommendationPathTemplate.render( + { + billing_account: billingAccount, + location: location, + recommender: recommender, + recommendation: recommendation, + } + ); + } + + /** + * Parse the billing_account from BillingAccountLocationRecommenderRecommendation resource. + * + * @param {string} billingAccountLocationRecommenderRecommendationName + * A fully-qualified path representing billing_account_location_recommender_recommendation resource. + * @returns {string} A string representing the billing_account. + */ + matchBillingAccountFromBillingAccountLocationRecommenderRecommendationName( + billingAccountLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.billingAccountLocationRecommenderRecommendationPathTemplate.match( + billingAccountLocationRecommenderRecommendationName + ).billing_account; + } + + /** + * Parse the location from BillingAccountLocationRecommenderRecommendation resource. + * + * @param {string} billingAccountLocationRecommenderRecommendationName + * A fully-qualified path representing billing_account_location_recommender_recommendation resource. + * @returns {string} A string representing the location. + */ + matchLocationFromBillingAccountLocationRecommenderRecommendationName( + billingAccountLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.billingAccountLocationRecommenderRecommendationPathTemplate.match( + billingAccountLocationRecommenderRecommendationName + ).location; + } + + /** + * Parse the recommender from BillingAccountLocationRecommenderRecommendation resource. + * + * @param {string} billingAccountLocationRecommenderRecommendationName + * A fully-qualified path representing billing_account_location_recommender_recommendation resource. + * @returns {string} A string representing the recommender. + */ + matchRecommenderFromBillingAccountLocationRecommenderRecommendationName( + billingAccountLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.billingAccountLocationRecommenderRecommendationPathTemplate.match( + billingAccountLocationRecommenderRecommendationName + ).recommender; + } + + /** + * Parse the recommendation from BillingAccountLocationRecommenderRecommendation resource. + * + * @param {string} billingAccountLocationRecommenderRecommendationName + * A fully-qualified path representing billing_account_location_recommender_recommendation resource. + * @returns {string} A string representing the recommendation. + */ + matchRecommendationFromBillingAccountLocationRecommenderRecommendationName( + billingAccountLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.billingAccountLocationRecommenderRecommendationPathTemplate.match( + billingAccountLocationRecommenderRecommendationName + ).recommendation; } /** - * Return a fully-qualified insightType resource name string. + * Return a fully-qualified projectLocationInsightType resource name string. * * @param {string} project * @param {string} location * @param {string} insight_type * @returns {string} Resource name string. */ - insightTypePath(project: string, location: string, insightType: string) { - return this.pathTemplates.insightTypePathTemplate.render({ + projectLocationInsightTypePath( + project: string, + location: string, + insightType: string + ) { + return this.pathTemplates.projectLocationInsightTypePathTemplate.render({ project: project, location: location, insight_type: insightType, @@ -1554,126 +1818,149 @@ export class RecommenderClient { } /** - * Parse the project from InsightType resource. + * Parse the project from ProjectLocationInsightType resource. * - * @param {string} insightTypeName - * A fully-qualified path representing InsightType resource. + * @param {string} projectLocationInsightTypeName + * A fully-qualified path representing project_location_insight_type resource. * @returns {string} A string representing the project. */ - matchProjectFromInsightTypeName(insightTypeName: string) { - return this.pathTemplates.insightTypePathTemplate.match(insightTypeName) - .project; + matchProjectFromProjectLocationInsightTypeName( + projectLocationInsightTypeName: string + ) { + return this.pathTemplates.projectLocationInsightTypePathTemplate.match( + projectLocationInsightTypeName + ).project; } /** - * Parse the location from InsightType resource. + * Parse the location from ProjectLocationInsightType resource. * - * @param {string} insightTypeName - * A fully-qualified path representing InsightType resource. + * @param {string} projectLocationInsightTypeName + * A fully-qualified path representing project_location_insight_type resource. * @returns {string} A string representing the location. */ - matchLocationFromInsightTypeName(insightTypeName: string) { - return this.pathTemplates.insightTypePathTemplate.match(insightTypeName) - .location; + matchLocationFromProjectLocationInsightTypeName( + projectLocationInsightTypeName: string + ) { + return this.pathTemplates.projectLocationInsightTypePathTemplate.match( + projectLocationInsightTypeName + ).location; } /** - * Parse the insight_type from InsightType resource. + * Parse the insight_type from ProjectLocationInsightType resource. * - * @param {string} insightTypeName - * A fully-qualified path representing InsightType resource. + * @param {string} projectLocationInsightTypeName + * A fully-qualified path representing project_location_insight_type resource. * @returns {string} A string representing the insight_type. */ - matchInsightTypeFromInsightTypeName(insightTypeName: string) { - return this.pathTemplates.insightTypePathTemplate.match(insightTypeName) - .insight_type; + matchInsightTypeFromProjectLocationInsightTypeName( + projectLocationInsightTypeName: string + ) { + return this.pathTemplates.projectLocationInsightTypePathTemplate.match( + projectLocationInsightTypeName + ).insight_type; } /** - * Return a fully-qualified recommendation resource name string. + * Return a fully-qualified projectLocationInsightTypeInsight resource name string. * * @param {string} project * @param {string} location - * @param {string} recommender - * @param {string} recommendation + * @param {string} insight_type + * @param {string} insight * @returns {string} Resource name string. */ - recommendationPath( + projectLocationInsightTypeInsightPath( project: string, location: string, - recommender: string, - recommendation: string + insightType: string, + insight: string ) { - return this.pathTemplates.recommendationPathTemplate.render({ - project: project, - location: location, - recommender: recommender, - recommendation: recommendation, - }); + return this.pathTemplates.projectLocationInsightTypeInsightPathTemplate.render( + { + project: project, + location: location, + insight_type: insightType, + insight: insight, + } + ); } /** - * Parse the project from Recommendation resource. + * Parse the project from ProjectLocationInsightTypeInsight resource. * - * @param {string} recommendationName - * A fully-qualified path representing Recommendation resource. + * @param {string} projectLocationInsightTypeInsightName + * A fully-qualified path representing project_location_insight_type_insight resource. * @returns {string} A string representing the project. */ - matchProjectFromRecommendationName(recommendationName: string) { - return this.pathTemplates.recommendationPathTemplate.match( - recommendationName + matchProjectFromProjectLocationInsightTypeInsightName( + projectLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.projectLocationInsightTypeInsightPathTemplate.match( + projectLocationInsightTypeInsightName ).project; } /** - * Parse the location from Recommendation resource. + * Parse the location from ProjectLocationInsightTypeInsight resource. * - * @param {string} recommendationName - * A fully-qualified path representing Recommendation resource. + * @param {string} projectLocationInsightTypeInsightName + * A fully-qualified path representing project_location_insight_type_insight resource. * @returns {string} A string representing the location. */ - matchLocationFromRecommendationName(recommendationName: string) { - return this.pathTemplates.recommendationPathTemplate.match( - recommendationName + matchLocationFromProjectLocationInsightTypeInsightName( + projectLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.projectLocationInsightTypeInsightPathTemplate.match( + projectLocationInsightTypeInsightName ).location; } /** - * Parse the recommender from Recommendation resource. + * Parse the insight_type from ProjectLocationInsightTypeInsight resource. * - * @param {string} recommendationName - * A fully-qualified path representing Recommendation resource. - * @returns {string} A string representing the recommender. + * @param {string} projectLocationInsightTypeInsightName + * A fully-qualified path representing project_location_insight_type_insight resource. + * @returns {string} A string representing the insight_type. */ - matchRecommenderFromRecommendationName(recommendationName: string) { - return this.pathTemplates.recommendationPathTemplate.match( - recommendationName - ).recommender; + matchInsightTypeFromProjectLocationInsightTypeInsightName( + projectLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.projectLocationInsightTypeInsightPathTemplate.match( + projectLocationInsightTypeInsightName + ).insight_type; } /** - * Parse the recommendation from Recommendation resource. + * Parse the insight from ProjectLocationInsightTypeInsight resource. * - * @param {string} recommendationName - * A fully-qualified path representing Recommendation resource. - * @returns {string} A string representing the recommendation. + * @param {string} projectLocationInsightTypeInsightName + * A fully-qualified path representing project_location_insight_type_insight resource. + * @returns {string} A string representing the insight. */ - matchRecommendationFromRecommendationName(recommendationName: string) { - return this.pathTemplates.recommendationPathTemplate.match( - recommendationName - ).recommendation; + matchInsightFromProjectLocationInsightTypeInsightName( + projectLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.projectLocationInsightTypeInsightPathTemplate.match( + projectLocationInsightTypeInsightName + ).insight; } /** - * Return a fully-qualified recommender resource name string. + * Return a fully-qualified projectLocationRecommender resource name string. * * @param {string} project * @param {string} location * @param {string} recommender * @returns {string} Resource name string. */ - recommenderPath(project: string, location: string, recommender: string) { - return this.pathTemplates.recommenderPathTemplate.render({ + projectLocationRecommenderPath( + project: string, + location: string, + recommender: string + ) { + return this.pathTemplates.projectLocationRecommenderPathTemplate.render({ project: project, location: location, recommender: recommender, @@ -1681,39 +1968,133 @@ export class RecommenderClient { } /** - * Parse the project from Recommender resource. + * Parse the project from ProjectLocationRecommender resource. * - * @param {string} recommenderName - * A fully-qualified path representing Recommender resource. + * @param {string} projectLocationRecommenderName + * A fully-qualified path representing project_location_recommender resource. * @returns {string} A string representing the project. */ - matchProjectFromRecommenderName(recommenderName: string) { - return this.pathTemplates.recommenderPathTemplate.match(recommenderName) - .project; + matchProjectFromProjectLocationRecommenderName( + projectLocationRecommenderName: string + ) { + return this.pathTemplates.projectLocationRecommenderPathTemplate.match( + projectLocationRecommenderName + ).project; + } + + /** + * Parse the location from ProjectLocationRecommender resource. + * + * @param {string} projectLocationRecommenderName + * A fully-qualified path representing project_location_recommender resource. + * @returns {string} A string representing the location. + */ + matchLocationFromProjectLocationRecommenderName( + projectLocationRecommenderName: string + ) { + return this.pathTemplates.projectLocationRecommenderPathTemplate.match( + projectLocationRecommenderName + ).location; + } + + /** + * Parse the recommender from ProjectLocationRecommender resource. + * + * @param {string} projectLocationRecommenderName + * A fully-qualified path representing project_location_recommender resource. + * @returns {string} A string representing the recommender. + */ + matchRecommenderFromProjectLocationRecommenderName( + projectLocationRecommenderName: string + ) { + return this.pathTemplates.projectLocationRecommenderPathTemplate.match( + projectLocationRecommenderName + ).recommender; + } + + /** + * Return a fully-qualified projectLocationRecommenderRecommendation resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} recommender + * @param {string} recommendation + * @returns {string} Resource name string. + */ + projectLocationRecommenderRecommendationPath( + project: string, + location: string, + recommender: string, + recommendation: string + ) { + return this.pathTemplates.projectLocationRecommenderRecommendationPathTemplate.render( + { + project: project, + location: location, + recommender: recommender, + recommendation: recommendation, + } + ); } /** - * Parse the location from Recommender resource. + * Parse the project from ProjectLocationRecommenderRecommendation resource. * - * @param {string} recommenderName - * A fully-qualified path representing Recommender resource. + * @param {string} projectLocationRecommenderRecommendationName + * A fully-qualified path representing project_location_recommender_recommendation resource. + * @returns {string} A string representing the project. + */ + matchProjectFromProjectLocationRecommenderRecommendationName( + projectLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.projectLocationRecommenderRecommendationPathTemplate.match( + projectLocationRecommenderRecommendationName + ).project; + } + + /** + * Parse the location from ProjectLocationRecommenderRecommendation resource. + * + * @param {string} projectLocationRecommenderRecommendationName + * A fully-qualified path representing project_location_recommender_recommendation resource. * @returns {string} A string representing the location. */ - matchLocationFromRecommenderName(recommenderName: string) { - return this.pathTemplates.recommenderPathTemplate.match(recommenderName) - .location; + matchLocationFromProjectLocationRecommenderRecommendationName( + projectLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.projectLocationRecommenderRecommendationPathTemplate.match( + projectLocationRecommenderRecommendationName + ).location; } /** - * Parse the recommender from Recommender resource. + * Parse the recommender from ProjectLocationRecommenderRecommendation resource. * - * @param {string} recommenderName - * A fully-qualified path representing Recommender resource. + * @param {string} projectLocationRecommenderRecommendationName + * A fully-qualified path representing project_location_recommender_recommendation resource. * @returns {string} A string representing the recommender. */ - matchRecommenderFromRecommenderName(recommenderName: string) { - return this.pathTemplates.recommenderPathTemplate.match(recommenderName) - .recommender; + matchRecommenderFromProjectLocationRecommenderRecommendationName( + projectLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.projectLocationRecommenderRecommendationPathTemplate.match( + projectLocationRecommenderRecommendationName + ).recommender; + } + + /** + * Parse the recommendation from ProjectLocationRecommenderRecommendation resource. + * + * @param {string} projectLocationRecommenderRecommendationName + * A fully-qualified path representing project_location_recommender_recommendation resource. + * @returns {string} A string representing the recommendation. + */ + matchRecommendationFromProjectLocationRecommenderRecommendationName( + projectLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.projectLocationRecommenderRecommendationPathTemplate.match( + projectLocationRecommenderRecommendationName + ).recommendation; } /** diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 29a1541f45d..42be1cf521d 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,15 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "559e94ac98f3539b7e68d86f9dd575f8239a2081" + "sha": "e06347ac86941705801aad1e3c3b6b87092aa535" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "d189e871205fea665a9648f7c4676f027495ccaf", - "internalRef": "345596855" + "sha": "5256ab60f3d396a3d1bd393043776936b9651c5b", + "internalRef": "347703845" } }, { diff --git a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts index 68135dfe6d4..c184a97509f 100644 --- a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts +++ b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts @@ -1490,10 +1490,85 @@ describe('v1.RecommenderClient', () => { }); describe('Path templates', () => { - describe('insight', () => { - const fakePath = '/rendered/path/insight'; + describe('billingAccountLocationInsightType', () => { + const fakePath = '/rendered/path/billingAccountLocationInsightType'; const expectedParameters = { - project: 'projectValue', + billing_account: 'billingAccountValue', + location: 'locationValue', + insight_type: 'insightTypeValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.billingAccountLocationInsightTypePathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.billingAccountLocationInsightTypePathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('billingAccountLocationInsightTypePath', () => { + const result = client.billingAccountLocationInsightTypePath( + 'billingAccountValue', + 'locationValue', + 'insightTypeValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.billingAccountLocationInsightTypePathTemplate + .render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchBillingAccountFromBillingAccountLocationInsightTypeName', () => { + const result = client.matchBillingAccountFromBillingAccountLocationInsightTypeName( + fakePath + ); + assert.strictEqual(result, 'billingAccountValue'); + assert( + (client.pathTemplates.billingAccountLocationInsightTypePathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromBillingAccountLocationInsightTypeName', () => { + const result = client.matchLocationFromBillingAccountLocationInsightTypeName( + fakePath + ); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.billingAccountLocationInsightTypePathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchInsightTypeFromBillingAccountLocationInsightTypeName', () => { + const result = client.matchInsightTypeFromBillingAccountLocationInsightTypeName( + fakePath + ); + assert.strictEqual(result, 'insightTypeValue'); + assert( + (client.pathTemplates.billingAccountLocationInsightTypePathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('billingAccountLocationInsightTypeInsight', () => { + const fakePath = + '/rendered/path/billingAccountLocationInsightTypeInsight'; + const expectedParameters = { + billing_account: 'billingAccountValue', location: 'locationValue', insight_type: 'insightTypeValue', insight: 'insightValue', @@ -1503,71 +1578,258 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.insightPathTemplate.render = sinon + client.pathTemplates.billingAccountLocationInsightTypeInsightPathTemplate.render = sinon .stub() .returns(fakePath); - client.pathTemplates.insightPathTemplate.match = sinon + client.pathTemplates.billingAccountLocationInsightTypeInsightPathTemplate.match = sinon .stub() .returns(expectedParameters); - it('insightPath', () => { - const result = client.insightPath( - 'projectValue', + it('billingAccountLocationInsightTypeInsightPath', () => { + const result = client.billingAccountLocationInsightTypeInsightPath( + 'billingAccountValue', 'locationValue', 'insightTypeValue', 'insightValue' ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.insightPathTemplate.render as SinonStub) + (client.pathTemplates + .billingAccountLocationInsightTypeInsightPathTemplate + .render as SinonStub) .getCall(-1) .calledWith(expectedParameters) ); }); - it('matchProjectFromInsightName', () => { - const result = client.matchProjectFromInsightName(fakePath); - assert.strictEqual(result, 'projectValue'); + it('matchBillingAccountFromBillingAccountLocationInsightTypeInsightName', () => { + const result = client.matchBillingAccountFromBillingAccountLocationInsightTypeInsightName( + fakePath + ); + assert.strictEqual(result, 'billingAccountValue'); assert( - (client.pathTemplates.insightPathTemplate.match as SinonStub) + (client.pathTemplates + .billingAccountLocationInsightTypeInsightPathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchLocationFromInsightName', () => { - const result = client.matchLocationFromInsightName(fakePath); + it('matchLocationFromBillingAccountLocationInsightTypeInsightName', () => { + const result = client.matchLocationFromBillingAccountLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.insightPathTemplate.match as SinonStub) + (client.pathTemplates + .billingAccountLocationInsightTypeInsightPathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchInsightTypeFromInsightName', () => { - const result = client.matchInsightTypeFromInsightName(fakePath); + it('matchInsightTypeFromBillingAccountLocationInsightTypeInsightName', () => { + const result = client.matchInsightTypeFromBillingAccountLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'insightTypeValue'); assert( - (client.pathTemplates.insightPathTemplate.match as SinonStub) + (client.pathTemplates + .billingAccountLocationInsightTypeInsightPathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchInsightFromInsightName', () => { - const result = client.matchInsightFromInsightName(fakePath); + it('matchInsightFromBillingAccountLocationInsightTypeInsightName', () => { + const result = client.matchInsightFromBillingAccountLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'insightValue'); assert( - (client.pathTemplates.insightPathTemplate.match as SinonStub) + (client.pathTemplates + .billingAccountLocationInsightTypeInsightPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('billingAccountLocationRecommender', () => { + const fakePath = '/rendered/path/billingAccountLocationRecommender'; + const expectedParameters = { + billing_account: 'billingAccountValue', + location: 'locationValue', + recommender: 'recommenderValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.billingAccountLocationRecommenderPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.billingAccountLocationRecommenderPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('billingAccountLocationRecommenderPath', () => { + const result = client.billingAccountLocationRecommenderPath( + 'billingAccountValue', + 'locationValue', + 'recommenderValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.billingAccountLocationRecommenderPathTemplate + .render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchBillingAccountFromBillingAccountLocationRecommenderName', () => { + const result = client.matchBillingAccountFromBillingAccountLocationRecommenderName( + fakePath + ); + assert.strictEqual(result, 'billingAccountValue'); + assert( + (client.pathTemplates.billingAccountLocationRecommenderPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromBillingAccountLocationRecommenderName', () => { + const result = client.matchLocationFromBillingAccountLocationRecommenderName( + fakePath + ); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.billingAccountLocationRecommenderPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommenderFromBillingAccountLocationRecommenderName', () => { + const result = client.matchRecommenderFromBillingAccountLocationRecommenderName( + fakePath + ); + assert.strictEqual(result, 'recommenderValue'); + assert( + (client.pathTemplates.billingAccountLocationRecommenderPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('billingAccountLocationRecommenderRecommendation', () => { + const fakePath = + '/rendered/path/billingAccountLocationRecommenderRecommendation'; + const expectedParameters = { + billing_account: 'billingAccountValue', + location: 'locationValue', + recommender: 'recommenderValue', + recommendation: 'recommendationValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.billingAccountLocationRecommenderRecommendationPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.billingAccountLocationRecommenderRecommendationPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('billingAccountLocationRecommenderRecommendationPath', () => { + const result = client.billingAccountLocationRecommenderRecommendationPath( + 'billingAccountValue', + 'locationValue', + 'recommenderValue', + 'recommendationValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates + .billingAccountLocationRecommenderRecommendationPathTemplate + .render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchBillingAccountFromBillingAccountLocationRecommenderRecommendationName', () => { + const result = client.matchBillingAccountFromBillingAccountLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'billingAccountValue'); + assert( + (client.pathTemplates + .billingAccountLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromBillingAccountLocationRecommenderRecommendationName', () => { + const result = client.matchLocationFromBillingAccountLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates + .billingAccountLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommenderFromBillingAccountLocationRecommenderRecommendationName', () => { + const result = client.matchRecommenderFromBillingAccountLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'recommenderValue'); + assert( + (client.pathTemplates + .billingAccountLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommendationFromBillingAccountLocationRecommenderRecommendationName', () => { + const result = client.matchRecommendationFromBillingAccountLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'recommendationValue'); + assert( + (client.pathTemplates + .billingAccountLocationRecommenderRecommendationPathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); }); - describe('insightType', () => { - const fakePath = '/rendered/path/insightType'; + describe('projectLocationInsightType', () => { + const fakePath = '/rendered/path/projectLocationInsightType'; const expectedParameters = { project: 'projectValue', location: 'locationValue', @@ -1578,138 +1840,159 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.insightTypePathTemplate.render = sinon + client.pathTemplates.projectLocationInsightTypePathTemplate.render = sinon .stub() .returns(fakePath); - client.pathTemplates.insightTypePathTemplate.match = sinon + client.pathTemplates.projectLocationInsightTypePathTemplate.match = sinon .stub() .returns(expectedParameters); - it('insightTypePath', () => { - const result = client.insightTypePath( + it('projectLocationInsightTypePath', () => { + const result = client.projectLocationInsightTypePath( 'projectValue', 'locationValue', 'insightTypeValue' ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.insightTypePathTemplate.render as SinonStub) + (client.pathTemplates.projectLocationInsightTypePathTemplate + .render as SinonStub) .getCall(-1) .calledWith(expectedParameters) ); }); - it('matchProjectFromInsightTypeName', () => { - const result = client.matchProjectFromInsightTypeName(fakePath); + it('matchProjectFromProjectLocationInsightTypeName', () => { + const result = client.matchProjectFromProjectLocationInsightTypeName( + fakePath + ); assert.strictEqual(result, 'projectValue'); assert( - (client.pathTemplates.insightTypePathTemplate.match as SinonStub) + (client.pathTemplates.projectLocationInsightTypePathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchLocationFromInsightTypeName', () => { - const result = client.matchLocationFromInsightTypeName(fakePath); + it('matchLocationFromProjectLocationInsightTypeName', () => { + const result = client.matchLocationFromProjectLocationInsightTypeName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.insightTypePathTemplate.match as SinonStub) + (client.pathTemplates.projectLocationInsightTypePathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchInsightTypeFromInsightTypeName', () => { - const result = client.matchInsightTypeFromInsightTypeName(fakePath); + it('matchInsightTypeFromProjectLocationInsightTypeName', () => { + const result = client.matchInsightTypeFromProjectLocationInsightTypeName( + fakePath + ); assert.strictEqual(result, 'insightTypeValue'); assert( - (client.pathTemplates.insightTypePathTemplate.match as SinonStub) + (client.pathTemplates.projectLocationInsightTypePathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); }); - describe('recommendation', () => { - const fakePath = '/rendered/path/recommendation'; + describe('projectLocationInsightTypeInsight', () => { + const fakePath = '/rendered/path/projectLocationInsightTypeInsight'; const expectedParameters = { project: 'projectValue', location: 'locationValue', - recommender: 'recommenderValue', - recommendation: 'recommendationValue', + insight_type: 'insightTypeValue', + insight: 'insightValue', }; const client = new recommenderModule.v1.RecommenderClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); - client.pathTemplates.recommendationPathTemplate.render = sinon + client.pathTemplates.projectLocationInsightTypeInsightPathTemplate.render = sinon .stub() .returns(fakePath); - client.pathTemplates.recommendationPathTemplate.match = sinon + client.pathTemplates.projectLocationInsightTypeInsightPathTemplate.match = sinon .stub() .returns(expectedParameters); - it('recommendationPath', () => { - const result = client.recommendationPath( + it('projectLocationInsightTypeInsightPath', () => { + const result = client.projectLocationInsightTypeInsightPath( 'projectValue', 'locationValue', - 'recommenderValue', - 'recommendationValue' + 'insightTypeValue', + 'insightValue' ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.recommendationPathTemplate.render as SinonStub) + (client.pathTemplates.projectLocationInsightTypeInsightPathTemplate + .render as SinonStub) .getCall(-1) .calledWith(expectedParameters) ); }); - it('matchProjectFromRecommendationName', () => { - const result = client.matchProjectFromRecommendationName(fakePath); + it('matchProjectFromProjectLocationInsightTypeInsightName', () => { + const result = client.matchProjectFromProjectLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'projectValue'); assert( - (client.pathTemplates.recommendationPathTemplate.match as SinonStub) + (client.pathTemplates.projectLocationInsightTypeInsightPathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchLocationFromRecommendationName', () => { - const result = client.matchLocationFromRecommendationName(fakePath); + it('matchLocationFromProjectLocationInsightTypeInsightName', () => { + const result = client.matchLocationFromProjectLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.recommendationPathTemplate.match as SinonStub) + (client.pathTemplates.projectLocationInsightTypeInsightPathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchRecommenderFromRecommendationName', () => { - const result = client.matchRecommenderFromRecommendationName(fakePath); - assert.strictEqual(result, 'recommenderValue'); + it('matchInsightTypeFromProjectLocationInsightTypeInsightName', () => { + const result = client.matchInsightTypeFromProjectLocationInsightTypeInsightName( + fakePath + ); + assert.strictEqual(result, 'insightTypeValue'); assert( - (client.pathTemplates.recommendationPathTemplate.match as SinonStub) + (client.pathTemplates.projectLocationInsightTypeInsightPathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchRecommendationFromRecommendationName', () => { - const result = client.matchRecommendationFromRecommendationName( + it('matchInsightFromProjectLocationInsightTypeInsightName', () => { + const result = client.matchInsightFromProjectLocationInsightTypeInsightName( fakePath ); - assert.strictEqual(result, 'recommendationValue'); + assert.strictEqual(result, 'insightValue'); assert( - (client.pathTemplates.recommendationPathTemplate.match as SinonStub) + (client.pathTemplates.projectLocationInsightTypeInsightPathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); }); - describe('recommender', () => { - const fakePath = '/rendered/path/recommender'; + describe('projectLocationRecommender', () => { + const fakePath = '/rendered/path/projectLocationRecommender'; const expectedParameters = { project: 'projectValue', location: 'locationValue', @@ -1720,52 +2003,157 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.recommenderPathTemplate.render = sinon + client.pathTemplates.projectLocationRecommenderPathTemplate.render = sinon .stub() .returns(fakePath); - client.pathTemplates.recommenderPathTemplate.match = sinon + client.pathTemplates.projectLocationRecommenderPathTemplate.match = sinon .stub() .returns(expectedParameters); - it('recommenderPath', () => { - const result = client.recommenderPath( + it('projectLocationRecommenderPath', () => { + const result = client.projectLocationRecommenderPath( 'projectValue', 'locationValue', 'recommenderValue' ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.recommenderPathTemplate.render as SinonStub) + (client.pathTemplates.projectLocationRecommenderPathTemplate + .render as SinonStub) .getCall(-1) .calledWith(expectedParameters) ); }); - it('matchProjectFromRecommenderName', () => { - const result = client.matchProjectFromRecommenderName(fakePath); + it('matchProjectFromProjectLocationRecommenderName', () => { + const result = client.matchProjectFromProjectLocationRecommenderName( + fakePath + ); assert.strictEqual(result, 'projectValue'); assert( - (client.pathTemplates.recommenderPathTemplate.match as SinonStub) + (client.pathTemplates.projectLocationRecommenderPathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchLocationFromRecommenderName', () => { - const result = client.matchLocationFromRecommenderName(fakePath); + it('matchLocationFromProjectLocationRecommenderName', () => { + const result = client.matchLocationFromProjectLocationRecommenderName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.recommenderPathTemplate.match as SinonStub) + (client.pathTemplates.projectLocationRecommenderPathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); }); - it('matchRecommenderFromRecommenderName', () => { - const result = client.matchRecommenderFromRecommenderName(fakePath); + it('matchRecommenderFromProjectLocationRecommenderName', () => { + const result = client.matchRecommenderFromProjectLocationRecommenderName( + fakePath + ); assert.strictEqual(result, 'recommenderValue'); assert( - (client.pathTemplates.recommenderPathTemplate.match as SinonStub) + (client.pathTemplates.projectLocationRecommenderPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('projectLocationRecommenderRecommendation', () => { + const fakePath = + '/rendered/path/projectLocationRecommenderRecommendation'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + recommender: 'recommenderValue', + recommendation: 'recommendationValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.projectLocationRecommenderRecommendationPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.projectLocationRecommenderRecommendationPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('projectLocationRecommenderRecommendationPath', () => { + const result = client.projectLocationRecommenderRecommendationPath( + 'projectValue', + 'locationValue', + 'recommenderValue', + 'recommendationValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates + .projectLocationRecommenderRecommendationPathTemplate + .render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromProjectLocationRecommenderRecommendationName', () => { + const result = client.matchProjectFromProjectLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates + .projectLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromProjectLocationRecommenderRecommendationName', () => { + const result = client.matchLocationFromProjectLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates + .projectLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommenderFromProjectLocationRecommenderRecommendationName', () => { + const result = client.matchRecommenderFromProjectLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'recommenderValue'); + assert( + (client.pathTemplates + .projectLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommendationFromProjectLocationRecommenderRecommendationName', () => { + const result = client.matchRecommendationFromProjectLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'recommendationValue'); + assert( + (client.pathTemplates + .projectLocationRecommenderRecommendationPathTemplate + .match as SinonStub) .getCall(-1) .calledWith(fakePath) ); From a8f1fc236c148579c24f293955085f5b06f3cee7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 6 Jan 2021 16:26:07 -0800 Subject: [PATCH 102/158] chore: release 4.0.0 (#142) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- packages/google-cloud-recommender/CHANGELOG.md | 11 +++++++++++ packages/google-cloud-recommender/package.json | 2 +- .../google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 456d9ecc0a7..c27b01bb46e 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [4.0.0](https://www.github.com/googleapis/nodejs-recommender/compare/v3.2.2...v4.0.0) (2021-01-07) + + +### ⚠ BREAKING CHANGES + +* resource path helper recommenderPath has been removed + +### Features + +* Add support for "billingAccounts" as another parent resource name for recommendations and insights APIs. ([#138](https://www.github.com/googleapis/nodejs-recommender/issues/138)) ([42d07c5](https://www.github.com/googleapis/nodejs-recommender/commit/42d07c5a4e802882f94a1e3272ad8591cb370236)) + ### [3.2.2](https://www.github.com/googleapis/nodejs-recommender/compare/v3.2.1...v3.2.2) (2020-11-25) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index de22c594224..cf2c050c86b 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "3.2.2", + "version": "4.0.0", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index b0b8a3bbabe..0717623cba7 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^3.2.2" + "@google-cloud/recommender": "^4.0.0" }, "devDependencies": { "c8": "^7.0.0", From eb67664626dedf8c46a43ec6f549a2813caa4cba Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 11 Jan 2021 18:03:11 -0800 Subject: [PATCH 103/158] docs: update formatting in README --- packages/google-cloud-recommender/README.md | 6 +++++- packages/google-cloud-recommender/synth.metadata | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index 3cee77b9659..029fc81ba45 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -66,7 +66,11 @@ async function listRecommendations() { // recommenderId = 'google.compute.instance.MachineTypeRecommender'; const [recommendations] = await recommender.listRecommendations({ - parent: recommender.projectLocationRecommenderPath(project, 'global', recommenderId), + parent: recommender.projectLocationRecommenderPath( + project, + 'global', + recommenderId + ), }); console.info(`recommendations for ${recommenderId}:`); for (const recommendation of recommendations) { diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 42be1cf521d..fa7a5378987 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "e06347ac86941705801aad1e3c3b6b87092aa535" + "sha": "478a06281fe0845035ec8bb48e531eae25066c66" } }, { From b02c93186ab281ea047b563185dfe22959c37d9f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 12 Jan 2021 18:36:19 +0000 Subject: [PATCH 104/158] chore: release 4.1.0 (#144) :robot: I have created a release \*beep\* \*boop\* --- ## [4.1.0](https://www.github.com/googleapis/nodejs-recommender/compare/v4.0.0...v4.1.0) (2021-01-12) ### Features * introduce style enumeration ([#141](https://www.github.com/googleapis/nodejs-recommender/issues/141)) ([478a062](https://www.github.com/googleapis/nodejs-recommender/commit/478a06281fe0845035ec8bb48e531eae25066c66)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index c27b01bb46e..015d40fe825 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [4.1.0](https://www.github.com/googleapis/nodejs-recommender/compare/v4.0.0...v4.1.0) (2021-01-12) + + +### Features + +* introduce style enumeration ([#141](https://www.github.com/googleapis/nodejs-recommender/issues/141)) ([478a062](https://www.github.com/googleapis/nodejs-recommender/commit/478a06281fe0845035ec8bb48e531eae25066c66)) + ## [4.0.0](https://www.github.com/googleapis/nodejs-recommender/compare/v3.2.2...v4.0.0) (2021-01-07) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index cf2c050c86b..c3a1f75fe26 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "4.0.0", + "version": "4.1.0", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 0717623cba7..cfd85e4643f 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^4.0.0" + "@google-cloud/recommender": "^4.1.0" }, "devDependencies": { "c8": "^7.0.0", From ca17ceba171290bd60a579a84219eba512e0136e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 26 Jan 2021 17:03:45 -0800 Subject: [PATCH 105/158] meta: multiple commits feat: Add support for "billingAccounts" as another parent resource name for recommendations and insights APIs. feat: add bindings for folder/org type resources for protos in recommendations, insights and recommender_service to enable v1 api for folder/org PiperOrigin-RevId: 353048801 Source-Author: Google APIs Source-Date: Thu Jan 21 10:27:46 2021 -0800 Source-Repo: googleapis/googleapis Source-Sha: c99f76d57aaaf8597772f3576966636c5b699eff Source-Link: https://github.com/googleapis/googleapis/commit/c99f76d57aaaf8597772f3576966636c5b699eff --- .../google/cloud/recommender/v1/insight.proto | 4 + .../cloud/recommender/v1/recommendation.proto | 4 + .../recommender/v1/recommender_service.proto | 56 ++ .../protos/protos.json | 150 +++- .../src/v1/recommender_client.ts | 628 ++++++++++++++++ .../google-cloud-recommender/synth.metadata | 6 +- .../test/gapic_recommender_v1.ts | 668 ++++++++++++++++++ 7 files changed, 1474 insertions(+), 42 deletions(-) diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto index 3708c8355f5..e561b838180 100644 --- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto @@ -31,6 +31,8 @@ option (google.api.resource_definition) = { type: "recommender.googleapis.com/InsightType" pattern: "projects/{project}/locations/{location}/insightTypes/{insight_type}" pattern: "billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}" + pattern: "folders/{folder}/locations/{location}/insightTypes/{insight_type}" + pattern: "organizations/{organization}/locations/{location}/insightTypes/{insight_type}" }; // An insight along with the information used to derive the insight. The insight @@ -40,6 +42,8 @@ message Insight { type: "recommender.googleapis.com/Insight" pattern: "projects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" pattern: "billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" + pattern: "folders/{folder}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" + pattern: "organizations/{organization}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" }; // Reference to an associated recommendation. diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto index 42345d8e1d0..78f8f10c278 100644 --- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto @@ -31,6 +31,8 @@ option (google.api.resource_definition) = { type: "recommender.googleapis.com/Recommender" pattern: "projects/{project}/locations/{location}/recommenders/{recommender}" pattern: "billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}" + pattern: "folders/{folder}/locations/{location}/recommenders/{recommender}" + pattern: "organizations/{organization}/locations/{location}/recommenders/{recommender}" }; // A recommendation along with a suggested action. E.g., a rightsizing @@ -40,6 +42,8 @@ message Recommendation { type: "recommender.googleapis.com/Recommendation" pattern: "projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" pattern: "billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" + pattern: "folders/{folder}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" + pattern: "organizations/{organization}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" }; // Reference to an associated insight. diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto index 3bd54f836b8..f8816a92471 100644 --- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto +++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto @@ -46,6 +46,12 @@ service Recommender { additional_bindings { get: "/v1/{parent=billingAccounts/*/locations/*/insightTypes/*}/insights" } + additional_bindings { + get: "/v1/{parent=folders/*/locations/*/insightTypes/*}/insights" + } + additional_bindings { + get: "/v1/{parent=organizations/*/locations/*/insightTypes/*}/insights" + } }; option (google.api.method_signature) = "parent"; } @@ -58,6 +64,12 @@ service Recommender { additional_bindings { get: "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}" } + additional_bindings { + get: "/v1/{name=folders/*/locations/*/insightTypes/*/insights/*}" + } + additional_bindings { + get: "/v1/{name=organizations/*/locations/*/insightTypes/*/insights/*}" + } }; option (google.api.method_signature) = "name"; } @@ -76,6 +88,14 @@ service Recommender { post: "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}:markAccepted" body: "*" } + additional_bindings { + post: "/v1/{name=folders/*/locations/*/insightTypes/*/insights/*}:markAccepted" + body: "*" + } + additional_bindings { + post: "/v1/{name=organizations/*/locations/*/insightTypes/*/insights/*}:markAccepted" + body: "*" + } }; option (google.api.method_signature) = "name,state_metadata,etag"; } @@ -88,6 +108,12 @@ service Recommender { additional_bindings { get: "/v1/{parent=billingAccounts/*/locations/*/recommenders/*}/recommendations" } + additional_bindings { + get: "/v1/{parent=folders/*/locations/*/recommenders/*}/recommendations" + } + additional_bindings { + get: "/v1/{parent=organizations/*/locations/*/recommenders/*}/recommendations" + } }; option (google.api.method_signature) = "parent"; option (google.api.method_signature) = "parent,filter"; @@ -101,6 +127,12 @@ service Recommender { additional_bindings { get: "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}" } + additional_bindings { + get: "/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}" + } + additional_bindings { + get: "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}" + } }; option (google.api.method_signature) = "name"; } @@ -123,6 +155,14 @@ service Recommender { post: "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markClaimed" body: "*" } + additional_bindings { + post: "/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markClaimed" + body: "*" + } + additional_bindings { + post: "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markClaimed" + body: "*" + } }; option (google.api.method_signature) = "name,state_metadata,etag"; } @@ -146,6 +186,14 @@ service Recommender { post: "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markSucceeded" body: "*" } + additional_bindings { + post: "/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markSucceeded" + body: "*" + } + additional_bindings { + post: "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markSucceeded" + body: "*" + } }; option (google.api.method_signature) = "name,state_metadata,etag"; } @@ -169,6 +217,14 @@ service Recommender { post: "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markFailed" body: "*" } + additional_bindings { + post: "/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markFailed" + body: "*" + } + additional_bindings { + post: "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markFailed" + body: "*" + } }; option (google.api.method_signature) = "name,state_metadata,etag"; } diff --git a/packages/google-cloud-recommender/protos/protos.json b/packages/google-cloud-recommender/protos/protos.json index 7be5025029b..0f2cf877e4b 100644 --- a/packages/google-cloud-recommender/protos/protos.json +++ b/packages/google-cloud-recommender/protos/protos.json @@ -15,13 +15,13 @@ "java_package": "com.google.cloud.recommender.v1", "objc_class_prefix": "CREC", "(google.api.resource_definition).type": "recommender.googleapis.com/Recommender", - "(google.api.resource_definition).pattern": "billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}" + "(google.api.resource_definition).pattern": "organizations/{organization}/locations/{location}/recommenders/{recommender}" }, "nested": { "Insight": { "options": { "(google.api.resource).type": "recommender.googleapis.com/Insight", - "(google.api.resource).pattern": "billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" + "(google.api.resource).pattern": "organizations/{organization}/locations/{location}/insightTypes/{insight_type}/insights/{insight}" }, "fields": { "name": { @@ -117,7 +117,7 @@ "Recommendation": { "options": { "(google.api.resource).type": "recommender.googleapis.com/Recommendation", - "(google.api.resource).pattern": "billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" + "(google.api.resource).pattern": "organizations/{organization}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}" }, "fields": { "name": { @@ -339,16 +339,24 @@ "responseType": "ListInsightsResponse", "options": { "(google.api.http).get": "/v1/{parent=projects/*/locations/*/insightTypes/*}/insights", - "(google.api.http).additional_bindings.get": "/v1/{parent=billingAccounts/*/locations/*/insightTypes/*}/insights", + "(google.api.http).additional_bindings.get": "/v1/{parent=organizations/*/locations/*/insightTypes/*}/insights", "(google.api.method_signature)": "parent" }, "parsedOptions": [ { "(google.api.http)": { "get": "/v1/{parent=projects/*/locations/*/insightTypes/*}/insights", - "additional_bindings": { - "get": "/v1/{parent=billingAccounts/*/locations/*/insightTypes/*}/insights" - } + "additional_bindings": [ + { + "get": "/v1/{parent=billingAccounts/*/locations/*/insightTypes/*}/insights" + }, + { + "get": "/v1/{parent=folders/*/locations/*/insightTypes/*}/insights" + }, + { + "get": "/v1/{parent=organizations/*/locations/*/insightTypes/*}/insights" + } + ] } }, { @@ -361,16 +369,24 @@ "responseType": "Insight", "options": { "(google.api.http).get": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}", - "(google.api.http).additional_bindings.get": "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}", + "(google.api.http).additional_bindings.get": "/v1/{name=organizations/*/locations/*/insightTypes/*/insights/*}", "(google.api.method_signature)": "name" }, "parsedOptions": [ { "(google.api.http)": { "get": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}", - "additional_bindings": { - "get": "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}" - } + "additional_bindings": [ + { + "get": "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}" + }, + { + "get": "/v1/{name=folders/*/locations/*/insightTypes/*/insights/*}" + }, + { + "get": "/v1/{name=organizations/*/locations/*/insightTypes/*/insights/*}" + } + ] } }, { @@ -384,7 +400,7 @@ "options": { "(google.api.http).post": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}:markAccepted", "(google.api.http).body": "*", - "(google.api.http).additional_bindings.post": "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}:markAccepted", + "(google.api.http).additional_bindings.post": "/v1/{name=organizations/*/locations/*/insightTypes/*/insights/*}:markAccepted", "(google.api.http).additional_bindings.body": "*", "(google.api.method_signature)": "name,state_metadata,etag" }, @@ -393,10 +409,20 @@ "(google.api.http)": { "post": "/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}:markAccepted", "body": "*", - "additional_bindings": { - "post": "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}:markAccepted", - "body": "*" - } + "additional_bindings": [ + { + "post": "/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}:markAccepted", + "body": "*" + }, + { + "post": "/v1/{name=folders/*/locations/*/insightTypes/*/insights/*}:markAccepted", + "body": "*" + }, + { + "post": "/v1/{name=organizations/*/locations/*/insightTypes/*/insights/*}:markAccepted", + "body": "*" + } + ] } }, { @@ -409,16 +435,24 @@ "responseType": "ListRecommendationsResponse", "options": { "(google.api.http).get": "/v1/{parent=projects/*/locations/*/recommenders/*}/recommendations", - "(google.api.http).additional_bindings.get": "/v1/{parent=billingAccounts/*/locations/*/recommenders/*}/recommendations", + "(google.api.http).additional_bindings.get": "/v1/{parent=organizations/*/locations/*/recommenders/*}/recommendations", "(google.api.method_signature)": "parent,filter" }, "parsedOptions": [ { "(google.api.http)": { "get": "/v1/{parent=projects/*/locations/*/recommenders/*}/recommendations", - "additional_bindings": { - "get": "/v1/{parent=billingAccounts/*/locations/*/recommenders/*}/recommendations" - } + "additional_bindings": [ + { + "get": "/v1/{parent=billingAccounts/*/locations/*/recommenders/*}/recommendations" + }, + { + "get": "/v1/{parent=folders/*/locations/*/recommenders/*}/recommendations" + }, + { + "get": "/v1/{parent=organizations/*/locations/*/recommenders/*}/recommendations" + } + ] } }, { @@ -434,16 +468,24 @@ "responseType": "Recommendation", "options": { "(google.api.http).get": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}", - "(google.api.http).additional_bindings.get": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}", + "(google.api.http).additional_bindings.get": "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}", "(google.api.method_signature)": "name" }, "parsedOptions": [ { "(google.api.http)": { "get": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}", - "additional_bindings": { - "get": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}" - } + "additional_bindings": [ + { + "get": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}" + }, + { + "get": "/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}" + }, + { + "get": "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}" + } + ] } }, { @@ -457,7 +499,7 @@ "options": { "(google.api.http).post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed", "(google.api.http).body": "*", - "(google.api.http).additional_bindings.post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markClaimed", + "(google.api.http).additional_bindings.post": "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markClaimed", "(google.api.http).additional_bindings.body": "*", "(google.api.method_signature)": "name,state_metadata,etag" }, @@ -466,10 +508,20 @@ "(google.api.http)": { "post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed", "body": "*", - "additional_bindings": { - "post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markClaimed", - "body": "*" - } + "additional_bindings": [ + { + "post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markClaimed", + "body": "*" + }, + { + "post": "/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markClaimed", + "body": "*" + }, + { + "post": "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markClaimed", + "body": "*" + } + ] } }, { @@ -483,7 +535,7 @@ "options": { "(google.api.http).post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", "(google.api.http).body": "*", - "(google.api.http).additional_bindings.post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", + "(google.api.http).additional_bindings.post": "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", "(google.api.http).additional_bindings.body": "*", "(google.api.method_signature)": "name,state_metadata,etag" }, @@ -492,10 +544,20 @@ "(google.api.http)": { "post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", "body": "*", - "additional_bindings": { - "post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", - "body": "*" - } + "additional_bindings": [ + { + "post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", + "body": "*" + }, + { + "post": "/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", + "body": "*" + }, + { + "post": "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markSucceeded", + "body": "*" + } + ] } }, { @@ -509,7 +571,7 @@ "options": { "(google.api.http).post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed", "(google.api.http).body": "*", - "(google.api.http).additional_bindings.post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markFailed", + "(google.api.http).additional_bindings.post": "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markFailed", "(google.api.http).additional_bindings.body": "*", "(google.api.method_signature)": "name,state_metadata,etag" }, @@ -518,10 +580,20 @@ "(google.api.http)": { "post": "/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed", "body": "*", - "additional_bindings": { - "post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markFailed", - "body": "*" - } + "additional_bindings": [ + { + "post": "/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markFailed", + "body": "*" + }, + { + "post": "/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markFailed", + "body": "*" + }, + { + "post": "/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markFailed", + "body": "*" + } + ] } }, { diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 849785fba65..37fbe518edc 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -181,6 +181,30 @@ export class RecommenderClient { billingAccountLocationRecommenderRecommendationPathTemplate: new this._gaxModule.PathTemplate( 'billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' ), + folderLocationInsightTypePathTemplate: new this._gaxModule.PathTemplate( + 'folders/{folder}/locations/{location}/insightTypes/{insight_type}' + ), + folderLocationInsightTypeInsightPathTemplate: new this._gaxModule.PathTemplate( + 'folders/{folder}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' + ), + folderLocationRecommenderPathTemplate: new this._gaxModule.PathTemplate( + 'folders/{folder}/locations/{location}/recommenders/{recommender}' + ), + folderLocationRecommenderRecommendationPathTemplate: new this._gaxModule.PathTemplate( + 'folders/{folder}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' + ), + organizationLocationInsightTypePathTemplate: new this._gaxModule.PathTemplate( + 'organizations/{organization}/locations/{location}/insightTypes/{insight_type}' + ), + organizationLocationInsightTypeInsightPathTemplate: new this._gaxModule.PathTemplate( + 'organizations/{organization}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' + ), + organizationLocationRecommenderPathTemplate: new this._gaxModule.PathTemplate( + 'organizations/{organization}/locations/{location}/recommenders/{recommender}' + ), + organizationLocationRecommenderRecommendationPathTemplate: new this._gaxModule.PathTemplate( + 'organizations/{organization}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' + ), projectLocationInsightTypePathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/insightTypes/{insight_type}' ), @@ -1797,6 +1821,610 @@ export class RecommenderClient { ).recommendation; } + /** + * Return a fully-qualified folderLocationInsightType resource name string. + * + * @param {string} folder + * @param {string} location + * @param {string} insight_type + * @returns {string} Resource name string. + */ + folderLocationInsightTypePath( + folder: string, + location: string, + insightType: string + ) { + return this.pathTemplates.folderLocationInsightTypePathTemplate.render({ + folder: folder, + location: location, + insight_type: insightType, + }); + } + + /** + * Parse the folder from FolderLocationInsightType resource. + * + * @param {string} folderLocationInsightTypeName + * A fully-qualified path representing folder_location_insight_type resource. + * @returns {string} A string representing the folder. + */ + matchFolderFromFolderLocationInsightTypeName( + folderLocationInsightTypeName: string + ) { + return this.pathTemplates.folderLocationInsightTypePathTemplate.match( + folderLocationInsightTypeName + ).folder; + } + + /** + * Parse the location from FolderLocationInsightType resource. + * + * @param {string} folderLocationInsightTypeName + * A fully-qualified path representing folder_location_insight_type resource. + * @returns {string} A string representing the location. + */ + matchLocationFromFolderLocationInsightTypeName( + folderLocationInsightTypeName: string + ) { + return this.pathTemplates.folderLocationInsightTypePathTemplate.match( + folderLocationInsightTypeName + ).location; + } + + /** + * Parse the insight_type from FolderLocationInsightType resource. + * + * @param {string} folderLocationInsightTypeName + * A fully-qualified path representing folder_location_insight_type resource. + * @returns {string} A string representing the insight_type. + */ + matchInsightTypeFromFolderLocationInsightTypeName( + folderLocationInsightTypeName: string + ) { + return this.pathTemplates.folderLocationInsightTypePathTemplate.match( + folderLocationInsightTypeName + ).insight_type; + } + + /** + * Return a fully-qualified folderLocationInsightTypeInsight resource name string. + * + * @param {string} folder + * @param {string} location + * @param {string} insight_type + * @param {string} insight + * @returns {string} Resource name string. + */ + folderLocationInsightTypeInsightPath( + folder: string, + location: string, + insightType: string, + insight: string + ) { + return this.pathTemplates.folderLocationInsightTypeInsightPathTemplate.render( + { + folder: folder, + location: location, + insight_type: insightType, + insight: insight, + } + ); + } + + /** + * Parse the folder from FolderLocationInsightTypeInsight resource. + * + * @param {string} folderLocationInsightTypeInsightName + * A fully-qualified path representing folder_location_insight_type_insight resource. + * @returns {string} A string representing the folder. + */ + matchFolderFromFolderLocationInsightTypeInsightName( + folderLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.folderLocationInsightTypeInsightPathTemplate.match( + folderLocationInsightTypeInsightName + ).folder; + } + + /** + * Parse the location from FolderLocationInsightTypeInsight resource. + * + * @param {string} folderLocationInsightTypeInsightName + * A fully-qualified path representing folder_location_insight_type_insight resource. + * @returns {string} A string representing the location. + */ + matchLocationFromFolderLocationInsightTypeInsightName( + folderLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.folderLocationInsightTypeInsightPathTemplate.match( + folderLocationInsightTypeInsightName + ).location; + } + + /** + * Parse the insight_type from FolderLocationInsightTypeInsight resource. + * + * @param {string} folderLocationInsightTypeInsightName + * A fully-qualified path representing folder_location_insight_type_insight resource. + * @returns {string} A string representing the insight_type. + */ + matchInsightTypeFromFolderLocationInsightTypeInsightName( + folderLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.folderLocationInsightTypeInsightPathTemplate.match( + folderLocationInsightTypeInsightName + ).insight_type; + } + + /** + * Parse the insight from FolderLocationInsightTypeInsight resource. + * + * @param {string} folderLocationInsightTypeInsightName + * A fully-qualified path representing folder_location_insight_type_insight resource. + * @returns {string} A string representing the insight. + */ + matchInsightFromFolderLocationInsightTypeInsightName( + folderLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.folderLocationInsightTypeInsightPathTemplate.match( + folderLocationInsightTypeInsightName + ).insight; + } + + /** + * Return a fully-qualified folderLocationRecommender resource name string. + * + * @param {string} folder + * @param {string} location + * @param {string} recommender + * @returns {string} Resource name string. + */ + folderLocationRecommenderPath( + folder: string, + location: string, + recommender: string + ) { + return this.pathTemplates.folderLocationRecommenderPathTemplate.render({ + folder: folder, + location: location, + recommender: recommender, + }); + } + + /** + * Parse the folder from FolderLocationRecommender resource. + * + * @param {string} folderLocationRecommenderName + * A fully-qualified path representing folder_location_recommender resource. + * @returns {string} A string representing the folder. + */ + matchFolderFromFolderLocationRecommenderName( + folderLocationRecommenderName: string + ) { + return this.pathTemplates.folderLocationRecommenderPathTemplate.match( + folderLocationRecommenderName + ).folder; + } + + /** + * Parse the location from FolderLocationRecommender resource. + * + * @param {string} folderLocationRecommenderName + * A fully-qualified path representing folder_location_recommender resource. + * @returns {string} A string representing the location. + */ + matchLocationFromFolderLocationRecommenderName( + folderLocationRecommenderName: string + ) { + return this.pathTemplates.folderLocationRecommenderPathTemplate.match( + folderLocationRecommenderName + ).location; + } + + /** + * Parse the recommender from FolderLocationRecommender resource. + * + * @param {string} folderLocationRecommenderName + * A fully-qualified path representing folder_location_recommender resource. + * @returns {string} A string representing the recommender. + */ + matchRecommenderFromFolderLocationRecommenderName( + folderLocationRecommenderName: string + ) { + return this.pathTemplates.folderLocationRecommenderPathTemplate.match( + folderLocationRecommenderName + ).recommender; + } + + /** + * Return a fully-qualified folderLocationRecommenderRecommendation resource name string. + * + * @param {string} folder + * @param {string} location + * @param {string} recommender + * @param {string} recommendation + * @returns {string} Resource name string. + */ + folderLocationRecommenderRecommendationPath( + folder: string, + location: string, + recommender: string, + recommendation: string + ) { + return this.pathTemplates.folderLocationRecommenderRecommendationPathTemplate.render( + { + folder: folder, + location: location, + recommender: recommender, + recommendation: recommendation, + } + ); + } + + /** + * Parse the folder from FolderLocationRecommenderRecommendation resource. + * + * @param {string} folderLocationRecommenderRecommendationName + * A fully-qualified path representing folder_location_recommender_recommendation resource. + * @returns {string} A string representing the folder. + */ + matchFolderFromFolderLocationRecommenderRecommendationName( + folderLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.folderLocationRecommenderRecommendationPathTemplate.match( + folderLocationRecommenderRecommendationName + ).folder; + } + + /** + * Parse the location from FolderLocationRecommenderRecommendation resource. + * + * @param {string} folderLocationRecommenderRecommendationName + * A fully-qualified path representing folder_location_recommender_recommendation resource. + * @returns {string} A string representing the location. + */ + matchLocationFromFolderLocationRecommenderRecommendationName( + folderLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.folderLocationRecommenderRecommendationPathTemplate.match( + folderLocationRecommenderRecommendationName + ).location; + } + + /** + * Parse the recommender from FolderLocationRecommenderRecommendation resource. + * + * @param {string} folderLocationRecommenderRecommendationName + * A fully-qualified path representing folder_location_recommender_recommendation resource. + * @returns {string} A string representing the recommender. + */ + matchRecommenderFromFolderLocationRecommenderRecommendationName( + folderLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.folderLocationRecommenderRecommendationPathTemplate.match( + folderLocationRecommenderRecommendationName + ).recommender; + } + + /** + * Parse the recommendation from FolderLocationRecommenderRecommendation resource. + * + * @param {string} folderLocationRecommenderRecommendationName + * A fully-qualified path representing folder_location_recommender_recommendation resource. + * @returns {string} A string representing the recommendation. + */ + matchRecommendationFromFolderLocationRecommenderRecommendationName( + folderLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.folderLocationRecommenderRecommendationPathTemplate.match( + folderLocationRecommenderRecommendationName + ).recommendation; + } + + /** + * Return a fully-qualified organizationLocationInsightType resource name string. + * + * @param {string} organization + * @param {string} location + * @param {string} insight_type + * @returns {string} Resource name string. + */ + organizationLocationInsightTypePath( + organization: string, + location: string, + insightType: string + ) { + return this.pathTemplates.organizationLocationInsightTypePathTemplate.render( + { + organization: organization, + location: location, + insight_type: insightType, + } + ); + } + + /** + * Parse the organization from OrganizationLocationInsightType resource. + * + * @param {string} organizationLocationInsightTypeName + * A fully-qualified path representing organization_location_insight_type resource. + * @returns {string} A string representing the organization. + */ + matchOrganizationFromOrganizationLocationInsightTypeName( + organizationLocationInsightTypeName: string + ) { + return this.pathTemplates.organizationLocationInsightTypePathTemplate.match( + organizationLocationInsightTypeName + ).organization; + } + + /** + * Parse the location from OrganizationLocationInsightType resource. + * + * @param {string} organizationLocationInsightTypeName + * A fully-qualified path representing organization_location_insight_type resource. + * @returns {string} A string representing the location. + */ + matchLocationFromOrganizationLocationInsightTypeName( + organizationLocationInsightTypeName: string + ) { + return this.pathTemplates.organizationLocationInsightTypePathTemplate.match( + organizationLocationInsightTypeName + ).location; + } + + /** + * Parse the insight_type from OrganizationLocationInsightType resource. + * + * @param {string} organizationLocationInsightTypeName + * A fully-qualified path representing organization_location_insight_type resource. + * @returns {string} A string representing the insight_type. + */ + matchInsightTypeFromOrganizationLocationInsightTypeName( + organizationLocationInsightTypeName: string + ) { + return this.pathTemplates.organizationLocationInsightTypePathTemplate.match( + organizationLocationInsightTypeName + ).insight_type; + } + + /** + * Return a fully-qualified organizationLocationInsightTypeInsight resource name string. + * + * @param {string} organization + * @param {string} location + * @param {string} insight_type + * @param {string} insight + * @returns {string} Resource name string. + */ + organizationLocationInsightTypeInsightPath( + organization: string, + location: string, + insightType: string, + insight: string + ) { + return this.pathTemplates.organizationLocationInsightTypeInsightPathTemplate.render( + { + organization: organization, + location: location, + insight_type: insightType, + insight: insight, + } + ); + } + + /** + * Parse the organization from OrganizationLocationInsightTypeInsight resource. + * + * @param {string} organizationLocationInsightTypeInsightName + * A fully-qualified path representing organization_location_insight_type_insight resource. + * @returns {string} A string representing the organization. + */ + matchOrganizationFromOrganizationLocationInsightTypeInsightName( + organizationLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.organizationLocationInsightTypeInsightPathTemplate.match( + organizationLocationInsightTypeInsightName + ).organization; + } + + /** + * Parse the location from OrganizationLocationInsightTypeInsight resource. + * + * @param {string} organizationLocationInsightTypeInsightName + * A fully-qualified path representing organization_location_insight_type_insight resource. + * @returns {string} A string representing the location. + */ + matchLocationFromOrganizationLocationInsightTypeInsightName( + organizationLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.organizationLocationInsightTypeInsightPathTemplate.match( + organizationLocationInsightTypeInsightName + ).location; + } + + /** + * Parse the insight_type from OrganizationLocationInsightTypeInsight resource. + * + * @param {string} organizationLocationInsightTypeInsightName + * A fully-qualified path representing organization_location_insight_type_insight resource. + * @returns {string} A string representing the insight_type. + */ + matchInsightTypeFromOrganizationLocationInsightTypeInsightName( + organizationLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.organizationLocationInsightTypeInsightPathTemplate.match( + organizationLocationInsightTypeInsightName + ).insight_type; + } + + /** + * Parse the insight from OrganizationLocationInsightTypeInsight resource. + * + * @param {string} organizationLocationInsightTypeInsightName + * A fully-qualified path representing organization_location_insight_type_insight resource. + * @returns {string} A string representing the insight. + */ + matchInsightFromOrganizationLocationInsightTypeInsightName( + organizationLocationInsightTypeInsightName: string + ) { + return this.pathTemplates.organizationLocationInsightTypeInsightPathTemplate.match( + organizationLocationInsightTypeInsightName + ).insight; + } + + /** + * Return a fully-qualified organizationLocationRecommender resource name string. + * + * @param {string} organization + * @param {string} location + * @param {string} recommender + * @returns {string} Resource name string. + */ + organizationLocationRecommenderPath( + organization: string, + location: string, + recommender: string + ) { + return this.pathTemplates.organizationLocationRecommenderPathTemplate.render( + { + organization: organization, + location: location, + recommender: recommender, + } + ); + } + + /** + * Parse the organization from OrganizationLocationRecommender resource. + * + * @param {string} organizationLocationRecommenderName + * A fully-qualified path representing organization_location_recommender resource. + * @returns {string} A string representing the organization. + */ + matchOrganizationFromOrganizationLocationRecommenderName( + organizationLocationRecommenderName: string + ) { + return this.pathTemplates.organizationLocationRecommenderPathTemplate.match( + organizationLocationRecommenderName + ).organization; + } + + /** + * Parse the location from OrganizationLocationRecommender resource. + * + * @param {string} organizationLocationRecommenderName + * A fully-qualified path representing organization_location_recommender resource. + * @returns {string} A string representing the location. + */ + matchLocationFromOrganizationLocationRecommenderName( + organizationLocationRecommenderName: string + ) { + return this.pathTemplates.organizationLocationRecommenderPathTemplate.match( + organizationLocationRecommenderName + ).location; + } + + /** + * Parse the recommender from OrganizationLocationRecommender resource. + * + * @param {string} organizationLocationRecommenderName + * A fully-qualified path representing organization_location_recommender resource. + * @returns {string} A string representing the recommender. + */ + matchRecommenderFromOrganizationLocationRecommenderName( + organizationLocationRecommenderName: string + ) { + return this.pathTemplates.organizationLocationRecommenderPathTemplate.match( + organizationLocationRecommenderName + ).recommender; + } + + /** + * Return a fully-qualified organizationLocationRecommenderRecommendation resource name string. + * + * @param {string} organization + * @param {string} location + * @param {string} recommender + * @param {string} recommendation + * @returns {string} Resource name string. + */ + organizationLocationRecommenderRecommendationPath( + organization: string, + location: string, + recommender: string, + recommendation: string + ) { + return this.pathTemplates.organizationLocationRecommenderRecommendationPathTemplate.render( + { + organization: organization, + location: location, + recommender: recommender, + recommendation: recommendation, + } + ); + } + + /** + * Parse the organization from OrganizationLocationRecommenderRecommendation resource. + * + * @param {string} organizationLocationRecommenderRecommendationName + * A fully-qualified path representing organization_location_recommender_recommendation resource. + * @returns {string} A string representing the organization. + */ + matchOrganizationFromOrganizationLocationRecommenderRecommendationName( + organizationLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.organizationLocationRecommenderRecommendationPathTemplate.match( + organizationLocationRecommenderRecommendationName + ).organization; + } + + /** + * Parse the location from OrganizationLocationRecommenderRecommendation resource. + * + * @param {string} organizationLocationRecommenderRecommendationName + * A fully-qualified path representing organization_location_recommender_recommendation resource. + * @returns {string} A string representing the location. + */ + matchLocationFromOrganizationLocationRecommenderRecommendationName( + organizationLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.organizationLocationRecommenderRecommendationPathTemplate.match( + organizationLocationRecommenderRecommendationName + ).location; + } + + /** + * Parse the recommender from OrganizationLocationRecommenderRecommendation resource. + * + * @param {string} organizationLocationRecommenderRecommendationName + * A fully-qualified path representing organization_location_recommender_recommendation resource. + * @returns {string} A string representing the recommender. + */ + matchRecommenderFromOrganizationLocationRecommenderRecommendationName( + organizationLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.organizationLocationRecommenderRecommendationPathTemplate.match( + organizationLocationRecommenderRecommendationName + ).recommender; + } + + /** + * Parse the recommendation from OrganizationLocationRecommenderRecommendation resource. + * + * @param {string} organizationLocationRecommenderRecommendationName + * A fully-qualified path representing organization_location_recommender_recommendation resource. + * @returns {string} A string representing the recommendation. + */ + matchRecommendationFromOrganizationLocationRecommenderRecommendationName( + organizationLocationRecommenderRecommendationName: string + ) { + return this.pathTemplates.organizationLocationRecommenderRecommendationPathTemplate.match( + organizationLocationRecommenderRecommendationName + ).recommendation; + } + /** * Return a fully-qualified projectLocationInsightType resource name string. * diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index fa7a5378987..4e05794bcad 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,15 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "478a06281fe0845035ec8bb48e531eae25066c66" + "sha": "76b4afdaadf4e0a1dbe82bda12e29cefe17bc79b" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "5256ab60f3d396a3d1bd393043776936b9651c5b", - "internalRef": "347703845" + "sha": "c99f76d57aaaf8597772f3576966636c5b699eff", + "internalRef": "353048801" } }, { diff --git a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts index c184a97509f..196f46f97bc 100644 --- a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts +++ b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts @@ -1828,6 +1828,674 @@ describe('v1.RecommenderClient', () => { }); }); + describe('folderLocationInsightType', () => { + const fakePath = '/rendered/path/folderLocationInsightType'; + const expectedParameters = { + folder: 'folderValue', + location: 'locationValue', + insight_type: 'insightTypeValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.folderLocationInsightTypePathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.folderLocationInsightTypePathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('folderLocationInsightTypePath', () => { + const result = client.folderLocationInsightTypePath( + 'folderValue', + 'locationValue', + 'insightTypeValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.folderLocationInsightTypePathTemplate + .render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchFolderFromFolderLocationInsightTypeName', () => { + const result = client.matchFolderFromFolderLocationInsightTypeName( + fakePath + ); + assert.strictEqual(result, 'folderValue'); + assert( + (client.pathTemplates.folderLocationInsightTypePathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromFolderLocationInsightTypeName', () => { + const result = client.matchLocationFromFolderLocationInsightTypeName( + fakePath + ); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.folderLocationInsightTypePathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchInsightTypeFromFolderLocationInsightTypeName', () => { + const result = client.matchInsightTypeFromFolderLocationInsightTypeName( + fakePath + ); + assert.strictEqual(result, 'insightTypeValue'); + assert( + (client.pathTemplates.folderLocationInsightTypePathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('folderLocationInsightTypeInsight', () => { + const fakePath = '/rendered/path/folderLocationInsightTypeInsight'; + const expectedParameters = { + folder: 'folderValue', + location: 'locationValue', + insight_type: 'insightTypeValue', + insight: 'insightValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.folderLocationInsightTypeInsightPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.folderLocationInsightTypeInsightPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('folderLocationInsightTypeInsightPath', () => { + const result = client.folderLocationInsightTypeInsightPath( + 'folderValue', + 'locationValue', + 'insightTypeValue', + 'insightValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.folderLocationInsightTypeInsightPathTemplate + .render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchFolderFromFolderLocationInsightTypeInsightName', () => { + const result = client.matchFolderFromFolderLocationInsightTypeInsightName( + fakePath + ); + assert.strictEqual(result, 'folderValue'); + assert( + (client.pathTemplates.folderLocationInsightTypeInsightPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromFolderLocationInsightTypeInsightName', () => { + const result = client.matchLocationFromFolderLocationInsightTypeInsightName( + fakePath + ); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.folderLocationInsightTypeInsightPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchInsightTypeFromFolderLocationInsightTypeInsightName', () => { + const result = client.matchInsightTypeFromFolderLocationInsightTypeInsightName( + fakePath + ); + assert.strictEqual(result, 'insightTypeValue'); + assert( + (client.pathTemplates.folderLocationInsightTypeInsightPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchInsightFromFolderLocationInsightTypeInsightName', () => { + const result = client.matchInsightFromFolderLocationInsightTypeInsightName( + fakePath + ); + assert.strictEqual(result, 'insightValue'); + assert( + (client.pathTemplates.folderLocationInsightTypeInsightPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('folderLocationRecommender', () => { + const fakePath = '/rendered/path/folderLocationRecommender'; + const expectedParameters = { + folder: 'folderValue', + location: 'locationValue', + recommender: 'recommenderValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.folderLocationRecommenderPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.folderLocationRecommenderPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('folderLocationRecommenderPath', () => { + const result = client.folderLocationRecommenderPath( + 'folderValue', + 'locationValue', + 'recommenderValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.folderLocationRecommenderPathTemplate + .render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchFolderFromFolderLocationRecommenderName', () => { + const result = client.matchFolderFromFolderLocationRecommenderName( + fakePath + ); + assert.strictEqual(result, 'folderValue'); + assert( + (client.pathTemplates.folderLocationRecommenderPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromFolderLocationRecommenderName', () => { + const result = client.matchLocationFromFolderLocationRecommenderName( + fakePath + ); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.folderLocationRecommenderPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommenderFromFolderLocationRecommenderName', () => { + const result = client.matchRecommenderFromFolderLocationRecommenderName( + fakePath + ); + assert.strictEqual(result, 'recommenderValue'); + assert( + (client.pathTemplates.folderLocationRecommenderPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('folderLocationRecommenderRecommendation', () => { + const fakePath = '/rendered/path/folderLocationRecommenderRecommendation'; + const expectedParameters = { + folder: 'folderValue', + location: 'locationValue', + recommender: 'recommenderValue', + recommendation: 'recommendationValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.folderLocationRecommenderRecommendationPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.folderLocationRecommenderRecommendationPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('folderLocationRecommenderRecommendationPath', () => { + const result = client.folderLocationRecommenderRecommendationPath( + 'folderValue', + 'locationValue', + 'recommenderValue', + 'recommendationValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates + .folderLocationRecommenderRecommendationPathTemplate + .render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchFolderFromFolderLocationRecommenderRecommendationName', () => { + const result = client.matchFolderFromFolderLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'folderValue'); + assert( + (client.pathTemplates + .folderLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromFolderLocationRecommenderRecommendationName', () => { + const result = client.matchLocationFromFolderLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates + .folderLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommenderFromFolderLocationRecommenderRecommendationName', () => { + const result = client.matchRecommenderFromFolderLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'recommenderValue'); + assert( + (client.pathTemplates + .folderLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommendationFromFolderLocationRecommenderRecommendationName', () => { + const result = client.matchRecommendationFromFolderLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'recommendationValue'); + assert( + (client.pathTemplates + .folderLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('organizationLocationInsightType', () => { + const fakePath = '/rendered/path/organizationLocationInsightType'; + const expectedParameters = { + organization: 'organizationValue', + location: 'locationValue', + insight_type: 'insightTypeValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.organizationLocationInsightTypePathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.organizationLocationInsightTypePathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('organizationLocationInsightTypePath', () => { + const result = client.organizationLocationInsightTypePath( + 'organizationValue', + 'locationValue', + 'insightTypeValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.organizationLocationInsightTypePathTemplate + .render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchOrganizationFromOrganizationLocationInsightTypeName', () => { + const result = client.matchOrganizationFromOrganizationLocationInsightTypeName( + fakePath + ); + assert.strictEqual(result, 'organizationValue'); + assert( + (client.pathTemplates.organizationLocationInsightTypePathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromOrganizationLocationInsightTypeName', () => { + const result = client.matchLocationFromOrganizationLocationInsightTypeName( + fakePath + ); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.organizationLocationInsightTypePathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchInsightTypeFromOrganizationLocationInsightTypeName', () => { + const result = client.matchInsightTypeFromOrganizationLocationInsightTypeName( + fakePath + ); + assert.strictEqual(result, 'insightTypeValue'); + assert( + (client.pathTemplates.organizationLocationInsightTypePathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('organizationLocationInsightTypeInsight', () => { + const fakePath = '/rendered/path/organizationLocationInsightTypeInsight'; + const expectedParameters = { + organization: 'organizationValue', + location: 'locationValue', + insight_type: 'insightTypeValue', + insight: 'insightValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.organizationLocationInsightTypeInsightPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.organizationLocationInsightTypeInsightPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('organizationLocationInsightTypeInsightPath', () => { + const result = client.organizationLocationInsightTypeInsightPath( + 'organizationValue', + 'locationValue', + 'insightTypeValue', + 'insightValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates + .organizationLocationInsightTypeInsightPathTemplate + .render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchOrganizationFromOrganizationLocationInsightTypeInsightName', () => { + const result = client.matchOrganizationFromOrganizationLocationInsightTypeInsightName( + fakePath + ); + assert.strictEqual(result, 'organizationValue'); + assert( + (client.pathTemplates + .organizationLocationInsightTypeInsightPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromOrganizationLocationInsightTypeInsightName', () => { + const result = client.matchLocationFromOrganizationLocationInsightTypeInsightName( + fakePath + ); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates + .organizationLocationInsightTypeInsightPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchInsightTypeFromOrganizationLocationInsightTypeInsightName', () => { + const result = client.matchInsightTypeFromOrganizationLocationInsightTypeInsightName( + fakePath + ); + assert.strictEqual(result, 'insightTypeValue'); + assert( + (client.pathTemplates + .organizationLocationInsightTypeInsightPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchInsightFromOrganizationLocationInsightTypeInsightName', () => { + const result = client.matchInsightFromOrganizationLocationInsightTypeInsightName( + fakePath + ); + assert.strictEqual(result, 'insightValue'); + assert( + (client.pathTemplates + .organizationLocationInsightTypeInsightPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('organizationLocationRecommender', () => { + const fakePath = '/rendered/path/organizationLocationRecommender'; + const expectedParameters = { + organization: 'organizationValue', + location: 'locationValue', + recommender: 'recommenderValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.organizationLocationRecommenderPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.organizationLocationRecommenderPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('organizationLocationRecommenderPath', () => { + const result = client.organizationLocationRecommenderPath( + 'organizationValue', + 'locationValue', + 'recommenderValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.organizationLocationRecommenderPathTemplate + .render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchOrganizationFromOrganizationLocationRecommenderName', () => { + const result = client.matchOrganizationFromOrganizationLocationRecommenderName( + fakePath + ); + assert.strictEqual(result, 'organizationValue'); + assert( + (client.pathTemplates.organizationLocationRecommenderPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromOrganizationLocationRecommenderName', () => { + const result = client.matchLocationFromOrganizationLocationRecommenderName( + fakePath + ); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.organizationLocationRecommenderPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommenderFromOrganizationLocationRecommenderName', () => { + const result = client.matchRecommenderFromOrganizationLocationRecommenderName( + fakePath + ); + assert.strictEqual(result, 'recommenderValue'); + assert( + (client.pathTemplates.organizationLocationRecommenderPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('organizationLocationRecommenderRecommendation', () => { + const fakePath = + '/rendered/path/organizationLocationRecommenderRecommendation'; + const expectedParameters = { + organization: 'organizationValue', + location: 'locationValue', + recommender: 'recommenderValue', + recommendation: 'recommendationValue', + }; + const client = new recommenderModule.v1.RecommenderClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.organizationLocationRecommenderRecommendationPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.organizationLocationRecommenderRecommendationPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('organizationLocationRecommenderRecommendationPath', () => { + const result = client.organizationLocationRecommenderRecommendationPath( + 'organizationValue', + 'locationValue', + 'recommenderValue', + 'recommendationValue' + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates + .organizationLocationRecommenderRecommendationPathTemplate + .render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchOrganizationFromOrganizationLocationRecommenderRecommendationName', () => { + const result = client.matchOrganizationFromOrganizationLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'organizationValue'); + assert( + (client.pathTemplates + .organizationLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchLocationFromOrganizationLocationRecommenderRecommendationName', () => { + const result = client.matchLocationFromOrganizationLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates + .organizationLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommenderFromOrganizationLocationRecommenderRecommendationName', () => { + const result = client.matchRecommenderFromOrganizationLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'recommenderValue'); + assert( + (client.pathTemplates + .organizationLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRecommendationFromOrganizationLocationRecommenderRecommendationName', () => { + const result = client.matchRecommendationFromOrganizationLocationRecommenderRecommendationName( + fakePath + ); + assert.strictEqual(result, 'recommendationValue'); + assert( + (client.pathTemplates + .organizationLocationRecommenderRecommendationPathTemplate + .match as SinonStub) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + describe('projectLocationInsightType', () => { const fakePath = '/rendered/path/projectLocationInsightType'; const expectedParameters = { From 7cafb72176f00c4efb26b429f5ba451df031aaa6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 27 Jan 2021 01:10:06 +0000 Subject: [PATCH 106/158] chore: release 4.2.0 (#148) :robot: I have created a release \*beep\* \*boop\* --- ## [4.2.0](https://www.github.com/googleapis/nodejs-recommender/compare/v4.1.0...v4.2.0) (2021-01-27) ### Features * add bindings for folder/org type resources for protos in recommendations, insights and recommender_service to enable v1 api for folder/org ([5ec8c2d](https://www.github.com/googleapis/nodejs-recommender/commit/5ec8c2daf1c5ad58e568761d372bb8de3e5c0063)) * Add support for "billingAccounts" as another parent resource name for recommendations and insights APIs. ([5ec8c2d](https://www.github.com/googleapis/nodejs-recommender/commit/5ec8c2daf1c5ad58e568761d372bb8de3e5c0063)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- packages/google-cloud-recommender/CHANGELOG.md | 8 ++++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 015d40fe825..9af65d52f2b 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [4.2.0](https://www.github.com/googleapis/nodejs-recommender/compare/v4.1.0...v4.2.0) (2021-01-27) + + +### Features + +* add bindings for folder/org type resources for protos in recommendations, insights and recommender_service to enable v1 api for folder/org ([5ec8c2d](https://www.github.com/googleapis/nodejs-recommender/commit/5ec8c2daf1c5ad58e568761d372bb8de3e5c0063)) +* Add support for "billingAccounts" as another parent resource name for recommendations and insights APIs. ([5ec8c2d](https://www.github.com/googleapis/nodejs-recommender/commit/5ec8c2daf1c5ad58e568761d372bb8de3e5c0063)) + ## [4.1.0](https://www.github.com/googleapis/nodejs-recommender/compare/v4.0.0...v4.1.0) (2021-01-12) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index c3a1f75fe26..2f7ff8023ce 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "4.1.0", + "version": "4.2.0", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index cfd85e4643f..9d49fce101d 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^4.1.0" + "@google-cloud/recommender": "^4.2.0" }, "devDependencies": { "c8": "^7.0.0", From 6c2be188dd628cadc8700ef4b2cd1810c2fa1c22 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 27 Jan 2021 08:46:14 -0800 Subject: [PATCH 107/158] refactor(nodejs): move build cop to flakybot (#149) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/6e88bfd3-7b66-4bc8-a7e5-10642f2428f5/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/57c23fa5705499a4181095ced81f0ee0933b64f6 --- packages/google-cloud-recommender/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 4e05794bcad..0b276f3f5a2 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "76b4afdaadf4e0a1dbe82bda12e29cefe17bc79b" + "sha": "0f51ff6f3a9e8c5a27262d3e285d5cf3342caea9" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "363fe305e9ce34a6cd53951c6ee5f997094b54ee" + "sha": "57c23fa5705499a4181095ced81f0ee0933b64f6" } } ], From f6bf0fe73aeecefc01ff73a5cffa268f7e02a237 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 2 Feb 2021 17:52:18 -0800 Subject: [PATCH 108/158] chore: update CODEOWNERS config (#150) --- packages/google-cloud-recommender/.repo-metadata.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/.repo-metadata.json b/packages/google-cloud-recommender/.repo-metadata.json index 72b19007162..5cda3c5ef0f 100644 --- a/packages/google-cloud-recommender/.repo-metadata.json +++ b/packages/google-cloud-recommender/.repo-metadata.json @@ -9,5 +9,6 @@ "repo": "googleapis/nodejs-recommender", "distribution_name": "@google-cloud/recommender", "api_id": "recommender.googleapis.com", - "requires_billing": true + "requires_billing": true, + "codeowner_team": "@googleapis/ml-apis" } From 2ffb892dc6cd961e112f873fa1472d1167d5bbbf Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 3 Feb 2021 18:10:13 -0800 Subject: [PATCH 109/158] build: adds UNORDERED_LIST enum (#151) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/78b836b1-707d-42b7-b42b-20337986af9f/targets - [ ] To automatically regenerate this PR, check this box. --- packages/google-cloud-recommender/protos/protos.d.ts | 3 ++- packages/google-cloud-recommender/protos/protos.js | 7 +++++++ packages/google-cloud-recommender/protos/protos.json | 3 ++- packages/google-cloud-recommender/synth.metadata | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index bc31eba437f..e96b5fc0bf5 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -3136,7 +3136,8 @@ export namespace google { REQUIRED = 2, OUTPUT_ONLY = 3, INPUT_ONLY = 4, - IMMUTABLE = 5 + IMMUTABLE = 5, + UNORDERED_LIST = 6 } } diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index ace10af9547..190fc2ad049 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -7904,6 +7904,7 @@ * @property {number} OUTPUT_ONLY=3 OUTPUT_ONLY value * @property {number} INPUT_ONLY=4 INPUT_ONLY value * @property {number} IMMUTABLE=5 IMMUTABLE value + * @property {number} UNORDERED_LIST=6 UNORDERED_LIST value */ api.FieldBehavior = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -7913,6 +7914,7 @@ values[valuesById[3] = "OUTPUT_ONLY"] = 3; values[valuesById[4] = "INPUT_ONLY"] = 4; values[valuesById[5] = "IMMUTABLE"] = 5; + values[valuesById[6] = "UNORDERED_LIST"] = 6; return values; })(); @@ -13450,6 +13452,7 @@ case 3: case 4: case 5: + case 6: break; } } @@ -13550,6 +13553,10 @@ case 5: message[".google.api.fieldBehavior"][i] = 5; break; + case "UNORDERED_LIST": + case 6: + message[".google.api.fieldBehavior"][i] = 6; + break; } } return message; diff --git a/packages/google-cloud-recommender/protos/protos.json b/packages/google-cloud-recommender/protos/protos.json index 0f2cf877e4b..42c43003818 100644 --- a/packages/google-cloud-recommender/protos/protos.json +++ b/packages/google-cloud-recommender/protos/protos.json @@ -1024,7 +1024,8 @@ "REQUIRED": 2, "OUTPUT_ONLY": 3, "INPUT_ONLY": 4, - "IMMUTABLE": 5 + "IMMUTABLE": 5, + "UNORDERED_LIST": 6 } } } diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index 0b276f3f5a2..a1641ee7d50 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "0f51ff6f3a9e8c5a27262d3e285d5cf3342caea9" + "sha": "b5865643821365626885ecef092b6048ec7eb43b" } }, { From ccf71079ab31b88f564993019ed23768d3ba576f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sun, 7 Mar 2021 09:00:39 -0800 Subject: [PATCH 110/158] build: update gapic-generator-typescript to v1.2.10. (#152) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/7de5fca1-c450-46ed-b4bd-ed0a7f991ee4/targets - [ ] To automatically regenerate this PR, check this box. PiperOrigin-RevId: 361273630 Source-Link: https://github.com/googleapis/googleapis/commit/5477122b3e8037a1dc5bc920536158edbd151dc4 --- packages/google-cloud-recommender/synth.metadata | 6 +++--- packages/google-cloud-recommender/webpack.config.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata index a1641ee7d50..cd582798329 100644 --- a/packages/google-cloud-recommender/synth.metadata +++ b/packages/google-cloud-recommender/synth.metadata @@ -4,15 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "b5865643821365626885ecef092b6048ec7eb43b" + "sha": "86504474c70d2efc6edab943dd35ccc7c44a3515" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "c99f76d57aaaf8597772f3576966636c5b699eff", - "internalRef": "353048801" + "sha": "5477122b3e8037a1dc5bc920536158edbd151dc4", + "internalRef": "361273630" } }, { diff --git a/packages/google-cloud-recommender/webpack.config.js b/packages/google-cloud-recommender/webpack.config.js index 09bd9240c8a..919839c414c 100644 --- a/packages/google-cloud-recommender/webpack.config.js +++ b/packages/google-cloud-recommender/webpack.config.js @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2021 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. From a66b6ff144f1a8f6691f2176f68d01a9249d5122 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 23 Mar 2021 17:48:24 +0100 Subject: [PATCH 111/158] chore(deps): update dependency sinon to v10 (#154) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [sinon](https://sinonjs.org/) ([source](https://togithub.com/sinonjs/sinon)) | [`^9.0.1` -> `^10.0.0`](https://renovatebot.com/diffs/npm/sinon/9.2.4/10.0.0) | [![age](https://badges.renovateapi.com/packages/npm/sinon/10.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/sinon/10.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/sinon/10.0.0/compatibility-slim/9.2.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/sinon/10.0.0/confidence-slim/9.2.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
sinonjs/sinon ### [`v10.0.0`](https://togithub.com/sinonjs/sinon/blob/master/CHANGELOG.md#​1000--2021-03-22) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v9.2.4...v10.0.0) ================== - Upgrade nise to 4.1.0 - Use [@​sinonjs/eslint-config](https://togithub.com/sinonjs/eslint-config)[@​4](https://togithub.com/4) => Adopts ES2017 => Drops support for IE 11, Legacy Edge and legacy Safari
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 2f7ff8023ce..19dc54b38c1 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -44,7 +44,7 @@ "mocha": "^8.0.0", "null-loader": "^4.0.0", "pack-n-play": "^1.0.0-2", - "sinon": "^9.0.1", + "sinon": "^10.0.0", "ts-loader": "^8.0.0", "typescript": "^3.8.3", "webpack": "^5.0.0", From 3694db43499964ab6763ae20a6f0dbf345a885eb Mon Sep 17 00:00:00 2001 From: Jeffrey Rennie Date: Thu, 1 Apr 2021 23:52:54 -0700 Subject: [PATCH 112/158] chore: migrate to owl bot (#155) * chore: migrate to owl bot * chore: run the post processor --- .../.github/.OwlBot.yaml | 25 ++++++++++++ .../.repo-metadata.json | 17 ++++---- .../google-cloud-recommender/src/index.ts | 8 ++-- .../google-cloud-recommender/synth.metadata | 37 ----------------- packages/google-cloud-recommender/synth.py | 40 ------------------- 5 files changed, 39 insertions(+), 88 deletions(-) create mode 100644 packages/google-cloud-recommender/.github/.OwlBot.yaml delete mode 100644 packages/google-cloud-recommender/synth.metadata delete mode 100644 packages/google-cloud-recommender/synth.py diff --git a/packages/google-cloud-recommender/.github/.OwlBot.yaml b/packages/google-cloud-recommender/.github/.OwlBot.yaml new file mode 100644 index 00000000000..3323fb16132 --- /dev/null +++ b/packages/google-cloud-recommender/.github/.OwlBot.yaml @@ -0,0 +1,25 @@ +# Copyright 2021 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. +docker: + image: gcr.io/repo-automation-bots/owlbot-nodejs:latest + +deep-remove-regex: + - /owl-bot-staging + +deep-copy-regex: + - source: /recommender/(.*)/.*-nodejs/(.*) + dest: /owl-bot-staging/$1/$2 + +begin-after-commit-hash: fb91803ccef5d7c695139b22788b309e2197856b + diff --git a/packages/google-cloud-recommender/.repo-metadata.json b/packages/google-cloud-recommender/.repo-metadata.json index 5cda3c5ef0f..f88a609aa84 100644 --- a/packages/google-cloud-recommender/.repo-metadata.json +++ b/packages/google-cloud-recommender/.repo-metadata.json @@ -1,14 +1,15 @@ { - "name": "recommender", - "name_pretty": "Recommender", - "product_documentation": "https://cloud.google.com/recommender/docs", - "client_documentation": "https://googleapis.dev/nodejs/recommender/latest/index.html", - "issue_tracker": "", - "release_level": "ga", "language": "nodejs", "repo": "googleapis/nodejs-recommender", - "distribution_name": "@google-cloud/recommender", + "name": "recommender", + "issue_tracker": "", + "default_version": "v1", "api_id": "recommender.googleapis.com", + "distribution_name": "@google-cloud/recommender", "requires_billing": true, - "codeowner_team": "@googleapis/ml-apis" + "product_documentation": "https://cloud.google.com/recommender/docs", + "codeowner_team": "@googleapis/ml-apis", + "name_pretty": "Recommender", + "client_documentation": "https://googleapis.dev/nodejs/recommender/latest/index.html", + "release_level": "ga" } diff --git a/packages/google-cloud-recommender/src/index.ts b/packages/google-cloud-recommender/src/index.ts index fba6e32f792..1307b47a4c6 100644 --- a/packages/google-cloud-recommender/src/index.ts +++ b/packages/google-cloud-recommender/src/index.ts @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,13 +12,15 @@ // 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 ** +// ** This file is automatically generated by synthtool. ** +// ** https://github.com/googleapis/synthtool ** // ** All changes to this file may be overwritten. ** import * as v1 from './v1'; + const RecommenderClient = v1.RecommenderClient; type RecommenderClient = v1.RecommenderClient; + export {v1, RecommenderClient}; export default {v1, RecommenderClient}; import * as protos from '../protos/protos'; diff --git a/packages/google-cloud-recommender/synth.metadata b/packages/google-cloud-recommender/synth.metadata deleted file mode 100644 index cd582798329..00000000000 --- a/packages/google-cloud-recommender/synth.metadata +++ /dev/null @@ -1,37 +0,0 @@ -{ - "sources": [ - { - "git": { - "name": ".", - "remote": "https://github.com/googleapis/nodejs-recommender.git", - "sha": "86504474c70d2efc6edab943dd35ccc7c44a3515" - } - }, - { - "git": { - "name": "googleapis", - "remote": "https://github.com/googleapis/googleapis.git", - "sha": "5477122b3e8037a1dc5bc920536158edbd151dc4", - "internalRef": "361273630" - } - }, - { - "git": { - "name": "synthtool", - "remote": "https://github.com/googleapis/synthtool.git", - "sha": "57c23fa5705499a4181095ced81f0ee0933b64f6" - } - } - ], - "destinations": [ - { - "client": { - "source": "googleapis", - "apiName": "recommender", - "apiVersion": "v1", - "language": "nodejs", - "generator": "bazel" - } - } - ] -} \ No newline at end of file diff --git a/packages/google-cloud-recommender/synth.py b/packages/google-cloud-recommender/synth.py deleted file mode 100644 index d0564ce406a..00000000000 --- a/packages/google-cloud-recommender/synth.py +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2020 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# 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. - -"""This script is used to synthesize generated parts of this library.""" - -import synthtool as s -import synthtool.gcp as gcp -import synthtool.languages.node as node -import logging - -logging.basicConfig(level=logging.DEBUG) - -AUTOSYNTH_MULTIPLE_COMMITS = True - - -# Run the gapic generator -gapic = gcp.GAPICBazel() -name = 'recommender' -versions = ['v1'] -for version in versions: - library = gapic.node_library(name, version) - s.copy(library, excludes=['package.json', 'README.md']) - -# Copy common templates -common_templates = gcp.CommonTemplates() -templates = common_templates.node_library(source_location='build/src') -s.copy(templates, excludes=[]) - -node.postprocess_gapic_library() From b64e4689b60e72b93de2448259aee688edc20430 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 14 Apr 2021 23:10:07 +0200 Subject: [PATCH 113/158] chore(deps): update dependency @types/sinon to v10 (#159) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/sinon](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`^9.0.0` -> `^10.0.0`](https://renovatebot.com/diffs/npm/@types%2fsinon/9.0.11/10.0.0) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fsinon/10.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fsinon/10.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fsinon/10.0.0/compatibility-slim/9.0.11)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fsinon/10.0.0/confidence-slim/9.0.11)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 19dc54b38c1..0f2423b61f1 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -34,7 +34,7 @@ "devDependencies": { "@types/mocha": "^8.0.0", "@types/node": "^12.0.0", - "@types/sinon": "^9.0.0", + "@types/sinon": "^10.0.0", "c8": "^7.0.0", "gts": "^2.0.0", "jsdoc": "^3.5.5", From 8fd42304d007ea7e1530ae038b40caec07b8f635 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 20 Apr 2021 00:56:43 +0200 Subject: [PATCH 114/158] chore(deps): update dependency ts-loader to v9 (#163) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ts-loader](https://togithub.com/TypeStrong/ts-loader) | [`^8.0.0` -> `^9.0.0`](https://renovatebot.com/diffs/npm/ts-loader/8.1.0/9.0.0) | [![age](https://badges.renovateapi.com/packages/npm/ts-loader/9.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/ts-loader/9.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/ts-loader/9.0.0/compatibility-slim/8.1.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/ts-loader/9.0.0/confidence-slim/8.1.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
TypeStrong/ts-loader ### [`v9.0.0`](https://togithub.com/TypeStrong/ts-loader/blob/master/CHANGELOG.md#v900) [Compare Source](https://togithub.com/TypeStrong/ts-loader/compare/v8.1.0...v9.0.0) Breaking changes: - minimum webpack version: 5 - minimum node version: 12 Changes: - [webpack 5 migration](https://togithub.com/TypeStrong/ts-loader/pull/1251) - thanks [@​johnnyreilly](https://togithub.com/johnnyreilly), [@​jonwallsten](https://togithub.com/jonwallsten), [@​sokra](https://togithub.com/sokra), [@​appzuka](https://togithub.com/appzuka), [@​alexander-akait](https://togithub.com/alexander-akait)
--- ### Configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 0f2423b61f1..cf299a152f4 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -45,7 +45,7 @@ "null-loader": "^4.0.0", "pack-n-play": "^1.0.0-2", "sinon": "^10.0.0", - "ts-loader": "^8.0.0", + "ts-loader": "^9.0.0", "typescript": "^3.8.3", "webpack": "^5.0.0", "webpack-cli": "^4.0.0", From 0297b343248a7322702c11dec63aac1be15692b2 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Thu, 6 May 2021 17:52:37 -0700 Subject: [PATCH 115/158] fix(deps): require google-gax v2.12.0 (#167) --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index cf299a152f4..f7396cb9994 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -29,7 +29,7 @@ "api-documenter": "api-documenter yaml --input-folder=temp" }, "dependencies": { - "google-gax": "^2.9.2" + "google-gax": "^2.12.0" }, "devDependencies": { "@types/mocha": "^8.0.0", From 508d75d95754e0a827d77dab0f95490156d5ea69 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 10 May 2021 17:00:46 +0000 Subject: [PATCH 116/158] chore: new owl bot post processor docker image (#169) gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:f93bb861d6f12574437bb9aee426b71eafd63b419669ff0ed029f4b7e7162e3f --- .../protos/protos.d.ts | 20 +- .../google-cloud-recommender/protos/protos.js | 40 +- .../src/v1/recommender_client.ts | 211 +-- .../test/gapic_recommender_v1.ts | 1183 +++++++++-------- 4 files changed, 788 insertions(+), 666 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index e96b5fc0bf5..eb3379ca4d3 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -966,7 +966,7 @@ export namespace google { constructor(properties?: google.cloud.recommender.v1.IValueMatcher); /** ValueMatcher matchesPattern. */ - public matchesPattern: string; + public matchesPattern?: (string|null); /** ValueMatcher matchVariant. */ public matchVariant?: "matchesPattern"; @@ -2933,19 +2933,19 @@ export namespace google { public selector: string; /** HttpRule get. */ - public get: string; + public get?: (string|null); /** HttpRule put. */ - public put: string; + public put?: (string|null); /** HttpRule post. */ - public post: string; + public post?: (string|null); /** HttpRule delete. */ - public delete: string; + public delete?: (string|null); /** HttpRule patch. */ - public patch: string; + public patch?: (string|null); /** HttpRule custom. */ public custom?: (google.api.ICustomHttpPattern|null); @@ -6488,16 +6488,16 @@ export namespace google { constructor(properties?: google.protobuf.IValue); /** Value nullValue. */ - public nullValue: (google.protobuf.NullValue|keyof typeof google.protobuf.NullValue); + public nullValue?: (google.protobuf.NullValue|keyof typeof google.protobuf.NullValue|null); /** Value numberValue. */ - public numberValue: number; + public numberValue?: (number|null); /** Value stringValue. */ - public stringValue: string; + public stringValue?: (string|null); /** Value boolValue. */ - public boolValue: boolean; + public boolValue?: (boolean|null); /** Value structValue. */ public structValue?: (google.protobuf.IStruct|null); diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index 190fc2ad049..98741bfd142 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -2641,11 +2641,11 @@ /** * ValueMatcher matchesPattern. - * @member {string} matchesPattern + * @member {string|null|undefined} matchesPattern * @memberof google.cloud.recommender.v1.ValueMatcher * @instance */ - ValueMatcher.prototype.matchesPattern = ""; + ValueMatcher.prototype.matchesPattern = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -7265,43 +7265,43 @@ /** * HttpRule get. - * @member {string} get + * @member {string|null|undefined} get * @memberof google.api.HttpRule * @instance */ - HttpRule.prototype.get = ""; + HttpRule.prototype.get = null; /** * HttpRule put. - * @member {string} put + * @member {string|null|undefined} put * @memberof google.api.HttpRule * @instance */ - HttpRule.prototype.put = ""; + HttpRule.prototype.put = null; /** * HttpRule post. - * @member {string} post + * @member {string|null|undefined} post * @memberof google.api.HttpRule * @instance */ - HttpRule.prototype.post = ""; + HttpRule.prototype.post = null; /** * HttpRule delete. - * @member {string} delete + * @member {string|null|undefined} delete * @memberof google.api.HttpRule * @instance */ - HttpRule.prototype["delete"] = ""; + HttpRule.prototype["delete"] = null; /** * HttpRule patch. - * @member {string} patch + * @member {string|null|undefined} patch * @memberof google.api.HttpRule * @instance */ - HttpRule.prototype.patch = ""; + HttpRule.prototype.patch = null; /** * HttpRule custom. @@ -17094,35 +17094,35 @@ /** * Value nullValue. - * @member {google.protobuf.NullValue} nullValue + * @member {google.protobuf.NullValue|null|undefined} nullValue * @memberof google.protobuf.Value * @instance */ - Value.prototype.nullValue = 0; + Value.prototype.nullValue = null; /** * Value numberValue. - * @member {number} numberValue + * @member {number|null|undefined} numberValue * @memberof google.protobuf.Value * @instance */ - Value.prototype.numberValue = 0; + Value.prototype.numberValue = null; /** * Value stringValue. - * @member {string} stringValue + * @member {string|null|undefined} stringValue * @memberof google.protobuf.Value * @instance */ - Value.prototype.stringValue = ""; + Value.prototype.stringValue = null; /** * Value boolValue. - * @member {boolean} boolValue + * @member {boolean|null|undefined} boolValue * @memberof google.protobuf.Value * @instance */ - Value.prototype.boolValue = false; + Value.prototype.boolValue = null; /** * Value structValue. diff --git a/packages/google-cloud-recommender/src/v1/recommender_client.ts b/packages/google-cloud-recommender/src/v1/recommender_client.ts index 37fbe518edc..93f598d8e37 100644 --- a/packages/google-cloud-recommender/src/v1/recommender_client.ts +++ b/packages/google-cloud-recommender/src/v1/recommender_client.ts @@ -169,54 +169,66 @@ export class RecommenderClient { // identifiers to uniquely identify resources within the API. // Create useful helper objects for these. this.pathTemplates = { - billingAccountLocationInsightTypePathTemplate: new this._gaxModule.PathTemplate( - 'billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}' - ), - billingAccountLocationInsightTypeInsightPathTemplate: new this._gaxModule.PathTemplate( - 'billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' - ), - billingAccountLocationRecommenderPathTemplate: new this._gaxModule.PathTemplate( - 'billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}' - ), - billingAccountLocationRecommenderRecommendationPathTemplate: new this._gaxModule.PathTemplate( - 'billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' - ), + billingAccountLocationInsightTypePathTemplate: + new this._gaxModule.PathTemplate( + 'billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}' + ), + billingAccountLocationInsightTypeInsightPathTemplate: + new this._gaxModule.PathTemplate( + 'billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' + ), + billingAccountLocationRecommenderPathTemplate: + new this._gaxModule.PathTemplate( + 'billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}' + ), + billingAccountLocationRecommenderRecommendationPathTemplate: + new this._gaxModule.PathTemplate( + 'billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' + ), folderLocationInsightTypePathTemplate: new this._gaxModule.PathTemplate( 'folders/{folder}/locations/{location}/insightTypes/{insight_type}' ), - folderLocationInsightTypeInsightPathTemplate: new this._gaxModule.PathTemplate( - 'folders/{folder}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' - ), + folderLocationInsightTypeInsightPathTemplate: + new this._gaxModule.PathTemplate( + 'folders/{folder}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' + ), folderLocationRecommenderPathTemplate: new this._gaxModule.PathTemplate( 'folders/{folder}/locations/{location}/recommenders/{recommender}' ), - folderLocationRecommenderRecommendationPathTemplate: new this._gaxModule.PathTemplate( - 'folders/{folder}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' - ), - organizationLocationInsightTypePathTemplate: new this._gaxModule.PathTemplate( - 'organizations/{organization}/locations/{location}/insightTypes/{insight_type}' - ), - organizationLocationInsightTypeInsightPathTemplate: new this._gaxModule.PathTemplate( - 'organizations/{organization}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' - ), - organizationLocationRecommenderPathTemplate: new this._gaxModule.PathTemplate( - 'organizations/{organization}/locations/{location}/recommenders/{recommender}' - ), - organizationLocationRecommenderRecommendationPathTemplate: new this._gaxModule.PathTemplate( - 'organizations/{organization}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' - ), + folderLocationRecommenderRecommendationPathTemplate: + new this._gaxModule.PathTemplate( + 'folders/{folder}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' + ), + organizationLocationInsightTypePathTemplate: + new this._gaxModule.PathTemplate( + 'organizations/{organization}/locations/{location}/insightTypes/{insight_type}' + ), + organizationLocationInsightTypeInsightPathTemplate: + new this._gaxModule.PathTemplate( + 'organizations/{organization}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' + ), + organizationLocationRecommenderPathTemplate: + new this._gaxModule.PathTemplate( + 'organizations/{organization}/locations/{location}/recommenders/{recommender}' + ), + organizationLocationRecommenderRecommendationPathTemplate: + new this._gaxModule.PathTemplate( + 'organizations/{organization}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' + ), projectLocationInsightTypePathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/insightTypes/{insight_type}' ), - projectLocationInsightTypeInsightPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' - ), + projectLocationInsightTypeInsightPathTemplate: + new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}' + ), projectLocationRecommenderPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/recommenders/{recommender}' ), - projectLocationRecommenderRecommendationPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' - ), + projectLocationRecommenderRecommendationPathTemplate: + new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}' + ), }; // Some of the methods on this service return "paged" results, @@ -292,13 +304,14 @@ export class RecommenderClient { ]; for (const methodName of recommenderStubMethods) { const callPromise = this.recommenderStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, + stub => + (...args: Array<{}>) => { + if (this._terminated) { + return Promise.reject('The client has already been closed.'); + } + const func = stub[methodName]; + return func.apply(stub, args); + }, (err: Error | null | undefined) => () => { throw err; } @@ -449,11 +462,10 @@ export class RecommenderClient { options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - name: request.name || '', - }); + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + name: request.name || '', + }); this.initialize(); return this.innerApiCalls.getInsight(request, options, callback); } @@ -557,11 +569,10 @@ export class RecommenderClient { options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - name: request.name || '', - }); + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + name: request.name || '', + }); this.initialize(); return this.innerApiCalls.markInsightAccepted(request, options, callback); } @@ -650,11 +661,10 @@ export class RecommenderClient { options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - name: request.name || '', - }); + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + name: request.name || '', + }); this.initialize(); return this.innerApiCalls.getRecommendation(request, options, callback); } @@ -764,11 +774,10 @@ export class RecommenderClient { options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - name: request.name || '', - }); + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + name: request.name || '', + }); this.initialize(); return this.innerApiCalls.markRecommendationClaimed( request, @@ -883,11 +892,10 @@ export class RecommenderClient { options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - name: request.name || '', - }); + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + name: request.name || '', + }); this.initialize(); return this.innerApiCalls.markRecommendationSucceeded( request, @@ -1002,11 +1010,10 @@ export class RecommenderClient { options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - name: request.name || '', - }); + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + name: request.name || '', + }); this.initialize(); return this.innerApiCalls.markRecommendationFailed( request, @@ -1125,11 +1132,10 @@ export class RecommenderClient { options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - parent: request.parent || '', - }); + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); this.initialize(); return this.innerApiCalls.listInsights(request, options, callback); } @@ -1182,11 +1188,10 @@ export class RecommenderClient { options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - parent: request.parent || '', - }); + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); const callSettings = new gax.CallSettings(options); this.initialize(); return this.descriptors.page.listInsights.createStream( @@ -1250,17 +1255,16 @@ export class RecommenderClient { options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - parent: request.parent || '', - }); + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); options = options || {}; const callSettings = new gax.CallSettings(options); this.initialize(); return this.descriptors.page.listInsights.asyncIterate( this.innerApiCalls['listInsights'] as GaxCall, - (request as unknown) as RequestType, + request as unknown as RequestType, callSettings ) as AsyncIterable; } @@ -1374,11 +1378,10 @@ export class RecommenderClient { options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - parent: request.parent || '', - }); + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); this.initialize(); return this.innerApiCalls.listRecommendations(request, options, callback); } @@ -1431,11 +1434,10 @@ export class RecommenderClient { options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - parent: request.parent || '', - }); + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); const callSettings = new gax.CallSettings(options); this.initialize(); return this.descriptors.page.listRecommendations.createStream( @@ -1499,17 +1501,16 @@ export class RecommenderClient { options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - parent: request.parent || '', - }); + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); options = options || {}; const callSettings = new gax.CallSettings(options); this.initialize(); return this.descriptors.page.listRecommendations.asyncIterate( this.innerApiCalls['listRecommendations'] as GaxCall, - (request as unknown) as RequestType, + request as unknown as RequestType, callSettings ) as AsyncIterable; } diff --git a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts index 196f46f97bc..83222701138 100644 --- a/packages/google-cloud-recommender/test/gapic_recommender_v1.ts +++ b/packages/google-cloud-recommender/test/gapic_recommender_v1.ts @@ -28,10 +28,9 @@ import {PassThrough} from 'stream'; import {protobuf} from 'google-gax'; function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message).toObject( - instance as protobuf.Message, - {defaults: true} - ); + 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; @@ -247,9 +246,8 @@ describe('v1.RecommenderClient', () => { const expectedResponse = generateSampleMessage( new protos.google.cloud.recommender.v1.Insight() ); - client.innerApiCalls.getInsight = stubSimpleCallWithCallback( - expectedResponse - ); + client.innerApiCalls.getInsight = + stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.getInsight( request, @@ -328,9 +326,8 @@ describe('v1.RecommenderClient', () => { const expectedResponse = generateSampleMessage( new protos.google.cloud.recommender.v1.Insight() ); - client.innerApiCalls.markInsightAccepted = stubSimpleCall( - expectedResponse - ); + client.innerApiCalls.markInsightAccepted = + stubSimpleCall(expectedResponse); const [response] = await client.markInsightAccepted(request); assert.deepStrictEqual(response, expectedResponse); assert( @@ -361,9 +358,8 @@ describe('v1.RecommenderClient', () => { const expectedResponse = generateSampleMessage( new protos.google.cloud.recommender.v1.Insight() ); - client.innerApiCalls.markInsightAccepted = stubSimpleCallWithCallback( - expectedResponse - ); + client.innerApiCalls.markInsightAccepted = + stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.markInsightAccepted( request, @@ -473,9 +469,8 @@ describe('v1.RecommenderClient', () => { const expectedResponse = generateSampleMessage( new protos.google.cloud.recommender.v1.Recommendation() ); - client.innerApiCalls.getRecommendation = stubSimpleCallWithCallback( - expectedResponse - ); + client.innerApiCalls.getRecommendation = + stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.getRecommendation( request, @@ -554,9 +549,8 @@ describe('v1.RecommenderClient', () => { const expectedResponse = generateSampleMessage( new protos.google.cloud.recommender.v1.Recommendation() ); - client.innerApiCalls.markRecommendationClaimed = stubSimpleCall( - expectedResponse - ); + client.innerApiCalls.markRecommendationClaimed = + stubSimpleCall(expectedResponse); const [response] = await client.markRecommendationClaimed(request); assert.deepStrictEqual(response, expectedResponse); assert( @@ -587,9 +581,8 @@ describe('v1.RecommenderClient', () => { const expectedResponse = generateSampleMessage( new protos.google.cloud.recommender.v1.Recommendation() ); - client.innerApiCalls.markRecommendationClaimed = stubSimpleCallWithCallback( - expectedResponse - ); + client.innerApiCalls.markRecommendationClaimed = + stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.markRecommendationClaimed( request, @@ -671,9 +664,8 @@ describe('v1.RecommenderClient', () => { const expectedResponse = generateSampleMessage( new protos.google.cloud.recommender.v1.Recommendation() ); - client.innerApiCalls.markRecommendationSucceeded = stubSimpleCall( - expectedResponse - ); + client.innerApiCalls.markRecommendationSucceeded = + stubSimpleCall(expectedResponse); const [response] = await client.markRecommendationSucceeded(request); assert.deepStrictEqual(response, expectedResponse); assert( @@ -704,9 +696,8 @@ describe('v1.RecommenderClient', () => { const expectedResponse = generateSampleMessage( new protos.google.cloud.recommender.v1.Recommendation() ); - client.innerApiCalls.markRecommendationSucceeded = stubSimpleCallWithCallback( - expectedResponse - ); + client.innerApiCalls.markRecommendationSucceeded = + stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.markRecommendationSucceeded( request, @@ -788,9 +779,8 @@ describe('v1.RecommenderClient', () => { const expectedResponse = generateSampleMessage( new protos.google.cloud.recommender.v1.Recommendation() ); - client.innerApiCalls.markRecommendationFailed = stubSimpleCall( - expectedResponse - ); + client.innerApiCalls.markRecommendationFailed = + stubSimpleCall(expectedResponse); const [response] = await client.markRecommendationFailed(request); assert.deepStrictEqual(response, expectedResponse); assert( @@ -821,9 +811,8 @@ describe('v1.RecommenderClient', () => { const expectedResponse = generateSampleMessage( new protos.google.cloud.recommender.v1.Recommendation() ); - client.innerApiCalls.markRecommendationFailed = stubSimpleCallWithCallback( - expectedResponse - ); + client.innerApiCalls.markRecommendationFailed = + stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.markRecommendationFailed( request, @@ -940,9 +929,8 @@ describe('v1.RecommenderClient', () => { generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), ]; - client.innerApiCalls.listInsights = stubSimpleCallWithCallback( - expectedResponse - ); + client.innerApiCalls.listInsights = + stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.listInsights( request, @@ -1014,9 +1002,8 @@ describe('v1.RecommenderClient', () => { generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), ]; - client.descriptors.page.listInsights.createStream = stubPageStreamingCall( - expectedResponse - ); + client.descriptors.page.listInsights.createStream = + stubPageStreamingCall(expectedResponse); const stream = client.listInsightsStream(request); const promise = new Promise((resolve, reject) => { const responses: protos.google.cloud.recommender.v1.Insight[] = []; @@ -1041,10 +1028,9 @@ describe('v1.RecommenderClient', () => { .calledWith(client.innerApiCalls.listInsights, request) ); assert.strictEqual( - (client.descriptors.page.listInsights - .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ - 'x-goog-request-params' - ], + ( + client.descriptors.page.listInsights.createStream as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], expectedHeaderRequestParams ); }); @@ -1088,10 +1074,9 @@ describe('v1.RecommenderClient', () => { .calledWith(client.innerApiCalls.listInsights, request) ); assert.strictEqual( - (client.descriptors.page.listInsights - .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ - 'x-goog-request-params' - ], + ( + client.descriptors.page.listInsights.createStream as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], expectedHeaderRequestParams ); }); @@ -1112,9 +1097,8 @@ describe('v1.RecommenderClient', () => { generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), generateSampleMessage(new protos.google.cloud.recommender.v1.Insight()), ]; - client.descriptors.page.listInsights.asyncIterate = stubAsyncIterationCall( - expectedResponse - ); + client.descriptors.page.listInsights.asyncIterate = + stubAsyncIterationCall(expectedResponse); const responses: protos.google.cloud.recommender.v1.IInsight[] = []; const iterable = client.listInsightsAsync(request); for await (const resource of iterable) { @@ -1122,15 +1106,15 @@ describe('v1.RecommenderClient', () => { } assert.deepStrictEqual(responses, expectedResponse); assert.deepStrictEqual( - (client.descriptors.page.listInsights - .asyncIterate as SinonStub).getCall(0).args[1], + ( + client.descriptors.page.listInsights.asyncIterate as SinonStub + ).getCall(0).args[1], request ); assert.strictEqual( - (client.descriptors.page.listInsights - .asyncIterate as SinonStub).getCall(0).args[2].otherArgs.headers[ - 'x-goog-request-params' - ], + ( + client.descriptors.page.listInsights.asyncIterate as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], expectedHeaderRequestParams ); }); @@ -1147,10 +1131,8 @@ describe('v1.RecommenderClient', () => { request.parent = ''; const expectedHeaderRequestParams = 'parent='; const expectedError = new Error('expected'); - client.descriptors.page.listInsights.asyncIterate = stubAsyncIterationCall( - undefined, - expectedError - ); + client.descriptors.page.listInsights.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); const iterable = client.listInsightsAsync(request); await assert.rejects(async () => { const responses: protos.google.cloud.recommender.v1.IInsight[] = []; @@ -1159,15 +1141,15 @@ describe('v1.RecommenderClient', () => { } }); assert.deepStrictEqual( - (client.descriptors.page.listInsights - .asyncIterate as SinonStub).getCall(0).args[1], + ( + client.descriptors.page.listInsights.asyncIterate as SinonStub + ).getCall(0).args[1], request ); assert.strictEqual( - (client.descriptors.page.listInsights - .asyncIterate as SinonStub).getCall(0).args[2].otherArgs.headers[ - 'x-goog-request-params' - ], + ( + client.descriptors.page.listInsights.asyncIterate as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], expectedHeaderRequestParams ); }); @@ -1203,9 +1185,8 @@ describe('v1.RecommenderClient', () => { new protos.google.cloud.recommender.v1.Recommendation() ), ]; - client.innerApiCalls.listRecommendations = stubSimpleCall( - expectedResponse - ); + client.innerApiCalls.listRecommendations = + stubSimpleCall(expectedResponse); const [response] = await client.listRecommendations(request); assert.deepStrictEqual(response, expectedResponse); assert( @@ -1244,9 +1225,8 @@ describe('v1.RecommenderClient', () => { new protos.google.cloud.recommender.v1.Recommendation() ), ]; - client.innerApiCalls.listRecommendations = stubSimpleCallWithCallback( - expectedResponse - ); + client.innerApiCalls.listRecommendations = + stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { client.listRecommendations( request, @@ -1324,12 +1304,12 @@ describe('v1.RecommenderClient', () => { new protos.google.cloud.recommender.v1.Recommendation() ), ]; - client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall( - expectedResponse - ); + client.descriptors.page.listRecommendations.createStream = + stubPageStreamingCall(expectedResponse); const stream = client.listRecommendationsStream(request); const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; + const responses: protos.google.cloud.recommender.v1.Recommendation[] = + []; stream.on( 'data', (response: protos.google.cloud.recommender.v1.Recommendation) => { @@ -1351,10 +1331,9 @@ describe('v1.RecommenderClient', () => { .calledWith(client.innerApiCalls.listRecommendations, request) ); assert.strictEqual( - (client.descriptors.page.listRecommendations - .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ - 'x-goog-request-params' - ], + ( + client.descriptors.page.listRecommendations.createStream as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], expectedHeaderRequestParams ); }); @@ -1371,13 +1350,12 @@ describe('v1.RecommenderClient', () => { request.parent = ''; const expectedHeaderRequestParams = 'parent='; const expectedError = new Error('expected'); - client.descriptors.page.listRecommendations.createStream = stubPageStreamingCall( - undefined, - expectedError - ); + client.descriptors.page.listRecommendations.createStream = + stubPageStreamingCall(undefined, expectedError); const stream = client.listRecommendationsStream(request); const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.recommender.v1.Recommendation[] = []; + const responses: protos.google.cloud.recommender.v1.Recommendation[] = + []; stream.on( 'data', (response: protos.google.cloud.recommender.v1.Recommendation) => { @@ -1398,10 +1376,9 @@ describe('v1.RecommenderClient', () => { .calledWith(client.innerApiCalls.listRecommendations, request) ); assert.strictEqual( - (client.descriptors.page.listRecommendations - .createStream as SinonStub).getCall(0).args[2].otherArgs.headers[ - 'x-goog-request-params' - ], + ( + client.descriptors.page.listRecommendations.createStream as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], expectedHeaderRequestParams ); }); @@ -1428,25 +1405,25 @@ describe('v1.RecommenderClient', () => { new protos.google.cloud.recommender.v1.Recommendation() ), ]; - client.descriptors.page.listRecommendations.asyncIterate = stubAsyncIterationCall( - expectedResponse - ); - const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; + client.descriptors.page.listRecommendations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.recommender.v1.IRecommendation[] = + []; const iterable = client.listRecommendationsAsync(request); for await (const resource of iterable) { responses.push(resource!); } assert.deepStrictEqual(responses, expectedResponse); assert.deepStrictEqual( - (client.descriptors.page.listRecommendations - .asyncIterate as SinonStub).getCall(0).args[1], + ( + client.descriptors.page.listRecommendations.asyncIterate as SinonStub + ).getCall(0).args[1], request ); assert.strictEqual( - (client.descriptors.page.listRecommendations - .asyncIterate as SinonStub).getCall(0).args[2].otherArgs.headers[ - 'x-goog-request-params' - ], + ( + client.descriptors.page.listRecommendations.asyncIterate as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], expectedHeaderRequestParams ); }); @@ -1463,27 +1440,26 @@ describe('v1.RecommenderClient', () => { request.parent = ''; const expectedHeaderRequestParams = 'parent='; const expectedError = new Error('expected'); - client.descriptors.page.listRecommendations.asyncIterate = stubAsyncIterationCall( - undefined, - expectedError - ); + client.descriptors.page.listRecommendations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); const iterable = client.listRecommendationsAsync(request); await assert.rejects(async () => { - const responses: protos.google.cloud.recommender.v1.IRecommendation[] = []; + const responses: protos.google.cloud.recommender.v1.IRecommendation[] = + []; for await (const resource of iterable) { responses.push(resource!); } }); assert.deepStrictEqual( - (client.descriptors.page.listRecommendations - .asyncIterate as SinonStub).getCall(0).args[1], + ( + client.descriptors.page.listRecommendations.asyncIterate as SinonStub + ).getCall(0).args[1], request ); assert.strictEqual( - (client.descriptors.page.listRecommendations - .asyncIterate as SinonStub).getCall(0).args[2].otherArgs.headers[ - 'x-goog-request-params' - ], + ( + client.descriptors.page.listRecommendations.asyncIterate as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], expectedHeaderRequestParams ); }); @@ -1502,12 +1478,10 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.billingAccountLocationInsightTypePathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.billingAccountLocationInsightTypePathTemplate.match = sinon - .stub() - .returns(expectedParameters); + client.pathTemplates.billingAccountLocationInsightTypePathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.billingAccountLocationInsightTypePathTemplate.match = + sinon.stub().returns(expectedParameters); it('billingAccountLocationInsightTypePath', () => { const result = client.billingAccountLocationInsightTypePath( @@ -1517,47 +1491,58 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.billingAccountLocationInsightTypePathTemplate - .render as SinonStub) + ( + client.pathTemplates.billingAccountLocationInsightTypePathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchBillingAccountFromBillingAccountLocationInsightTypeName', () => { - const result = client.matchBillingAccountFromBillingAccountLocationInsightTypeName( - fakePath - ); + const result = + client.matchBillingAccountFromBillingAccountLocationInsightTypeName( + fakePath + ); assert.strictEqual(result, 'billingAccountValue'); assert( - (client.pathTemplates.billingAccountLocationInsightTypePathTemplate - .match as SinonStub) + ( + client.pathTemplates.billingAccountLocationInsightTypePathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromBillingAccountLocationInsightTypeName', () => { - const result = client.matchLocationFromBillingAccountLocationInsightTypeName( - fakePath - ); + const result = + client.matchLocationFromBillingAccountLocationInsightTypeName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.billingAccountLocationInsightTypePathTemplate - .match as SinonStub) + ( + client.pathTemplates.billingAccountLocationInsightTypePathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchInsightTypeFromBillingAccountLocationInsightTypeName', () => { - const result = client.matchInsightTypeFromBillingAccountLocationInsightTypeName( - fakePath - ); + const result = + client.matchInsightTypeFromBillingAccountLocationInsightTypeName( + fakePath + ); assert.strictEqual(result, 'insightTypeValue'); assert( - (client.pathTemplates.billingAccountLocationInsightTypePathTemplate - .match as SinonStub) + ( + client.pathTemplates.billingAccountLocationInsightTypePathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -1578,12 +1563,10 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.billingAccountLocationInsightTypeInsightPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.billingAccountLocationInsightTypeInsightPathTemplate.match = sinon - .stub() - .returns(expectedParameters); + client.pathTemplates.billingAccountLocationInsightTypeInsightPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.billingAccountLocationInsightTypeInsightPathTemplate.match = + sinon.stub().returns(expectedParameters); it('billingAccountLocationInsightTypeInsightPath', () => { const result = client.billingAccountLocationInsightTypeInsightPath( @@ -1594,65 +1577,79 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates - .billingAccountLocationInsightTypeInsightPathTemplate - .render as SinonStub) + ( + client.pathTemplates + .billingAccountLocationInsightTypeInsightPathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchBillingAccountFromBillingAccountLocationInsightTypeInsightName', () => { - const result = client.matchBillingAccountFromBillingAccountLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchBillingAccountFromBillingAccountLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'billingAccountValue'); assert( - (client.pathTemplates - .billingAccountLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .billingAccountLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromBillingAccountLocationInsightTypeInsightName', () => { - const result = client.matchLocationFromBillingAccountLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchLocationFromBillingAccountLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates - .billingAccountLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .billingAccountLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchInsightTypeFromBillingAccountLocationInsightTypeInsightName', () => { - const result = client.matchInsightTypeFromBillingAccountLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchInsightTypeFromBillingAccountLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'insightTypeValue'); assert( - (client.pathTemplates - .billingAccountLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .billingAccountLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchInsightFromBillingAccountLocationInsightTypeInsightName', () => { - const result = client.matchInsightFromBillingAccountLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchInsightFromBillingAccountLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'insightValue'); assert( - (client.pathTemplates - .billingAccountLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .billingAccountLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -1671,12 +1668,10 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.billingAccountLocationRecommenderPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.billingAccountLocationRecommenderPathTemplate.match = sinon - .stub() - .returns(expectedParameters); + client.pathTemplates.billingAccountLocationRecommenderPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.billingAccountLocationRecommenderPathTemplate.match = + sinon.stub().returns(expectedParameters); it('billingAccountLocationRecommenderPath', () => { const result = client.billingAccountLocationRecommenderPath( @@ -1686,47 +1681,58 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.billingAccountLocationRecommenderPathTemplate - .render as SinonStub) + ( + client.pathTemplates.billingAccountLocationRecommenderPathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchBillingAccountFromBillingAccountLocationRecommenderName', () => { - const result = client.matchBillingAccountFromBillingAccountLocationRecommenderName( - fakePath - ); + const result = + client.matchBillingAccountFromBillingAccountLocationRecommenderName( + fakePath + ); assert.strictEqual(result, 'billingAccountValue'); assert( - (client.pathTemplates.billingAccountLocationRecommenderPathTemplate - .match as SinonStub) + ( + client.pathTemplates.billingAccountLocationRecommenderPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromBillingAccountLocationRecommenderName', () => { - const result = client.matchLocationFromBillingAccountLocationRecommenderName( - fakePath - ); + const result = + client.matchLocationFromBillingAccountLocationRecommenderName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.billingAccountLocationRecommenderPathTemplate - .match as SinonStub) + ( + client.pathTemplates.billingAccountLocationRecommenderPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchRecommenderFromBillingAccountLocationRecommenderName', () => { - const result = client.matchRecommenderFromBillingAccountLocationRecommenderName( - fakePath - ); + const result = + client.matchRecommenderFromBillingAccountLocationRecommenderName( + fakePath + ); assert.strictEqual(result, 'recommenderValue'); assert( - (client.pathTemplates.billingAccountLocationRecommenderPathTemplate - .match as SinonStub) + ( + client.pathTemplates.billingAccountLocationRecommenderPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -1747,81 +1753,94 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.billingAccountLocationRecommenderRecommendationPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.billingAccountLocationRecommenderRecommendationPathTemplate.match = sinon - .stub() - .returns(expectedParameters); + client.pathTemplates.billingAccountLocationRecommenderRecommendationPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.billingAccountLocationRecommenderRecommendationPathTemplate.match = + sinon.stub().returns(expectedParameters); it('billingAccountLocationRecommenderRecommendationPath', () => { - const result = client.billingAccountLocationRecommenderRecommendationPath( - 'billingAccountValue', - 'locationValue', - 'recommenderValue', - 'recommendationValue' - ); + const result = + client.billingAccountLocationRecommenderRecommendationPath( + 'billingAccountValue', + 'locationValue', + 'recommenderValue', + 'recommendationValue' + ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates - .billingAccountLocationRecommenderRecommendationPathTemplate - .render as SinonStub) + ( + client.pathTemplates + .billingAccountLocationRecommenderRecommendationPathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchBillingAccountFromBillingAccountLocationRecommenderRecommendationName', () => { - const result = client.matchBillingAccountFromBillingAccountLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchBillingAccountFromBillingAccountLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'billingAccountValue'); assert( - (client.pathTemplates - .billingAccountLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .billingAccountLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromBillingAccountLocationRecommenderRecommendationName', () => { - const result = client.matchLocationFromBillingAccountLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchLocationFromBillingAccountLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates - .billingAccountLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .billingAccountLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchRecommenderFromBillingAccountLocationRecommenderRecommendationName', () => { - const result = client.matchRecommenderFromBillingAccountLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchRecommenderFromBillingAccountLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'recommenderValue'); assert( - (client.pathTemplates - .billingAccountLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .billingAccountLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchRecommendationFromBillingAccountLocationRecommenderRecommendationName', () => { - const result = client.matchRecommendationFromBillingAccountLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchRecommendationFromBillingAccountLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'recommendationValue'); assert( - (client.pathTemplates - .billingAccountLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .billingAccountLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -1855,47 +1874,52 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.folderLocationInsightTypePathTemplate - .render as SinonStub) + ( + client.pathTemplates.folderLocationInsightTypePathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchFolderFromFolderLocationInsightTypeName', () => { - const result = client.matchFolderFromFolderLocationInsightTypeName( - fakePath - ); + const result = + client.matchFolderFromFolderLocationInsightTypeName(fakePath); assert.strictEqual(result, 'folderValue'); assert( - (client.pathTemplates.folderLocationInsightTypePathTemplate - .match as SinonStub) + ( + client.pathTemplates.folderLocationInsightTypePathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromFolderLocationInsightTypeName', () => { - const result = client.matchLocationFromFolderLocationInsightTypeName( - fakePath - ); + const result = + client.matchLocationFromFolderLocationInsightTypeName(fakePath); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.folderLocationInsightTypePathTemplate - .match as SinonStub) + ( + client.pathTemplates.folderLocationInsightTypePathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchInsightTypeFromFolderLocationInsightTypeName', () => { - const result = client.matchInsightTypeFromFolderLocationInsightTypeName( - fakePath - ); + const result = + client.matchInsightTypeFromFolderLocationInsightTypeName(fakePath); assert.strictEqual(result, 'insightTypeValue'); assert( - (client.pathTemplates.folderLocationInsightTypePathTemplate - .match as SinonStub) + ( + client.pathTemplates.folderLocationInsightTypePathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -1915,12 +1939,10 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.folderLocationInsightTypeInsightPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.folderLocationInsightTypeInsightPathTemplate.match = sinon - .stub() - .returns(expectedParameters); + client.pathTemplates.folderLocationInsightTypeInsightPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.folderLocationInsightTypeInsightPathTemplate.match = + sinon.stub().returns(expectedParameters); it('folderLocationInsightTypeInsightPath', () => { const result = client.folderLocationInsightTypeInsightPath( @@ -1931,60 +1953,70 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.folderLocationInsightTypeInsightPathTemplate - .render as SinonStub) + ( + client.pathTemplates.folderLocationInsightTypeInsightPathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchFolderFromFolderLocationInsightTypeInsightName', () => { - const result = client.matchFolderFromFolderLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchFolderFromFolderLocationInsightTypeInsightName(fakePath); assert.strictEqual(result, 'folderValue'); assert( - (client.pathTemplates.folderLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates.folderLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromFolderLocationInsightTypeInsightName', () => { - const result = client.matchLocationFromFolderLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchLocationFromFolderLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.folderLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates.folderLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchInsightTypeFromFolderLocationInsightTypeInsightName', () => { - const result = client.matchInsightTypeFromFolderLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchInsightTypeFromFolderLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'insightTypeValue'); assert( - (client.pathTemplates.folderLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates.folderLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchInsightFromFolderLocationInsightTypeInsightName', () => { - const result = client.matchInsightFromFolderLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchInsightFromFolderLocationInsightTypeInsightName(fakePath); assert.strictEqual(result, 'insightValue'); assert( - (client.pathTemplates.folderLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates.folderLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -2018,47 +2050,52 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.folderLocationRecommenderPathTemplate - .render as SinonStub) + ( + client.pathTemplates.folderLocationRecommenderPathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchFolderFromFolderLocationRecommenderName', () => { - const result = client.matchFolderFromFolderLocationRecommenderName( - fakePath - ); + const result = + client.matchFolderFromFolderLocationRecommenderName(fakePath); assert.strictEqual(result, 'folderValue'); assert( - (client.pathTemplates.folderLocationRecommenderPathTemplate - .match as SinonStub) + ( + client.pathTemplates.folderLocationRecommenderPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromFolderLocationRecommenderName', () => { - const result = client.matchLocationFromFolderLocationRecommenderName( - fakePath - ); + const result = + client.matchLocationFromFolderLocationRecommenderName(fakePath); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.folderLocationRecommenderPathTemplate - .match as SinonStub) + ( + client.pathTemplates.folderLocationRecommenderPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchRecommenderFromFolderLocationRecommenderName', () => { - const result = client.matchRecommenderFromFolderLocationRecommenderName( - fakePath - ); + const result = + client.matchRecommenderFromFolderLocationRecommenderName(fakePath); assert.strictEqual(result, 'recommenderValue'); assert( - (client.pathTemplates.folderLocationRecommenderPathTemplate - .match as SinonStub) + ( + client.pathTemplates.folderLocationRecommenderPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -2078,12 +2115,10 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.folderLocationRecommenderRecommendationPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.folderLocationRecommenderRecommendationPathTemplate.match = sinon - .stub() - .returns(expectedParameters); + client.pathTemplates.folderLocationRecommenderRecommendationPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.folderLocationRecommenderRecommendationPathTemplate.match = + sinon.stub().returns(expectedParameters); it('folderLocationRecommenderRecommendationPath', () => { const result = client.folderLocationRecommenderRecommendationPath( @@ -2094,65 +2129,79 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates - .folderLocationRecommenderRecommendationPathTemplate - .render as SinonStub) + ( + client.pathTemplates + .folderLocationRecommenderRecommendationPathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchFolderFromFolderLocationRecommenderRecommendationName', () => { - const result = client.matchFolderFromFolderLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchFolderFromFolderLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'folderValue'); assert( - (client.pathTemplates - .folderLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .folderLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromFolderLocationRecommenderRecommendationName', () => { - const result = client.matchLocationFromFolderLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchLocationFromFolderLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates - .folderLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .folderLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchRecommenderFromFolderLocationRecommenderRecommendationName', () => { - const result = client.matchRecommenderFromFolderLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchRecommenderFromFolderLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'recommenderValue'); assert( - (client.pathTemplates - .folderLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .folderLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchRecommendationFromFolderLocationRecommenderRecommendationName', () => { - const result = client.matchRecommendationFromFolderLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchRecommendationFromFolderLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'recommendationValue'); assert( - (client.pathTemplates - .folderLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .folderLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -2171,12 +2220,10 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.organizationLocationInsightTypePathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.organizationLocationInsightTypePathTemplate.match = sinon - .stub() - .returns(expectedParameters); + client.pathTemplates.organizationLocationInsightTypePathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.organizationLocationInsightTypePathTemplate.match = + sinon.stub().returns(expectedParameters); it('organizationLocationInsightTypePath', () => { const result = client.organizationLocationInsightTypePath( @@ -2186,47 +2233,56 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.organizationLocationInsightTypePathTemplate - .render as SinonStub) + ( + client.pathTemplates.organizationLocationInsightTypePathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchOrganizationFromOrganizationLocationInsightTypeName', () => { - const result = client.matchOrganizationFromOrganizationLocationInsightTypeName( - fakePath - ); + const result = + client.matchOrganizationFromOrganizationLocationInsightTypeName( + fakePath + ); assert.strictEqual(result, 'organizationValue'); assert( - (client.pathTemplates.organizationLocationInsightTypePathTemplate - .match as SinonStub) + ( + client.pathTemplates.organizationLocationInsightTypePathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromOrganizationLocationInsightTypeName', () => { - const result = client.matchLocationFromOrganizationLocationInsightTypeName( - fakePath - ); + const result = + client.matchLocationFromOrganizationLocationInsightTypeName(fakePath); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.organizationLocationInsightTypePathTemplate - .match as SinonStub) + ( + client.pathTemplates.organizationLocationInsightTypePathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchInsightTypeFromOrganizationLocationInsightTypeName', () => { - const result = client.matchInsightTypeFromOrganizationLocationInsightTypeName( - fakePath - ); + const result = + client.matchInsightTypeFromOrganizationLocationInsightTypeName( + fakePath + ); assert.strictEqual(result, 'insightTypeValue'); assert( - (client.pathTemplates.organizationLocationInsightTypePathTemplate - .match as SinonStub) + ( + client.pathTemplates.organizationLocationInsightTypePathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -2246,12 +2302,10 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.organizationLocationInsightTypeInsightPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.organizationLocationInsightTypeInsightPathTemplate.match = sinon - .stub() - .returns(expectedParameters); + client.pathTemplates.organizationLocationInsightTypeInsightPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.organizationLocationInsightTypeInsightPathTemplate.match = + sinon.stub().returns(expectedParameters); it('organizationLocationInsightTypeInsightPath', () => { const result = client.organizationLocationInsightTypeInsightPath( @@ -2262,65 +2316,79 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates - .organizationLocationInsightTypeInsightPathTemplate - .render as SinonStub) + ( + client.pathTemplates + .organizationLocationInsightTypeInsightPathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchOrganizationFromOrganizationLocationInsightTypeInsightName', () => { - const result = client.matchOrganizationFromOrganizationLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchOrganizationFromOrganizationLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'organizationValue'); assert( - (client.pathTemplates - .organizationLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .organizationLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromOrganizationLocationInsightTypeInsightName', () => { - const result = client.matchLocationFromOrganizationLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchLocationFromOrganizationLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates - .organizationLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .organizationLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchInsightTypeFromOrganizationLocationInsightTypeInsightName', () => { - const result = client.matchInsightTypeFromOrganizationLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchInsightTypeFromOrganizationLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'insightTypeValue'); assert( - (client.pathTemplates - .organizationLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .organizationLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchInsightFromOrganizationLocationInsightTypeInsightName', () => { - const result = client.matchInsightFromOrganizationLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchInsightFromOrganizationLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'insightValue'); assert( - (client.pathTemplates - .organizationLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .organizationLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -2339,12 +2407,10 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.organizationLocationRecommenderPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.organizationLocationRecommenderPathTemplate.match = sinon - .stub() - .returns(expectedParameters); + client.pathTemplates.organizationLocationRecommenderPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.organizationLocationRecommenderPathTemplate.match = + sinon.stub().returns(expectedParameters); it('organizationLocationRecommenderPath', () => { const result = client.organizationLocationRecommenderPath( @@ -2354,47 +2420,56 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.organizationLocationRecommenderPathTemplate - .render as SinonStub) + ( + client.pathTemplates.organizationLocationRecommenderPathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchOrganizationFromOrganizationLocationRecommenderName', () => { - const result = client.matchOrganizationFromOrganizationLocationRecommenderName( - fakePath - ); + const result = + client.matchOrganizationFromOrganizationLocationRecommenderName( + fakePath + ); assert.strictEqual(result, 'organizationValue'); assert( - (client.pathTemplates.organizationLocationRecommenderPathTemplate - .match as SinonStub) + ( + client.pathTemplates.organizationLocationRecommenderPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromOrganizationLocationRecommenderName', () => { - const result = client.matchLocationFromOrganizationLocationRecommenderName( - fakePath - ); + const result = + client.matchLocationFromOrganizationLocationRecommenderName(fakePath); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.organizationLocationRecommenderPathTemplate - .match as SinonStub) + ( + client.pathTemplates.organizationLocationRecommenderPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchRecommenderFromOrganizationLocationRecommenderName', () => { - const result = client.matchRecommenderFromOrganizationLocationRecommenderName( - fakePath - ); + const result = + client.matchRecommenderFromOrganizationLocationRecommenderName( + fakePath + ); assert.strictEqual(result, 'recommenderValue'); assert( - (client.pathTemplates.organizationLocationRecommenderPathTemplate - .match as SinonStub) + ( + client.pathTemplates.organizationLocationRecommenderPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -2415,12 +2490,10 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.organizationLocationRecommenderRecommendationPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.organizationLocationRecommenderRecommendationPathTemplate.match = sinon - .stub() - .returns(expectedParameters); + client.pathTemplates.organizationLocationRecommenderRecommendationPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.organizationLocationRecommenderRecommendationPathTemplate.match = + sinon.stub().returns(expectedParameters); it('organizationLocationRecommenderRecommendationPath', () => { const result = client.organizationLocationRecommenderRecommendationPath( @@ -2431,65 +2504,79 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates - .organizationLocationRecommenderRecommendationPathTemplate - .render as SinonStub) + ( + client.pathTemplates + .organizationLocationRecommenderRecommendationPathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchOrganizationFromOrganizationLocationRecommenderRecommendationName', () => { - const result = client.matchOrganizationFromOrganizationLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchOrganizationFromOrganizationLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'organizationValue'); assert( - (client.pathTemplates - .organizationLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .organizationLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromOrganizationLocationRecommenderRecommendationName', () => { - const result = client.matchLocationFromOrganizationLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchLocationFromOrganizationLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates - .organizationLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .organizationLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchRecommenderFromOrganizationLocationRecommenderRecommendationName', () => { - const result = client.matchRecommenderFromOrganizationLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchRecommenderFromOrganizationLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'recommenderValue'); assert( - (client.pathTemplates - .organizationLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .organizationLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchRecommendationFromOrganizationLocationRecommenderRecommendationName', () => { - const result = client.matchRecommendationFromOrganizationLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchRecommendationFromOrganizationLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'recommendationValue'); assert( - (client.pathTemplates - .organizationLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .organizationLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -2523,47 +2610,52 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.projectLocationInsightTypePathTemplate - .render as SinonStub) + ( + client.pathTemplates.projectLocationInsightTypePathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchProjectFromProjectLocationInsightTypeName', () => { - const result = client.matchProjectFromProjectLocationInsightTypeName( - fakePath - ); + const result = + client.matchProjectFromProjectLocationInsightTypeName(fakePath); assert.strictEqual(result, 'projectValue'); assert( - (client.pathTemplates.projectLocationInsightTypePathTemplate - .match as SinonStub) + ( + client.pathTemplates.projectLocationInsightTypePathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromProjectLocationInsightTypeName', () => { - const result = client.matchLocationFromProjectLocationInsightTypeName( - fakePath - ); + const result = + client.matchLocationFromProjectLocationInsightTypeName(fakePath); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.projectLocationInsightTypePathTemplate - .match as SinonStub) + ( + client.pathTemplates.projectLocationInsightTypePathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchInsightTypeFromProjectLocationInsightTypeName', () => { - const result = client.matchInsightTypeFromProjectLocationInsightTypeName( - fakePath - ); + const result = + client.matchInsightTypeFromProjectLocationInsightTypeName(fakePath); assert.strictEqual(result, 'insightTypeValue'); assert( - (client.pathTemplates.projectLocationInsightTypePathTemplate - .match as SinonStub) + ( + client.pathTemplates.projectLocationInsightTypePathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -2583,12 +2675,10 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.projectLocationInsightTypeInsightPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.projectLocationInsightTypeInsightPathTemplate.match = sinon - .stub() - .returns(expectedParameters); + client.pathTemplates.projectLocationInsightTypeInsightPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.projectLocationInsightTypeInsightPathTemplate.match = + sinon.stub().returns(expectedParameters); it('projectLocationInsightTypeInsightPath', () => { const result = client.projectLocationInsightTypeInsightPath( @@ -2599,60 +2689,74 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.projectLocationInsightTypeInsightPathTemplate - .render as SinonStub) + ( + client.pathTemplates.projectLocationInsightTypeInsightPathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchProjectFromProjectLocationInsightTypeInsightName', () => { - const result = client.matchProjectFromProjectLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchProjectFromProjectLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'projectValue'); assert( - (client.pathTemplates.projectLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates.projectLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromProjectLocationInsightTypeInsightName', () => { - const result = client.matchLocationFromProjectLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchLocationFromProjectLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.projectLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates.projectLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchInsightTypeFromProjectLocationInsightTypeInsightName', () => { - const result = client.matchInsightTypeFromProjectLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchInsightTypeFromProjectLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'insightTypeValue'); assert( - (client.pathTemplates.projectLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates.projectLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchInsightFromProjectLocationInsightTypeInsightName', () => { - const result = client.matchInsightFromProjectLocationInsightTypeInsightName( - fakePath - ); + const result = + client.matchInsightFromProjectLocationInsightTypeInsightName( + fakePath + ); assert.strictEqual(result, 'insightValue'); assert( - (client.pathTemplates.projectLocationInsightTypeInsightPathTemplate - .match as SinonStub) + ( + client.pathTemplates.projectLocationInsightTypeInsightPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -2686,47 +2790,52 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates.projectLocationRecommenderPathTemplate - .render as SinonStub) + ( + client.pathTemplates.projectLocationRecommenderPathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchProjectFromProjectLocationRecommenderName', () => { - const result = client.matchProjectFromProjectLocationRecommenderName( - fakePath - ); + const result = + client.matchProjectFromProjectLocationRecommenderName(fakePath); assert.strictEqual(result, 'projectValue'); assert( - (client.pathTemplates.projectLocationRecommenderPathTemplate - .match as SinonStub) + ( + client.pathTemplates.projectLocationRecommenderPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromProjectLocationRecommenderName', () => { - const result = client.matchLocationFromProjectLocationRecommenderName( - fakePath - ); + const result = + client.matchLocationFromProjectLocationRecommenderName(fakePath); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates.projectLocationRecommenderPathTemplate - .match as SinonStub) + ( + client.pathTemplates.projectLocationRecommenderPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchRecommenderFromProjectLocationRecommenderName', () => { - const result = client.matchRecommenderFromProjectLocationRecommenderName( - fakePath - ); + const result = + client.matchRecommenderFromProjectLocationRecommenderName(fakePath); assert.strictEqual(result, 'recommenderValue'); assert( - (client.pathTemplates.projectLocationRecommenderPathTemplate - .match as SinonStub) + ( + client.pathTemplates.projectLocationRecommenderPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); @@ -2747,12 +2856,10 @@ describe('v1.RecommenderClient', () => { projectId: 'bogus', }); client.initialize(); - client.pathTemplates.projectLocationRecommenderRecommendationPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.projectLocationRecommenderRecommendationPathTemplate.match = sinon - .stub() - .returns(expectedParameters); + client.pathTemplates.projectLocationRecommenderRecommendationPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.projectLocationRecommenderRecommendationPathTemplate.match = + sinon.stub().returns(expectedParameters); it('projectLocationRecommenderRecommendationPath', () => { const result = client.projectLocationRecommenderRecommendationPath( @@ -2763,65 +2870,79 @@ describe('v1.RecommenderClient', () => { ); assert.strictEqual(result, fakePath); assert( - (client.pathTemplates - .projectLocationRecommenderRecommendationPathTemplate - .render as SinonStub) + ( + client.pathTemplates + .projectLocationRecommenderRecommendationPathTemplate + .render as SinonStub + ) .getCall(-1) .calledWith(expectedParameters) ); }); it('matchProjectFromProjectLocationRecommenderRecommendationName', () => { - const result = client.matchProjectFromProjectLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchProjectFromProjectLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'projectValue'); assert( - (client.pathTemplates - .projectLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .projectLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchLocationFromProjectLocationRecommenderRecommendationName', () => { - const result = client.matchLocationFromProjectLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchLocationFromProjectLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'locationValue'); assert( - (client.pathTemplates - .projectLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .projectLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchRecommenderFromProjectLocationRecommenderRecommendationName', () => { - const result = client.matchRecommenderFromProjectLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchRecommenderFromProjectLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'recommenderValue'); assert( - (client.pathTemplates - .projectLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .projectLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); }); it('matchRecommendationFromProjectLocationRecommenderRecommendationName', () => { - const result = client.matchRecommendationFromProjectLocationRecommenderRecommendationName( - fakePath - ); + const result = + client.matchRecommendationFromProjectLocationRecommenderRecommendationName( + fakePath + ); assert.strictEqual(result, 'recommendationValue'); assert( - (client.pathTemplates - .projectLocationRecommenderRecommendationPathTemplate - .match as SinonStub) + ( + client.pathTemplates + .projectLocationRecommenderRecommendationPathTemplate + .match as SinonStub + ) .getCall(-1) .calledWith(fakePath) ); From 510991b906ff749db2b06c81be19151fa3d8e379 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 13 May 2021 10:35:03 -0700 Subject: [PATCH 117/158] chore: release 4.2.1 (#168) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 9af65d52f2b..2bdf2ebb66c 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [4.2.1](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.0...v4.2.1) (2021-05-12) + + +### Bug Fixes + +* **deps:** require google-gax v2.12.0 ([#167](https://www.github.com/googleapis/nodejs-recommender/issues/167)) ([01f400c](https://www.github.com/googleapis/nodejs-recommender/commit/01f400cbc89403727c5fd8b55c151d30dd8bd78c)) + ## [4.2.0](https://www.github.com/googleapis/nodejs-recommender/compare/v4.1.0...v4.2.0) (2021-01-27) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index f7396cb9994..fef9e3e4ed4 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "4.2.0", + "version": "4.2.1", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 9d49fce101d..5743c468558 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^4.2.0" + "@google-cloud/recommender": "^4.2.1" }, "devDependencies": { "c8": "^7.0.0", From 24ba2db2301f6c45aa200d40f9f82d31687c8efe Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 21 May 2021 19:06:26 +0200 Subject: [PATCH 118/158] chore(deps): update dependency @types/node to v14 (#172) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`^12.0.0` -> `^14.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/12.20.13/14.17.0) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/compatibility-slim/12.20.13)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/confidence-slim/12.20.13)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index fef9e3e4ed4..1e3fe9e9273 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -33,7 +33,7 @@ }, "devDependencies": { "@types/mocha": "^8.0.0", - "@types/node": "^12.0.0", + "@types/node": "^14.0.0", "@types/sinon": "^10.0.0", "c8": "^7.0.0", "gts": "^2.0.0", From 9a5e4d58e229fff36f349d69ba955e21a25ed526 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 25 May 2021 17:54:18 +0200 Subject: [PATCH 119/158] chore(deps): update dependency sinon to v11 (#173) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [sinon](https://sinonjs.org/) ([source](https://togithub.com/sinonjs/sinon)) | [`^10.0.0` -> `^11.0.0`](https://renovatebot.com/diffs/npm/sinon/10.0.0/11.1.0) | [![age](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/compatibility-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/confidence-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
sinonjs/sinon ### [`v11.1.0`](https://togithub.com/sinonjs/sinon/blob/master/CHANGELOG.md#​1110--2021-05-25) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v11.0.0...31be9a5d5a4762ef01cb195f29024616dfee9ce8) \================== - Add sinon.promise() implementation ([#​2369](https://togithub.com/sinonjs/sinon/issues/2369)) - Set wrappedMethod on getters/setters ([#​2378](https://togithub.com/sinonjs/sinon/issues/2378)) - \[Docs] Update fake-server usage & descriptions ([#​2365](https://togithub.com/sinonjs/sinon/issues/2365)) - Fake docs improvement ([#​2360](https://togithub.com/sinonjs/sinon/issues/2360)) - Update nise to 5.1.0 (fixed [#​2318](https://togithub.com/sinonjs/sinon/issues/2318)) ### [`v11.0.0`](https://togithub.com/sinonjs/sinon/blob/master/CHANGELOG.md#​1100--2021-05-24) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v10.0.1...v11.0.0) \================== - Explicitly use samsam 6.0.2 with fix for [#​2345](https://togithub.com/sinonjs/sinon/issues/2345) - Update most packages ([#​2371](https://togithub.com/sinonjs/sinon/issues/2371)) - Update compatibility docs ([#​2366](https://togithub.com/sinonjs/sinon/issues/2366)) - Update packages (includes breaking fake-timers change, see [#​2352](https://togithub.com/sinonjs/sinon/issues/2352)) - Warn of potential memory leaks ([#​2357](https://togithub.com/sinonjs/sinon/issues/2357)) - Fix clock test errors ### [`v10.0.1`](https://togithub.com/sinonjs/sinon/blob/master/CHANGELOG.md#​1001--2021-04-08) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v10.0.0...v10.0.1) \================== - Upgrade sinon components (bumps y18n to 4.0.1) - Bump y18n from 4.0.0 to 4.0.1
--- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 1e3fe9e9273..8a8de684730 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -44,7 +44,7 @@ "mocha": "^8.0.0", "null-loader": "^4.0.0", "pack-n-play": "^1.0.0-2", - "sinon": "^10.0.0", + "sinon": "^11.0.0", "ts-loader": "^9.0.0", "typescript": "^3.8.3", "webpack": "^5.0.0", From a0e2769349d176e173c80c5a7803bb7d214065fb Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Thu, 10 Jun 2021 23:02:20 +0200 Subject: [PATCH 120/158] chore(nodejs): remove api-extractor dependencies (#178) --- packages/google-cloud-recommender/package.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 8a8de684730..d31dd47b3b9 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -24,9 +24,7 @@ "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test": "c8 mocha build/test", "prelint": "cd samples; npm link ../; npm install", - "precompile": "gts clean", - "api-extractor": "api-extractor run --local", - "api-documenter": "api-documenter yaml --input-folder=temp" + "precompile": "gts clean" }, "dependencies": { "google-gax": "^2.12.0" @@ -48,9 +46,7 @@ "ts-loader": "^9.0.0", "typescript": "^3.8.3", "webpack": "^5.0.0", - "webpack-cli": "^4.0.0", - "@microsoft/api-documenter": "^7.8.10", - "@microsoft/api-extractor": "^7.8.10" + "webpack-cli": "^4.0.0" }, "engines": { "node": ">=10" From 6a994dc18d91078bea0f3f782c0ec203a6bc298e Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 30 Jun 2021 12:16:29 -0400 Subject: [PATCH 121/158] fix(deps): google-gax v2.17.0 with mTLS (#182) --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index d31dd47b3b9..9850da3e176 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -27,7 +27,7 @@ "precompile": "gts clean" }, "dependencies": { - "google-gax": "^2.12.0" + "google-gax": "^2.17.0" }, "devDependencies": { "@types/mocha": "^8.0.0", From 28c6b19a7cecb2de08015ba9269192dda33fbd77 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 30 Jun 2021 16:28:27 +0000 Subject: [PATCH 122/158] chore: release 4.2.2 (#184) :robot: I have created a release \*beep\* \*boop\* --- ### [4.2.2](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.1...v4.2.2) (2021-06-30) ### Bug Fixes * **deps:** google-gax v2.17.0 with mTLS ([#182](https://www.github.com/googleapis/nodejs-recommender/issues/182)) ([232819a](https://www.github.com/googleapis/nodejs-recommender/commit/232819acbb7a42b01178affcfb791ad84f03305b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 2bdf2ebb66c..3415ce8a6d0 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [4.2.2](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.1...v4.2.2) (2021-06-30) + + +### Bug Fixes + +* **deps:** google-gax v2.17.0 with mTLS ([#182](https://www.github.com/googleapis/nodejs-recommender/issues/182)) ([232819a](https://www.github.com/googleapis/nodejs-recommender/commit/232819acbb7a42b01178affcfb791ad84f03305b)) + ### [4.2.1](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.0...v4.2.1) (2021-05-12) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 9850da3e176..7e49a73160c 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "4.2.1", + "version": "4.2.2", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 5743c468558..f2726291489 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^4.2.1" + "@google-cloud/recommender": "^4.2.2" }, "devDependencies": { "c8": "^7.0.0", From 29aa30a9ac63221e86df9c7a5328319bb102293e Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Mon, 12 Jul 2021 17:46:11 -0400 Subject: [PATCH 123/158] fix(deps): google-gax v2.17.1 (#185) --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 7e49a73160c..df53532a343 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -27,7 +27,7 @@ "precompile": "gts clean" }, "dependencies": { - "google-gax": "^2.17.0" + "google-gax": "^2.17.1" }, "devDependencies": { "@types/mocha": "^8.0.0", From 58fb9a406c2907bed60e18ce2913b77fb41e9a1c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 21 Jul 2021 00:42:30 +0000 Subject: [PATCH 124/158] chore: release 4.2.3 (#186) :robot: I have created a release \*beep\* \*boop\* --- ### [4.2.3](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.2...v4.2.3) (2021-07-21) ### Bug Fixes * **deps:** google-gax v2.17.1 ([#185](https://www.github.com/googleapis/nodejs-recommender/issues/185)) ([595de84](https://www.github.com/googleapis/nodejs-recommender/commit/595de84919798b7ee43e6466f071f809cb2a3b98)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 3415ce8a6d0..5666b326980 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [4.2.3](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.2...v4.2.3) (2021-07-21) + + +### Bug Fixes + +* **deps:** google-gax v2.17.1 ([#185](https://www.github.com/googleapis/nodejs-recommender/issues/185)) ([595de84](https://www.github.com/googleapis/nodejs-recommender/commit/595de84919798b7ee43e6466f071f809cb2a3b98)) + ### [4.2.2](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.1...v4.2.2) (2021-06-30) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index df53532a343..e01d953d61f 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "4.2.2", + "version": "4.2.3", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index f2726291489..40df6febc08 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^4.2.2" + "@google-cloud/recommender": "^4.2.3" }, "devDependencies": { "c8": "^7.0.0", From 2b08580a60ee19ac739f0bc1013c2e420aae69b8 Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Wed, 4 Aug 2021 16:00:40 -0400 Subject: [PATCH 125/158] chore(nodejs): update client ref docs link in metadata (#189) --- packages/google-cloud-recommender/.repo-metadata.json | 2 +- packages/google-cloud-recommender/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/.repo-metadata.json b/packages/google-cloud-recommender/.repo-metadata.json index f88a609aa84..b82d373a285 100644 --- a/packages/google-cloud-recommender/.repo-metadata.json +++ b/packages/google-cloud-recommender/.repo-metadata.json @@ -10,6 +10,6 @@ "product_documentation": "https://cloud.google.com/recommender/docs", "codeowner_team": "@googleapis/ml-apis", "name_pretty": "Recommender", - "client_documentation": "https://googleapis.dev/nodejs/recommender/latest/index.html", + "client_documentation": "https://cloud.google.com/nodejs/docs/reference/recommender/latest", "release_level": "ga" } diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index 029fc81ba45..ac3c1b48c25 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -153,7 +153,7 @@ Apache Version 2.0 See [LICENSE](https://github.com/googleapis/nodejs-recommender/blob/master/LICENSE) -[client-docs]: https://googleapis.dev/nodejs/recommender/latest/index.html +[client-docs]: https://cloud.google.com/nodejs/docs/reference/recommender/latest [product-docs]: https://cloud.google.com/recommender/docs [shell_img]: https://gstatic.com/cloudssh/images/open-btn.png [projects]: https://console.cloud.google.com/project From 7a3ee1778ca0146a76a8993be94017abe264151f Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Mon, 16 Aug 2021 22:42:29 -0400 Subject: [PATCH 126/158] fix(deps): google-gax v2.24.1 (#191) --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index e01d953d61f..1ac9295bf1a 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -27,7 +27,7 @@ "precompile": "gts clean" }, "dependencies": { - "google-gax": "^2.17.1" + "google-gax": "^2.24.1" }, "devDependencies": { "@types/mocha": "^8.0.0", From 6413f3a6b2d1286d68fb237362b05576ff1733b1 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 17 Aug 2021 17:14:41 +0000 Subject: [PATCH 127/158] chore: release 4.2.4 (#192) :robot: I have created a release \*beep\* \*boop\* --- ### [4.2.4](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.3...v4.2.4) (2021-08-17) ### Bug Fixes * **deps:** google-gax v2.24.1 ([#191](https://www.github.com/googleapis/nodejs-recommender/issues/191)) ([92792f8](https://www.github.com/googleapis/nodejs-recommender/commit/92792f82b70c8fe850a12243a7c6287efc1e447e)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 5666b326980..bd24e929154 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [4.2.4](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.3...v4.2.4) (2021-08-17) + + +### Bug Fixes + +* **deps:** google-gax v2.24.1 ([#191](https://www.github.com/googleapis/nodejs-recommender/issues/191)) ([92792f8](https://www.github.com/googleapis/nodejs-recommender/commit/92792f82b70c8fe850a12243a7c6287efc1e447e)) + ### [4.2.3](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.2...v4.2.3) (2021-07-21) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 1ac9295bf1a..b646a1e847b 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "4.2.3", + "version": "4.2.4", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 40df6febc08..6c9d6ca162d 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^4.2.3" + "@google-cloud/recommender": "^4.2.4" }, "devDependencies": { "c8": "^7.0.0", From 93fc3f446ad791b591c71ae554f6647fe61669ad Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 25 Aug 2021 23:38:39 +0000 Subject: [PATCH 128/158] chore: disable renovate dependency dashboard (#1194) (#193) --- packages/google-cloud-recommender/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index ac3c1b48c25..0de70ec2031 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -144,8 +144,8 @@ Contributions welcome! See the [Contributing Guide](https://github.com/googleapi Please note that this `README.md`, the `samples/README.md`, and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`) are generated from a central template. To edit one of these files, make an edit -to its template in this -[directory](https://github.com/googleapis/synthtool/tree/master/synthtool/gcp/templates/node_library). +to its templates in +[directory](https://github.com/googleapis/synthtool). ## License From efc5f4ffa0ac7b6eedd6af906b60f8b928778a40 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 8 Sep 2021 20:41:32 -0400 Subject: [PATCH 129/158] fix(build): switch primary branch to main (#194) --- packages/google-cloud-recommender/README.md | 12 ++++++------ packages/google-cloud-recommender/samples/README.md | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index 0de70ec2031..7bd1433fb07 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -6,7 +6,7 @@ [![release level](https://img.shields.io/badge/release%20level-general%20availability%20%28GA%29-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/recommender.svg)](https://www.npmjs.org/package/@google-cloud/recommender) -[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-recommender/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-recommender) +[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-recommender/main.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-recommender) @@ -15,7 +15,7 @@ Recommender client for Node.js A comprehensive list of changes in each version may be found in -[the CHANGELOG](https://github.com/googleapis/nodejs-recommender/blob/master/CHANGELOG.md). +[the CHANGELOG](https://github.com/googleapis/nodejs-recommender/blob/main/CHANGELOG.md). * [Recommender Node.js Client API Reference][client-docs] * [Recommender Documentation][product-docs] @@ -86,11 +86,11 @@ const recommendations = await listRecommendations(); ## Samples -Samples are in the [`samples/`](https://github.com/googleapis/nodejs-recommender/tree/master/samples) directory. Each sample's `README.md` has instructions for running its sample. +Samples are in the [`samples/`](https://github.com/googleapis/nodejs-recommender/tree/main/samples) directory. Each sample's `README.md` has instructions for running its sample. | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | -| Quickstart | [source code](https://github.com/googleapis/nodejs-recommender/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-recommender&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | +| Quickstart | [source code](https://github.com/googleapis/nodejs-recommender/blob/main/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-recommender&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | @@ -139,7 +139,7 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] ## Contributing -Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-recommender/blob/master/CONTRIBUTING.md). +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-recommender/blob/main/CONTRIBUTING.md). Please note that this `README.md`, the `samples/README.md`, and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`) @@ -151,7 +151,7 @@ to its templates in Apache Version 2.0 -See [LICENSE](https://github.com/googleapis/nodejs-recommender/blob/master/LICENSE) +See [LICENSE](https://github.com/googleapis/nodejs-recommender/blob/main/LICENSE) [client-docs]: https://cloud.google.com/nodejs/docs/reference/recommender/latest [product-docs]: https://cloud.google.com/recommender/docs diff --git a/packages/google-cloud-recommender/samples/README.md b/packages/google-cloud-recommender/samples/README.md index 66abb93b01f..293d3b255ea 100644 --- a/packages/google-cloud-recommender/samples/README.md +++ b/packages/google-cloud-recommender/samples/README.md @@ -31,7 +31,7 @@ Before running the samples, make sure you've followed the steps outlined in ### Quickstart -View the [source code](https://github.com/googleapis/nodejs-recommender/blob/master/samples/quickstart.js). +View the [source code](https://github.com/googleapis/nodejs-recommender/blob/main/samples/quickstart.js). [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-recommender&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) From 9e75063ab326e551666f31e6df382eb4f5deac62 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 8 Sep 2021 19:05:30 -0700 Subject: [PATCH 130/158] chore: release 4.2.5 (#195) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- packages/google-cloud-recommender/CHANGELOG.md | 7 +++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index bd24e929154..55ba0d226bc 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [4.2.5](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.4...v4.2.5) (2021-09-09) + + +### Bug Fixes + +* **build:** switch primary branch to main ([#194](https://www.github.com/googleapis/nodejs-recommender/issues/194)) ([f2b12a1](https://www.github.com/googleapis/nodejs-recommender/commit/f2b12a15de8f81a3d3ab626ca3422b694d4ed3d6)) + ### [4.2.4](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.3...v4.2.4) (2021-08-17) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index b646a1e847b..c197bdcd459 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "4.2.4", + "version": "4.2.5", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 6c9d6ca162d..16efe6cf956 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^4.2.4" + "@google-cloud/recommender": "^4.2.5" }, "devDependencies": { "c8": "^7.0.0", From e531ae08d547c31a60e4a080732d6c4724fe6e74 Mon Sep 17 00:00:00 2001 From: Jeffrey Rennie Date: Tue, 21 Sep 2021 14:17:10 -0700 Subject: [PATCH 131/158] chore: relocate owl bot post processor (#198) * chore: relocate owl bot post processor * chore: relocate owl bot post processor --- packages/google-cloud-recommender/.github/.OwlBot.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/.github/.OwlBot.yaml b/packages/google-cloud-recommender/.github/.OwlBot.yaml index 3323fb16132..7fa9e4049ac 100644 --- a/packages/google-cloud-recommender/.github/.OwlBot.yaml +++ b/packages/google-cloud-recommender/.github/.OwlBot.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. docker: - image: gcr.io/repo-automation-bots/owlbot-nodejs:latest + image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest deep-remove-regex: - /owl-bot-staging From 3b0b418d3d978f349b05d9457e175853f14a7439 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 14 Oct 2021 00:48:42 +0000 Subject: [PATCH 132/158] build(node): update deps used during postprocessing (#1243) (#201) --- .../google-cloud-recommender/protos/protos.d.ts | 3 ++- .../google-cloud-recommender/protos/protos.js | 7 +++++++ .../google-cloud-recommender/protos/protos.json | 15 ++++++++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index eb3379ca4d3..588c81b298e 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -3137,7 +3137,8 @@ export namespace google { OUTPUT_ONLY = 3, INPUT_ONLY = 4, IMMUTABLE = 5, - UNORDERED_LIST = 6 + UNORDERED_LIST = 6, + NON_EMPTY_DEFAULT = 7 } } diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index 98741bfd142..082bd9c5342 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -7905,6 +7905,7 @@ * @property {number} INPUT_ONLY=4 INPUT_ONLY value * @property {number} IMMUTABLE=5 IMMUTABLE value * @property {number} UNORDERED_LIST=6 UNORDERED_LIST value + * @property {number} NON_EMPTY_DEFAULT=7 NON_EMPTY_DEFAULT value */ api.FieldBehavior = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -7915,6 +7916,7 @@ values[valuesById[4] = "INPUT_ONLY"] = 4; values[valuesById[5] = "IMMUTABLE"] = 5; values[valuesById[6] = "UNORDERED_LIST"] = 6; + values[valuesById[7] = "NON_EMPTY_DEFAULT"] = 7; return values; })(); @@ -13453,6 +13455,7 @@ case 4: case 5: case 6: + case 7: break; } } @@ -13557,6 +13560,10 @@ case 6: message[".google.api.fieldBehavior"][i] = 6; break; + case "NON_EMPTY_DEFAULT": + case 7: + message[".google.api.fieldBehavior"][i] = 7; + break; } } return message; diff --git a/packages/google-cloud-recommender/protos/protos.json b/packages/google-cloud-recommender/protos/protos.json index 42c43003818..48350b641e0 100644 --- a/packages/google-cloud-recommender/protos/protos.json +++ b/packages/google-cloud-recommender/protos/protos.json @@ -1025,7 +1025,8 @@ "OUTPUT_ONLY": 3, "INPUT_ONLY": 4, "IMMUTABLE": 5, - "UNORDERED_LIST": 6 + "UNORDERED_LIST": 6, + "NON_EMPTY_DEFAULT": 7 } } } @@ -1591,6 +1592,18 @@ ] ], "reserved": [ + [ + 4, + 4 + ], + [ + 5, + 5 + ], + [ + 6, + 6 + ], [ 8, 8 From a3bc343152df05f837df9047b3edb355aa5c3684 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 26 Oct 2021 23:19:21 +0200 Subject: [PATCH 133/158] chore(deps): update dependency @types/node to v16 (#202) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`^14.0.0` -> `^16.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/14.17.32/16.11.6) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fnode/16.11.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fnode/16.11.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fnode/16.11.6/compatibility-slim/14.17.32)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fnode/16.11.6/confidence-slim/14.17.32)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index c197bdcd459..22bd774f5ad 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -31,7 +31,7 @@ }, "devDependencies": { "@types/mocha": "^8.0.0", - "@types/node": "^14.0.0", + "@types/node": "^16.0.0", "@types/sinon": "^10.0.0", "c8": "^7.0.0", "gts": "^2.0.0", From 532a7011a040f25a0b30ecca42b26743e7e6220a Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Thu, 4 Nov 2021 11:50:38 -0400 Subject: [PATCH 134/158] chore(cloud-rad): delete api-extractor config (#204) --- .../api-extractor.json | 369 ------------------ 1 file changed, 369 deletions(-) delete mode 100644 packages/google-cloud-recommender/api-extractor.json diff --git a/packages/google-cloud-recommender/api-extractor.json b/packages/google-cloud-recommender/api-extractor.json deleted file mode 100644 index de228294b23..00000000000 --- a/packages/google-cloud-recommender/api-extractor.json +++ /dev/null @@ -1,369 +0,0 @@ -/** - * Config file for API Extractor. For more info, please visit: https://api-extractor.com - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - /** - * Optionally specifies another JSON config file that this file extends from. This provides a way for - * standard settings to be shared across multiple projects. - * - * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains - * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be - * resolved using NodeJS require(). - * - * SUPPORTED TOKENS: none - * DEFAULT VALUE: "" - */ - // "extends": "./shared/api-extractor-base.json" - // "extends": "my-package/include/api-extractor-base.json" - - /** - * Determines the "" token that can be used with other config file settings. The project folder - * typically contains the tsconfig.json and package.json config files, but the path is user-defined. - * - * The path is resolved relative to the folder of the config file that contains the setting. - * - * The default value for "projectFolder" is the token "", which means the folder is determined by traversing - * parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder - * that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error - * will be reported. - * - * SUPPORTED TOKENS: - * DEFAULT VALUE: "" - */ - // "projectFolder": "..", - - /** - * (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor - * analyzes the symbols exported by this module. - * - * The file extension must be ".d.ts" and not ".ts". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - */ - "mainEntryPointFilePath": "/protos/protos.d.ts", - - /** - * A list of NPM package names whose exports should be treated as part of this package. - * - * For example, suppose that Webpack is used to generate a distributed bundle for the project "library1", - * and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part - * of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly - * imports library2. To avoid this, we can specify: - * - * "bundledPackages": [ "library2" ], - * - * This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been - * local files for library1. - */ - "bundledPackages": [ ], - - /** - * Determines how the TypeScript compiler engine will be invoked by API Extractor. - */ - "compiler": { - /** - * Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * Note: This setting will be ignored if "overrideTsconfig" is used. - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/tsconfig.json" - */ - // "tsconfigFilePath": "/tsconfig.json", - - /** - * Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk. - * The object must conform to the TypeScript tsconfig schema: - * - * http://json.schemastore.org/tsconfig - * - * If omitted, then the tsconfig.json file will be read from the "projectFolder". - * - * DEFAULT VALUE: no overrideTsconfig section - */ - // "overrideTsconfig": { - // . . . - // } - - /** - * This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended - * and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when - * dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses - * for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck. - * - * DEFAULT VALUE: false - */ - // "skipLibCheck": true, - }, - - /** - * Configures how the API report file (*.api.md) will be generated. - */ - "apiReport": { - /** - * (REQUIRED) Whether to generate an API report. - */ - "enabled": true, - - /** - * The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce - * a full file path. - * - * The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/". - * - * SUPPORTED TOKENS: , - * DEFAULT VALUE: ".api.md" - */ - // "reportFileName": ".api.md", - - /** - * Specifies the folder where the API report file is written. The file name portion is determined by - * the "reportFileName" setting. - * - * The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy, - * e.g. for an API review. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/etc/" - */ - // "reportFolder": "/etc/", - - /** - * Specifies the folder where the temporary report file is written. The file name portion is determined by - * the "reportFileName" setting. - * - * After the temporary file is written to disk, it is compared with the file in the "reportFolder". - * If they are different, a production build will fail. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/" - */ - // "reportTempFolder": "/temp/" - }, - - /** - * Configures how the doc model file (*.api.json) will be generated. - */ - "docModel": { - /** - * (REQUIRED) Whether to generate a doc model file. - */ - "enabled": true, - - /** - * The output path for the doc model file. The file extension should be ".api.json". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/.api.json" - */ - // "apiJsonFilePath": "/temp/.api.json" - }, - - /** - * Configures how the .d.ts rollup file will be generated. - */ - "dtsRollup": { - /** - * (REQUIRED) Whether to generate the .d.ts rollup file. - */ - "enabled": true, - - /** - * Specifies the output path for a .d.ts rollup file to be generated without any trimming. - * This file will include all declarations that are exported by the main entry point. - * - * If the path is an empty string, then this file will not be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/dist/.d.ts" - */ - // "untrimmedFilePath": "/dist/.d.ts", - - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release. - * This file will include only declarations that are marked as "@public" or "@beta". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "betaTrimmedFilePath": "/dist/-beta.d.ts", - - - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release. - * This file will include only declarations that are marked as "@public". - * - * If the path is an empty string, then this file will not be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "publicTrimmedFilePath": "/dist/-public.d.ts", - - /** - * When a declaration is trimmed, by default it will be replaced by a code comment such as - * "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the - * declaration completely. - * - * DEFAULT VALUE: false - */ - // "omitTrimmingComments": true - }, - - /** - * Configures how the tsdoc-metadata.json file will be generated. - */ - "tsdocMetadata": { - /** - * Whether to generate the tsdoc-metadata.json file. - * - * DEFAULT VALUE: true - */ - // "enabled": true, - - /** - * Specifies where the TSDoc metadata file should be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * The default value is "", which causes the path to be automatically inferred from the "tsdocMetadata", - * "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup - * falls back to "tsdoc-metadata.json" in the package folder. - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "tsdocMetadataFilePath": "/dist/tsdoc-metadata.json" - }, - - /** - * Specifies what type of newlines API Extractor should use when writing output files. By default, the output files - * will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead. - * To use the OS's default newline kind, specify "os". - * - * DEFAULT VALUE: "crlf" - */ - // "newlineKind": "crlf", - - /** - * Configures how API Extractor reports error and warning messages produced during analysis. - * - * There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages. - */ - "messages": { - /** - * Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing - * the input .d.ts files. - * - * TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551" - * - * DEFAULT VALUE: A single "default" entry with logLevel=warning. - */ - "compilerMessageReporting": { - /** - * Configures the default routing for messages that don't match an explicit rule in this table. - */ - "default": { - /** - * Specifies whether the message should be written to the the tool's output log. Note that - * the "addToApiReportFile" property may supersede this option. - * - * Possible values: "error", "warning", "none" - * - * Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail - * and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes - * the "--local" option), the warning is displayed but the build will not fail. - * - * DEFAULT VALUE: "warning" - */ - "logLevel": "warning", - - /** - * When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md), - * then the message will be written inside that file; otherwise, the message is instead logged according to - * the "logLevel" option. - * - * DEFAULT VALUE: false - */ - // "addToApiReportFile": false - }, - - // "TS2551": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - }, - - /** - * Configures handling of messages reported by API Extractor during its analysis. - * - * API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag" - * - * DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings - */ - "extractorMessageReporting": { - "default": { - "logLevel": "warning", - // "addToApiReportFile": false - }, - - // "ae-extra-release-tag": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - }, - - /** - * Configures handling of messages reported by the TSDoc parser when analyzing code comments. - * - * TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text" - * - * DEFAULT VALUE: A single "default" entry with logLevel=warning. - */ - "tsdocMessageReporting": { - "default": { - "logLevel": "warning", - // "addToApiReportFile": false - } - - // "tsdoc-link-tag-unescaped-text": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - } - } - -} From cf6fda73f9034b21ed1a13afbaf5bbbf6309893e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 4 Nov 2021 20:44:30 +0100 Subject: [PATCH 135/158] chore(deps): update dependency sinon to v12 (#203) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [sinon](https://sinonjs.org/) ([source](https://togithub.com/sinonjs/sinon)) | [`^11.0.0` -> `^12.0.0`](https://renovatebot.com/diffs/npm/sinon/11.1.2/12.0.1) | [![age](https://badges.renovateapi.com/packages/npm/sinon/12.0.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/sinon/12.0.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/sinon/12.0.1/compatibility-slim/11.1.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/sinon/12.0.1/confidence-slim/11.1.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
sinonjs/sinon ### [`v12.0.1`](https://togithub.com/sinonjs/sinon/blob/master/CHANGES.md#​1201) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v12.0.0...v12.0.1) - [`3f598221`](https://togithub.com/sinonjs/sinon/commit/3f598221045904681f2b3b3ba1df617ed5e230e3) Fix issue with npm unlink for npm version > 6 (Carl-Erik Kopseng) > 'npm unlink' would implicitly unlink the current dir > until version 7, which requires an argument - [`51417a38`](https://togithub.com/sinonjs/sinon/commit/51417a38111eeeb7cd14338bfb762cc2df487e1b) Fix bundling of cjs module ([#​2412](https://togithub.com/sinonjs/sinon/issues/2412)) (Julian Grinblat) > - Fix bundling of cjs module > > - Run prettier *Released by [Carl-Erik Kopseng](https://togithub.com/fatso83) on 2021-11-04.* #### 12.0.0 ### [`v12.0.0`](https://togithub.com/sinonjs/sinon/compare/v11.1.2...v12.0.0) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v11.1.2...v12.0.0)
--- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 22bd774f5ad..8c018c88229 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -42,7 +42,7 @@ "mocha": "^8.0.0", "null-loader": "^4.0.0", "pack-n-play": "^1.0.0-2", - "sinon": "^11.0.0", + "sinon": "^12.0.0", "ts-loader": "^9.0.0", "typescript": "^3.8.3", "webpack": "^5.0.0", From cf92972832c5d24d5b1a05c07f551ac5e9eedfeb Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 9 Dec 2021 22:52:13 +0000 Subject: [PATCH 136/158] build: add generated samples to .eslintignore (#205) --- packages/google-cloud-recommender/.eslintignore | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/google-cloud-recommender/.eslintignore b/packages/google-cloud-recommender/.eslintignore index 9340ad9b86d..ea5b04aebe6 100644 --- a/packages/google-cloud-recommender/.eslintignore +++ b/packages/google-cloud-recommender/.eslintignore @@ -4,3 +4,4 @@ test/fixtures build/ docs/ protos/ +samples/generated/ From 6c2585326b989c79d4e1db5ea9826cbb01394aaa Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 29 Dec 2021 19:50:20 +0000 Subject: [PATCH 137/158] docs(node): support "stable"/"preview" release level (#1312) (#208) --- packages/google-cloud-recommender/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index 7bd1433fb07..9856005798b 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -133,6 +133,8 @@ are addressed with the highest priority. + + More Information: [Google Cloud Platform Launch Stages][launch_stages] [launch_stages]: https://cloud.google.com/terms/launch-stages From 4ef4a54be8254208b638987572908e2810f0f50c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 30 Dec 2021 23:08:17 +0000 Subject: [PATCH 138/158] docs(badges): tweak badge to use new preview/stable language (#1314) (#209) --- packages/google-cloud-recommender/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index 9856005798b..ae6193f0f01 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -6,7 +6,6 @@ [![release level](https://img.shields.io/badge/release%20level-general%20availability%20%28GA%29-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/recommender.svg)](https://www.npmjs.org/package/@google-cloud/recommender) -[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-recommender/main.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-recommender) From bbbecd816e6d0efbe8e2f4d854d8a1526ba8a570 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 11 Jan 2022 17:04:24 +0000 Subject: [PATCH 139/158] test(nodejs): remove 15 add 16 (#1322) (#211) --- packages/google-cloud-recommender/protos/protos.d.ts | 2 +- packages/google-cloud-recommender/protos/protos.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index 588c81b298e..15bc048e153 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index 082bd9c5342..e3980eb4725 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. From dd9a82585c31191a902ae4e7c87ffe3f863c8ffa Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Wed, 12 Jan 2022 14:05:21 -0500 Subject: [PATCH 140/158] chore: add api_shortname and library_type to repo metadata (#207) --- packages/google-cloud-recommender/.repo-metadata.json | 4 +++- packages/google-cloud-recommender/README.md | 9 ++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/google-cloud-recommender/.repo-metadata.json b/packages/google-cloud-recommender/.repo-metadata.json index b82d373a285..b01d4ec6526 100644 --- a/packages/google-cloud-recommender/.repo-metadata.json +++ b/packages/google-cloud-recommender/.repo-metadata.json @@ -11,5 +11,7 @@ "codeowner_team": "@googleapis/ml-apis", "name_pretty": "Recommender", "client_documentation": "https://cloud.google.com/nodejs/docs/reference/recommender/latest", - "release_level": "ga" + "release_level": "stable", + "api_shortname": "recommender", + "library_type": "GAPIC_AUTO" } diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index ae6193f0f01..e3f74a627f4 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -4,7 +4,7 @@ # [Recommender: Node.js Client](https://github.com/googleapis/nodejs-recommender) -[![release level](https://img.shields.io/badge/release%20level-general%20availability%20%28GA%29-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) +[![release level](https://img.shields.io/badge/release%20level-stable-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/recommender.svg)](https://www.npmjs.org/package/@google-cloud/recommender) @@ -122,10 +122,10 @@ _Legacy Node.js versions are supported as a best effort:_ This library follows [Semantic Versioning](http://semver.org/). -This library is considered to be **General Availability (GA)**. This means it -is stable; the code surface will not change in backwards-incompatible ways + +This library is considered to be **stable**. The code surface will not change in backwards-incompatible ways unless absolutely necessary (e.g. because of critical security issues) or with -an extensive deprecation period. Issues and requests against **GA** libraries +an extensive deprecation period. Issues and requests against **stable** libraries are addressed with the highest priority. @@ -133,7 +133,6 @@ are addressed with the highest priority. - More Information: [Google Cloud Platform Launch Stages][launch_stages] [launch_stages]: https://cloud.google.com/terms/launch-stages From 77826adec053aab07dadc7a413903a100843216d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 31 Jan 2022 23:32:21 +0100 Subject: [PATCH 141/158] chore(deps): update dependency sinon to v13 (#216) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [sinon](https://sinonjs.org/) ([source](https://togithub.com/sinonjs/sinon)) | [`^12.0.0` -> `^13.0.0`](https://renovatebot.com/diffs/npm/sinon/12.0.1/13.0.0) | [![age](https://badges.renovateapi.com/packages/npm/sinon/13.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/sinon/13.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/sinon/13.0.0/compatibility-slim/12.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/sinon/13.0.0/confidence-slim/12.0.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
sinonjs/sinon ### [`v13.0.0`](https://togithub.com/sinonjs/sinon/blob/HEAD/CHANGES.md#​1300) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v12.0.1...v13.0.0) - [`cf3d6c0c`](https://togithub.com/sinonjs/sinon/commit/cf3d6c0cd9689c0ee673b3daa8bf9abd70304392) Upgrade packages ([#​2431](https://togithub.com/sinonjs/sinon/issues/2431)) (Carl-Erik Kopseng) > - Update all @​sinonjs/ packages > > - Upgrade to fake-timers 9 > > - chore: ensure always using latest LTS release - [`41710467`](https://togithub.com/sinonjs/sinon/commit/417104670d575e96a1b645ea40ce763afa76fb1b) Adjust deploy scripts to archive old releases in a separate branch, move existing releases out of master ([#​2426](https://togithub.com/sinonjs/sinon/issues/2426)) (Joel Bradshaw) > Co-authored-by: Carl-Erik Kopseng - [`c80a7266`](https://togithub.com/sinonjs/sinon/commit/c80a72660e89d88b08275eff1028ecb9e26fd8e9) Bump node-fetch from 2.6.1 to 2.6.7 ([#​2430](https://togithub.com/sinonjs/sinon/issues/2430)) (dependabot\[bot]) > Co-authored-by: dependabot\[bot] <49699333+dependabot\[bot][@​users](https://togithub.com/users).noreply.github.com> - [`a00f14a9`](https://togithub.com/sinonjs/sinon/commit/a00f14a97dbe8c65afa89674e16ad73fc7d2fdc0) Add explicit export for `./*` ([#​2413](https://togithub.com/sinonjs/sinon/issues/2413)) (なつき) - [`b82ca7ad`](https://togithub.com/sinonjs/sinon/commit/b82ca7ad9b1add59007771f65a18ee34415de8ca) Bump cached-path-relative from 1.0.2 to 1.1.0 ([#​2428](https://togithub.com/sinonjs/sinon/issues/2428)) (dependabot\[bot]) - [`a9ea1427`](https://togithub.com/sinonjs/sinon/commit/a9ea142716c094ef3c432ecc4089f8207b8dd8b6) Add documentation for assert.calledOnceWithMatch ([#​2424](https://togithub.com/sinonjs/sinon/issues/2424)) (Mathias Schreck) - [`1d5ab86b`](https://togithub.com/sinonjs/sinon/commit/1d5ab86ba60e50dd69593ffed2bffd4b8faa0d38) Be more general in stripping off stack frames to fix Firefox tests ([#​2425](https://togithub.com/sinonjs/sinon/issues/2425)) (Joel Bradshaw) - [`56b06129`](https://togithub.com/sinonjs/sinon/commit/56b06129e223eae690265c37b1113067e2b31bdc) Check call count type ([#​2410](https://togithub.com/sinonjs/sinon/issues/2410)) (Joel Bradshaw) - [`7863e2df`](https://togithub.com/sinonjs/sinon/commit/7863e2dfdbda79e0a32e42af09e6539fc2f2b80f) Fix [#​2414](https://togithub.com/sinonjs/sinon/issues/2414): make Sinon available on homepage (Carl-Erik Kopseng) - [`fabaabdd`](https://togithub.com/sinonjs/sinon/commit/fabaabdda82f39a7f5b75b55bd56cf77b1cd4a8f) Bump nokogiri from 1.11.4 to 1.13.1 ([#​2423](https://togithub.com/sinonjs/sinon/issues/2423)) (dependabot\[bot]) - [`dbc0fbd2`](https://togithub.com/sinonjs/sinon/commit/dbc0fbd263c8419fa47f9c3b20cf47890a242d21) Bump shelljs from 0.8.4 to 0.8.5 ([#​2422](https://togithub.com/sinonjs/sinon/issues/2422)) (dependabot\[bot]) - [`fb8b3d72`](https://togithub.com/sinonjs/sinon/commit/fb8b3d72a85dc8fb0547f859baf3f03a22a039f7) Run Prettier (Carl-Erik Kopseng) - [`12a45939`](https://togithub.com/sinonjs/sinon/commit/12a45939e9b047b6d3663fe55f2eb383ec63c4e1) Fix 2377: Throw error when trying to stub non-configurable or non-writable properties ([#​2417](https://togithub.com/sinonjs/sinon/issues/2417)) (Stuart Dotson) > Fixes issue [#​2377](https://togithub.com/sinonjs/sinon/issues/2377) by throwing an error when trying to stub non-configurable or non-writable properties *Released by [Carl-Erik Kopseng](https://togithub.com/fatso83) on 2022-01-28.*
--- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 8c018c88229..3afb106f213 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -42,7 +42,7 @@ "mocha": "^8.0.0", "null-loader": "^4.0.0", "pack-n-play": "^1.0.0-2", - "sinon": "^12.0.0", + "sinon": "^13.0.0", "ts-loader": "^9.0.0", "typescript": "^3.8.3", "webpack": "^5.0.0", From c0aadb91ce7fdae9a7673dc07213477a264e5011 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 4 Feb 2022 16:09:07 +0000 Subject: [PATCH 142/158] docs(nodejs): version support policy edits (#1346) (#218) --- packages/google-cloud-recommender/README.md | 24 ++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index e3f74a627f4..e622b7ba59f 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -101,21 +101,21 @@ also contains samples. Our client libraries follow the [Node.js release schedule](https://nodejs.org/en/about/releases/). Libraries are compatible with all current _active_ and _maintenance_ versions of Node.js. +If you are using an end-of-life version of Node.js, we recommend that you update +as soon as possible to an actively supported LTS version. -Client libraries targeting some end-of-life versions of Node.js are available, and -can be installed via npm [dist-tags](https://docs.npmjs.com/cli/dist-tag). -The dist-tags follow the naming convention `legacy-(version)`. - -_Legacy Node.js versions are supported as a best effort:_ +Google's client libraries support legacy versions of Node.js runtimes on a +best-efforts basis with the following warnings: -* Legacy versions will not be tested in continuous integration. -* Some security patches may not be able to be backported. -* Dependencies will not be kept up-to-date, and features will not be backported. +* Legacy versions are not tested in continuous integration. +* Some security patches and features cannot be backported. +* Dependencies cannot be kept up-to-date. -#### Legacy tags available - -* `legacy-8`: install client libraries from this dist-tag for versions - compatible with Node.js 8. +Client libraries targeting some end-of-life versions of Node.js are available, and +can be installed through npm [dist-tags](https://docs.npmjs.com/cli/dist-tag). +The dist-tags follow the naming convention `legacy-(version)`. +For example, `npm install @google-cloud/recommender@legacy-8` installs client libraries +for versions compatible with Node.js 8. ## Versioning From 8e277e7cf2447087f9787b52eb3fe61d3216b071 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 3 May 2022 02:30:32 +0200 Subject: [PATCH 143/158] chore(deps): update dependency @types/mocha to v9 (#228) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/mocha](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`^8.0.0` -> `^9.0.0`](https://renovatebot.com/diffs/npm/@types%2fmocha/8.2.3/9.1.1) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.1/compatibility-slim/8.2.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.1/confidence-slim/8.2.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 3afb106f213..ec3bc81955d 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -30,7 +30,7 @@ "google-gax": "^2.24.1" }, "devDependencies": { - "@types/mocha": "^8.0.0", + "@types/mocha": "^9.0.0", "@types/node": "^16.0.0", "@types/sinon": "^10.0.0", "c8": "^7.0.0", From 5e829add4c0a6dace70959b3803dab2e1ec69641 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 9 May 2022 17:42:27 +0200 Subject: [PATCH 144/158] chore(deps): update dependency sinon to v14 (#231) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [sinon](https://sinonjs.org/) ([source](https://togithub.com/sinonjs/sinon)) | [`^13.0.0` -> `^14.0.0`](https://renovatebot.com/diffs/npm/sinon/13.0.2/14.0.0) | [![age](https://badges.renovateapi.com/packages/npm/sinon/14.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/sinon/14.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/sinon/14.0.0/compatibility-slim/13.0.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/sinon/14.0.0/confidence-slim/13.0.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
sinonjs/sinon ### [`v14.0.0`](https://togithub.com/sinonjs/sinon/blob/HEAD/CHANGES.md#​1400) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v13.0.2...v14.0.0) - [`c2bbd826`](https://togithub.com/sinonjs/sinon/commit/c2bbd82641444eb5b32822489ae40f185afbbf00) Drop node 12 (Morgan Roderick) > And embrace Node 18 > > See https://nodejs.org/en/about/releases/ *Released by Morgan Roderick on 2022-05-07.*
--- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index ec3bc81955d..0fd28243dd9 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -42,7 +42,7 @@ "mocha": "^8.0.0", "null-loader": "^4.0.0", "pack-n-play": "^1.0.0-2", - "sinon": "^13.0.0", + "sinon": "^14.0.0", "ts-loader": "^9.0.0", "typescript": "^3.8.3", "webpack": "^5.0.0", From 98d8495a89e62b839005d8169544ab02e4e43f1c Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Mon, 16 May 2022 17:35:35 -0700 Subject: [PATCH 145/158] build!: update library to use Node 12 (#233) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat!: Update library to use Node 12 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- packages/google-cloud-recommender/package.json | 10 +++++----- packages/google-cloud-recommender/samples/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 0fd28243dd9..ea9964f6b78 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -27,28 +27,28 @@ "precompile": "gts clean" }, "dependencies": { - "google-gax": "^2.24.1" + "google-gax": "^3.0.1" }, "devDependencies": { "@types/mocha": "^9.0.0", "@types/node": "^16.0.0", "@types/sinon": "^10.0.0", "c8": "^7.0.0", - "gts": "^2.0.0", + "gts": "^3.1.0", "jsdoc": "^3.5.5", "jsdoc-fresh": "^1.0.1", "jsdoc-region-tag": "^1.0.2", "linkinator": "^2.0.0", - "mocha": "^8.0.0", + "mocha": "^9.2.2", "null-loader": "^4.0.0", "pack-n-play": "^1.0.0-2", "sinon": "^14.0.0", "ts-loader": "^9.0.0", - "typescript": "^3.8.3", + "typescript": "^4.6.4", "webpack": "^5.0.0", "webpack-cli": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=12.0.0" } } diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 16efe6cf956..a590e0dfa86 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=10" + "node": ">=12.0.0" }, "files": [ "*.js" From b00f1129e76276892158e3a00c1395b6169b9875 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 18 May 2022 10:09:00 -0700 Subject: [PATCH 146/158] chore(main): release 5.0.0 (#234) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- packages/google-cloud-recommender/CHANGELOG.md | 11 +++++++++++ packages/google-cloud-recommender/package.json | 2 +- .../google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 55ba0d226bc..c9bee5451ad 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [5.0.0](https://github.com/googleapis/nodejs-recommender/compare/v4.2.5...v5.0.0) (2022-05-17) + + +### ⚠ BREAKING CHANGES + +* update library to use Node 12 (#233) + +### Build System + +* update library to use Node 12 ([#233](https://github.com/googleapis/nodejs-recommender/issues/233)) ([d4aabcc](https://github.com/googleapis/nodejs-recommender/commit/d4aabccf3b372e58e6093da2b6d1a3597895dd8c)) + ### [4.2.5](https://www.github.com/googleapis/nodejs-recommender/compare/v4.2.4...v4.2.5) (2021-09-09) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index ea9964f6b78..e4ac81253df 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "4.2.5", + "version": "5.0.0", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index a590e0dfa86..26b5b1c0732 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^4.2.5" + "@google-cloud/recommender": "^5.0.0" }, "devDependencies": { "c8": "^7.0.0", From 84720cf6c4058e1737524e2a3cbb6c1da52c8e66 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 9 Jun 2022 22:12:19 +0200 Subject: [PATCH 147/158] chore(deps): update dependency jsdoc-fresh to v2 (#236) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [jsdoc-fresh](https://togithub.com/googleapis/jsdoc-fresh) | [`^1.0.1` -> `^2.0.0`](https://renovatebot.com/diffs/npm/jsdoc-fresh/1.1.1/2.0.0) | [![age](https://badges.renovateapi.com/packages/npm/jsdoc-fresh/2.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/jsdoc-fresh/2.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/jsdoc-fresh/2.0.0/compatibility-slim/1.1.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/jsdoc-fresh/2.0.0/confidence-slim/1.1.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
googleapis/jsdoc-fresh ### [`v2.0.0`](https://togithub.com/googleapis/jsdoc-fresh/blob/HEAD/CHANGELOG.md#​200-httpsgithubcomgoogleapisjsdoc-freshcomparev111v200-2022-05-18) [Compare Source](https://togithub.com/googleapis/jsdoc-fresh/compare/v1.1.1...v2.0.0) ##### ⚠ BREAKING CHANGES - update library to use Node 12 ([#​108](https://togithub.com/googleapis/jsdoc-fresh/issues/108)) ##### Build System - update library to use Node 12 ([#​108](https://togithub.com/googleapis/jsdoc-fresh/issues/108)) ([e61c223](https://togithub.com/googleapis/jsdoc-fresh/commit/e61c2238db8900e339e5fe7fb8aea09642290182)) ##### [1.1.1](https://www.github.com/googleapis/jsdoc-fresh/compare/v1.1.0...v1.1.1) (2021-08-11) ##### Bug Fixes - **build:** migrate to using main branch ([#​83](https://www.togithub.com/googleapis/jsdoc-fresh/issues/83)) ([9474adb](https://www.github.com/googleapis/jsdoc-fresh/commit/9474adbf0d559d319ff207397ba2be6b557999ac))
--- ### Configuration 📅 **Schedule**: Branch creation - "after 9am and before 3pm" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index e4ac81253df..ccc4ba24d02 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -36,7 +36,7 @@ "c8": "^7.0.0", "gts": "^3.1.0", "jsdoc": "^3.5.5", - "jsdoc-fresh": "^1.0.1", + "jsdoc-fresh": "^2.0.0", "jsdoc-region-tag": "^1.0.2", "linkinator": "^2.0.0", "mocha": "^9.2.2", From b56c781f15aa3e912c3c03782b11895a050b089d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 9 Jun 2022 22:36:16 +0200 Subject: [PATCH 148/158] chore(deps): update dependency jsdoc-region-tag to v2 (#237) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [jsdoc-region-tag](https://togithub.com/googleapis/jsdoc-region-tag) | [`^1.0.2` -> `^2.0.0`](https://renovatebot.com/diffs/npm/jsdoc-region-tag/1.3.1/2.0.0) | [![age](https://badges.renovateapi.com/packages/npm/jsdoc-region-tag/2.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/jsdoc-region-tag/2.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/jsdoc-region-tag/2.0.0/compatibility-slim/1.3.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/jsdoc-region-tag/2.0.0/confidence-slim/1.3.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
googleapis/jsdoc-region-tag ### [`v2.0.0`](https://togithub.com/googleapis/jsdoc-region-tag/blob/HEAD/CHANGELOG.md#​200-httpsgithubcomgoogleapisjsdoc-region-tagcomparev131v200-2022-05-20) [Compare Source](https://togithub.com/googleapis/jsdoc-region-tag/compare/v1.3.1...v2.0.0) ##### ⚠ BREAKING CHANGES - update library to use Node 12 ([#​107](https://togithub.com/googleapis/jsdoc-region-tag/issues/107)) ##### Build System - update library to use Node 12 ([#​107](https://togithub.com/googleapis/jsdoc-region-tag/issues/107)) ([5b51796](https://togithub.com/googleapis/jsdoc-region-tag/commit/5b51796771984cf8b978990025f14faa03c19923)) ##### [1.3.1](https://www.github.com/googleapis/jsdoc-region-tag/compare/v1.3.0...v1.3.1) (2021-08-11) ##### Bug Fixes - **build:** migrate to using main branch ([#​79](https://www.togithub.com/googleapis/jsdoc-region-tag/issues/79)) ([5050615](https://www.github.com/googleapis/jsdoc-region-tag/commit/50506150b7758592df5e389c6a5c3d82b3b20881))
--- ### Configuration 📅 **Schedule**: Branch creation - "after 9am and before 3pm" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index ccc4ba24d02..4993e70a32e 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -37,7 +37,7 @@ "gts": "^3.1.0", "jsdoc": "^3.5.5", "jsdoc-fresh": "^2.0.0", - "jsdoc-region-tag": "^1.0.2", + "jsdoc-region-tag": "^2.0.0", "linkinator": "^2.0.0", "mocha": "^9.2.2", "null-loader": "^4.0.0", From e2a9261a751abcfdd6420e625c0f1d2c8380b995 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 8 Jul 2022 22:56:13 +0200 Subject: [PATCH 149/158] chore(deps): update dependency linkinator to v4 (#238) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [linkinator](https://togithub.com/JustinBeckwith/linkinator) | [`^2.0.0` -> `^4.0.0`](https://renovatebot.com/diffs/npm/linkinator/2.16.2/4.0.0) | [![age](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/compatibility-slim/2.16.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/confidence-slim/2.16.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
JustinBeckwith/linkinator ### [`v4.0.0`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v4.0.0) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.1.0...v4.0.0) ##### Features - create new release with notes ([#​508](https://togithub.com/JustinBeckwith/linkinator/issues/508)) ([2cab633](https://togithub.com/JustinBeckwith/linkinator/commit/2cab633c9659eb10794a4bac06f8b0acdc3e2c0c)) ##### BREAKING CHANGES - The commits in [#​507](https://togithub.com/JustinBeckwith/linkinator/issues/507) and [#​506](https://togithub.com/JustinBeckwith/linkinator/issues/506) both had breaking changes. They included dropping support for Node.js 12.x and updating the CSV export to be streaming, and to use a new way of writing the CSV file. This is an empty to commit using the `BREAKING CHANGE` format in the commit message to ensure a release is triggered. ### [`v3.1.0`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.1.0) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.6...v3.1.0) ##### Features - allow --skip to be defined multiple times ([#​399](https://togithub.com/JustinBeckwith/linkinator/issues/399)) ([5ca5a46](https://togithub.com/JustinBeckwith/linkinator/commit/5ca5a461508e688de12e5ae6b4cfb6565f832ebf)) ### [`v3.0.6`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.6) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.5...v3.0.6) ##### Bug Fixes - **deps:** upgrade node-glob to v8 ([#​397](https://togithub.com/JustinBeckwith/linkinator/issues/397)) ([d334dc6](https://togithub.com/JustinBeckwith/linkinator/commit/d334dc6734cd7c2b73d7ed3dea0550a6c3072ad5)) ### [`v3.0.5`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.5) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.4...v3.0.5) ##### Bug Fixes - **deps:** upgrade to htmlparser2 v8.0.1 ([#​396](https://togithub.com/JustinBeckwith/linkinator/issues/396)) ([ba3b9a8](https://togithub.com/JustinBeckwith/linkinator/commit/ba3b9a8a9b19d39af6ed91790135e833b80c1eb6)) ### [`v3.0.4`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.4) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.3...v3.0.4) ##### Bug Fixes - **deps:** update dependency gaxios to v5 ([#​391](https://togithub.com/JustinBeckwith/linkinator/issues/391)) ([48af50e](https://togithub.com/JustinBeckwith/linkinator/commit/48af50e787731204aeb7eff41325c62291311e45)) ### [`v3.0.3`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.3) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.2...v3.0.3) ##### Bug Fixes - export getConfig from index ([#​371](https://togithub.com/JustinBeckwith/linkinator/issues/371)) ([0bc0355](https://togithub.com/JustinBeckwith/linkinator/commit/0bc0355c7e2ea457f247e6b52d1577b8c4ecb3a1)) ### [`v3.0.2`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.2) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.1...v3.0.2) ##### Bug Fixes - allow server root with trailing slash ([#​370](https://togithub.com/JustinBeckwith/linkinator/issues/370)) ([8adf6b0](https://togithub.com/JustinBeckwith/linkinator/commit/8adf6b025fda250e38461f1cdad40fe08c3b3b7c)) ### [`v3.0.1`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.1) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.0...v3.0.1) ##### Bug Fixes - decode path parts in local web server ([#​369](https://togithub.com/JustinBeckwith/linkinator/issues/369)) ([4696a0c](https://togithub.com/JustinBeckwith/linkinator/commit/4696a0c38c341b178ed815f47371fca955979feb)) ### [`v3.0.0`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.0) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v2.16.2...v3.0.0) ##### Bug Fixes - **deps:** update dependency chalk to v5 ([#​362](https://togithub.com/JustinBeckwith/linkinator/issues/362)) ([4b17a8d](https://togithub.com/JustinBeckwith/linkinator/commit/4b17a8d87b649eaf813428f8ee6955e1d21dae4f)) - feat!: convert to es modules, drop node 10 ([#​359](https://togithub.com/JustinBeckwith/linkinator/issues/359)) ([efee299](https://togithub.com/JustinBeckwith/linkinator/commit/efee299ab8a805accef751eecf8538915a4e7783)), closes [#​359](https://togithub.com/JustinBeckwith/linkinator/issues/359) ##### BREAKING CHANGES - this module now requires node.js 12 and above, and has moved to es modules by default.
--- ### Configuration 📅 **Schedule**: Branch creation - "after 9am and before 3pm" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-recommender). --- packages/google-cloud-recommender/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 4993e70a32e..4185c58d012 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -38,7 +38,7 @@ "jsdoc": "^3.5.5", "jsdoc-fresh": "^2.0.0", "jsdoc-region-tag": "^2.0.0", - "linkinator": "^2.0.0", + "linkinator": "^4.0.0", "mocha": "^9.2.2", "null-loader": "^4.0.0", "pack-n-play": "^1.0.0-2", From 26b772e23e932e598e8bb0f1dad1401e2f66df85 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 23 Aug 2022 00:28:12 +0000 Subject: [PATCH 150/158] fix: change import long to require (#239) Source-Link: https://github.com/googleapis/synthtool/commit/d229a1258999f599a90a9b674a1c5541e00db588 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:74ab2b3c71ef27e6d8b69b1d0a0c9d31447777b79ac3cd4be82c265b45f37e5e --- .../protos/protos.d.ts | 466 ++- .../google-cloud-recommender/protos/protos.js | 3290 ++++++++++++----- .../protos/protos.json | 24 + 3 files changed, 2748 insertions(+), 1032 deletions(-) diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index 15bc048e153..842a6eedf55 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import * as Long from "long"; +import Long = require("long"); import {protobuf as $protobuf} from "google-gax"; /** Namespace google. */ export namespace google { @@ -174,6 +174,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Insight + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace Insight { @@ -266,6 +273,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RecommendationReference + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Category enum. */ @@ -372,6 +386,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for InsightStateInfo + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace InsightStateInfo { @@ -527,6 +548,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Recommendation + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace Recommendation { @@ -619,6 +647,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for InsightReference + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } } @@ -710,6 +745,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RecommendationContent + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of an OperationGroup. */ @@ -800,6 +842,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for OperationGroup + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of an Operation. */ @@ -947,6 +996,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Operation + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a ValueMatcher. */ @@ -1040,6 +1096,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ValueMatcher + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a CostProjection. */ @@ -1136,6 +1199,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CostProjection + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of an Impact. */ @@ -1235,6 +1305,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Impact + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace Impact { @@ -1343,6 +1420,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RecommendationStateInfo + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace RecommendationStateInfo { @@ -1494,56 +1578,56 @@ export namespace google { namespace Recommender { /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#listInsights}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|listInsights}. * @param error Error, if any * @param [response] ListInsightsResponse */ type ListInsightsCallback = (error: (Error|null), response?: google.cloud.recommender.v1.ListInsightsResponse) => void; /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#getInsight}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|getInsight}. * @param error Error, if any * @param [response] Insight */ type GetInsightCallback = (error: (Error|null), response?: google.cloud.recommender.v1.Insight) => void; /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#markInsightAccepted}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|markInsightAccepted}. * @param error Error, if any * @param [response] Insight */ type MarkInsightAcceptedCallback = (error: (Error|null), response?: google.cloud.recommender.v1.Insight) => void; /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#listRecommendations}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|listRecommendations}. * @param error Error, if any * @param [response] ListRecommendationsResponse */ type ListRecommendationsCallback = (error: (Error|null), response?: google.cloud.recommender.v1.ListRecommendationsResponse) => void; /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#getRecommendation}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|getRecommendation}. * @param error Error, if any * @param [response] Recommendation */ type GetRecommendationCallback = (error: (Error|null), response?: google.cloud.recommender.v1.Recommendation) => void; /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationClaimed}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|markRecommendationClaimed}. * @param error Error, if any * @param [response] Recommendation */ type MarkRecommendationClaimedCallback = (error: (Error|null), response?: google.cloud.recommender.v1.Recommendation) => void; /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationSucceeded}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|markRecommendationSucceeded}. * @param error Error, if any * @param [response] Recommendation */ type MarkRecommendationSucceededCallback = (error: (Error|null), response?: google.cloud.recommender.v1.Recommendation) => void; /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationFailed}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|markRecommendationFailed}. * @param error Error, if any * @param [response] Recommendation */ @@ -1656,6 +1740,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListInsightsRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a ListInsightsResponse. */ @@ -1752,6 +1843,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListInsightsResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a GetInsightRequest. */ @@ -1842,6 +1940,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GetInsightRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a MarkInsightAcceptedRequest. */ @@ -1944,6 +2049,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MarkInsightAcceptedRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a ListRecommendationsRequest. */ @@ -2052,6 +2164,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListRecommendationsRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a ListRecommendationsResponse. */ @@ -2148,6 +2267,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListRecommendationsResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a GetRecommendationRequest. */ @@ -2238,6 +2364,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GetRecommendationRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a MarkRecommendationClaimedRequest. */ @@ -2340,6 +2473,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MarkRecommendationClaimedRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a MarkRecommendationSucceededRequest. */ @@ -2442,6 +2582,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MarkRecommendationSucceededRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a MarkRecommendationFailedRequest. */ @@ -2544,6 +2691,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MarkRecommendationFailedRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } } } @@ -2676,6 +2830,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ResourceDescriptor + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace ResourceDescriptor { @@ -2788,6 +2949,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ResourceReference + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a Http. */ @@ -2884,6 +3052,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Http + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a HttpRule. */ @@ -3031,6 +3206,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for HttpRule + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a CustomHttpPattern. */ @@ -3127,6 +3309,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CustomHttpPattern + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** FieldBehavior enum. */ @@ -3233,6 +3422,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for FileDescriptorSet + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a FileDescriptorProto. */ @@ -3273,6 +3469,9 @@ export namespace google { /** FileDescriptorProto syntax */ syntax?: (string|null); + + /** FileDescriptorProto edition */ + edition?: (string|null); } /** Represents a FileDescriptorProto. */ @@ -3320,6 +3519,9 @@ export namespace google { /** FileDescriptorProto syntax. */ public syntax: string; + /** FileDescriptorProto edition. */ + public edition: string; + /** * Creates a new FileDescriptorProto instance using the specified properties. * @param [properties] Properties to set @@ -3389,6 +3591,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for FileDescriptorProto + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a DescriptorProto. */ @@ -3533,6 +3742,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DescriptorProto + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace DescriptorProto { @@ -3637,6 +3853,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ExtensionRange + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a ReservedRange. */ @@ -3733,6 +3956,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ReservedRange + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } } @@ -3824,6 +4054,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ExtensionRangeOptions + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a FieldDescriptorProto. */ @@ -3974,6 +4211,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for FieldDescriptorProto + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace FieldDescriptorProto { @@ -4102,6 +4346,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for OneofDescriptorProto + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of an EnumDescriptorProto. */ @@ -4216,6 +4467,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for EnumDescriptorProto + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace EnumDescriptorProto { @@ -4314,6 +4572,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for EnumReservedRange + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } } @@ -4417,6 +4682,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for EnumValueDescriptorProto + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a ServiceDescriptorProto. */ @@ -4519,6 +4791,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ServiceDescriptorProto + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a MethodDescriptorProto. */ @@ -4639,6 +4918,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MethodDescriptorProto + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a FileOptions. */ @@ -4852,6 +5138,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for FileOptions + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace FileOptions { @@ -4979,6 +5272,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MessageOptions + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a FieldOptions. */ @@ -4996,6 +5296,9 @@ export namespace google { /** FieldOptions lazy */ lazy?: (boolean|null); + /** FieldOptions unverifiedLazy */ + unverifiedLazy?: (boolean|null); + /** FieldOptions deprecated */ deprecated?: (boolean|null); @@ -5033,6 +5336,9 @@ export namespace google { /** FieldOptions lazy. */ public lazy: boolean; + /** FieldOptions unverifiedLazy. */ + public unverifiedLazy: boolean; + /** FieldOptions deprecated. */ public deprecated: boolean; @@ -5111,6 +5417,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for FieldOptions + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace FieldOptions { @@ -5218,6 +5531,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for OneofOptions + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of an EnumOptions. */ @@ -5320,6 +5640,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for EnumOptions + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of an EnumValueOptions. */ @@ -5416,6 +5743,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for EnumValueOptions + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a ServiceOptions. */ @@ -5518,6 +5852,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ServiceOptions + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a MethodOptions. */ @@ -5626,6 +5967,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MethodOptions + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace MethodOptions { @@ -5762,6 +6110,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for UninterpretedOption + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace UninterpretedOption { @@ -5860,6 +6215,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for NamePart + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } } @@ -5951,6 +6313,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for SourceCodeInfo + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace SourceCodeInfo { @@ -6067,6 +6436,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Location + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } } @@ -6158,6 +6534,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GeneratedCodeInfo + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } namespace GeneratedCodeInfo { @@ -6176,6 +6559,9 @@ export namespace google { /** Annotation end */ end?: (number|null); + + /** Annotation semantic */ + semantic?: (google.protobuf.GeneratedCodeInfo.Annotation.Semantic|keyof typeof google.protobuf.GeneratedCodeInfo.Annotation.Semantic|null); } /** Represents an Annotation. */ @@ -6199,6 +6585,9 @@ export namespace google { /** Annotation end. */ public end: number; + /** Annotation semantic. */ + public semantic: (google.protobuf.GeneratedCodeInfo.Annotation.Semantic|keyof typeof google.protobuf.GeneratedCodeInfo.Annotation.Semantic); + /** * Creates a new Annotation instance using the specified properties. * @param [properties] Properties to set @@ -6268,6 +6657,23 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Annotation + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace Annotation { + + /** Semantic enum. */ + enum Semantic { + NONE = 0, + SET = 1, + ALIAS = 2 + } } } @@ -6365,6 +6771,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Duration + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a Struct. */ @@ -6455,6 +6868,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Struct + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a Value. */ @@ -6578,6 +6998,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Value + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** NullValue enum. */ @@ -6673,6 +7100,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ListValue + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a Timestamp. */ @@ -6769,6 +7203,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Timestamp + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } } @@ -6875,6 +7316,13 @@ export namespace google { * @returns JSON object */ public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Money + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } } } diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index e3980eb4725..a3450c86bbe 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -272,43 +272,54 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - message.description = reader.string(); - break; - case 9: - if (!(message.targetResources && message.targetResources.length)) - message.targetResources = []; - message.targetResources.push(reader.string()); - break; - case 10: - message.insightSubtype = reader.string(); - break; - case 3: - message.content = $root.google.protobuf.Struct.decode(reader, reader.uint32()); - break; - case 4: - message.lastRefreshTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); - break; - case 5: - message.observationPeriod = $root.google.protobuf.Duration.decode(reader, reader.uint32()); - break; - case 6: - message.stateInfo = $root.google.cloud.recommender.v1.InsightStateInfo.decode(reader, reader.uint32()); - break; - case 7: - message.category = reader.int32(); - break; - case 11: - message.etag = reader.string(); - break; - case 8: - if (!(message.associatedRecommendations && message.associatedRecommendations.length)) - message.associatedRecommendations = []; - message.associatedRecommendations.push($root.google.cloud.recommender.v1.Insight.RecommendationReference.decode(reader, reader.uint32())); - break; + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.description = reader.string(); + break; + } + case 9: { + if (!(message.targetResources && message.targetResources.length)) + message.targetResources = []; + message.targetResources.push(reader.string()); + break; + } + case 10: { + message.insightSubtype = reader.string(); + break; + } + case 3: { + message.content = $root.google.protobuf.Struct.decode(reader, reader.uint32()); + break; + } + case 4: { + message.lastRefreshTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 5: { + message.observationPeriod = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } + case 6: { + message.stateInfo = $root.google.cloud.recommender.v1.InsightStateInfo.decode(reader, reader.uint32()); + break; + } + case 7: { + message.category = reader.int32(); + break; + } + case 11: { + message.etag = reader.string(); + break; + } + case 8: { + if (!(message.associatedRecommendations && message.associatedRecommendations.length)) + message.associatedRecommendations = []; + message.associatedRecommendations.push($root.google.cloud.recommender.v1.Insight.RecommendationReference.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -558,6 +569,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for Insight + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.Insight + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Insight.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.Insight"; + }; + Insight.RecommendationReference = (function() { /** @@ -650,9 +676,10 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.recommendation = reader.string(); - break; + case 1: { + message.recommendation = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -742,6 +769,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for RecommendationReference + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.Insight.RecommendationReference + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RecommendationReference.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.Insight.RecommendationReference"; + }; + return RecommendationReference; })(); @@ -873,31 +915,33 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.state = reader.int32(); - break; - case 2: - if (message.stateMetadata === $util.emptyObject) - message.stateMetadata = {}; - var end2 = reader.uint32() + reader.pos; - key = ""; - value = ""; - while (reader.pos < end2) { - var tag2 = reader.uint32(); - switch (tag2 >>> 3) { - case 1: - key = reader.string(); - break; - case 2: - value = reader.string(); - break; - default: - reader.skipType(tag2 & 7); - break; + case 1: { + message.state = reader.int32(); + break; + } + case 2: { + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } } + message.stateMetadata[key] = value; + break; } - message.stateMetadata[key] = value; - break; default: reader.skipType(tag & 7); break; @@ -1033,6 +1077,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for InsightStateInfo + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.InsightStateInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + InsightStateInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.InsightStateInfo"; + }; + /** * State enum. * @name google.cloud.recommender.v1.InsightStateInfo.State @@ -1249,40 +1308,50 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - message.description = reader.string(); - break; - case 12: - message.recommenderSubtype = reader.string(); - break; - case 4: - message.lastRefreshTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); - break; - case 5: - message.primaryImpact = $root.google.cloud.recommender.v1.Impact.decode(reader, reader.uint32()); - break; - case 6: - if (!(message.additionalImpact && message.additionalImpact.length)) - message.additionalImpact = []; - message.additionalImpact.push($root.google.cloud.recommender.v1.Impact.decode(reader, reader.uint32())); - break; - case 7: - message.content = $root.google.cloud.recommender.v1.RecommendationContent.decode(reader, reader.uint32()); - break; - case 10: - message.stateInfo = $root.google.cloud.recommender.v1.RecommendationStateInfo.decode(reader, reader.uint32()); - break; - case 11: - message.etag = reader.string(); - break; - case 14: - if (!(message.associatedInsights && message.associatedInsights.length)) - message.associatedInsights = []; - message.associatedInsights.push($root.google.cloud.recommender.v1.Recommendation.InsightReference.decode(reader, reader.uint32())); - break; + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.description = reader.string(); + break; + } + case 12: { + message.recommenderSubtype = reader.string(); + break; + } + case 4: { + message.lastRefreshTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 5: { + message.primaryImpact = $root.google.cloud.recommender.v1.Impact.decode(reader, reader.uint32()); + break; + } + case 6: { + if (!(message.additionalImpact && message.additionalImpact.length)) + message.additionalImpact = []; + message.additionalImpact.push($root.google.cloud.recommender.v1.Impact.decode(reader, reader.uint32())); + break; + } + case 7: { + message.content = $root.google.cloud.recommender.v1.RecommendationContent.decode(reader, reader.uint32()); + break; + } + case 10: { + message.stateInfo = $root.google.cloud.recommender.v1.RecommendationStateInfo.decode(reader, reader.uint32()); + break; + } + case 11: { + message.etag = reader.string(); + break; + } + case 14: { + if (!(message.associatedInsights && message.associatedInsights.length)) + message.associatedInsights = []; + message.associatedInsights.push($root.google.cloud.recommender.v1.Recommendation.InsightReference.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -1501,6 +1570,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for Recommendation + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.Recommendation + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Recommendation.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.Recommendation"; + }; + Recommendation.InsightReference = (function() { /** @@ -1593,9 +1677,10 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.insight = reader.string(); - break; + case 1: { + message.insight = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -1685,6 +1770,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for InsightReference + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.Recommendation.InsightReference + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + InsightReference.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.Recommendation.InsightReference"; + }; + return InsightReference; })(); @@ -1785,11 +1885,12 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 2: - if (!(message.operationGroups && message.operationGroups.length)) - message.operationGroups = []; - message.operationGroups.push($root.google.cloud.recommender.v1.OperationGroup.decode(reader, reader.uint32())); - break; + case 2: { + if (!(message.operationGroups && message.operationGroups.length)) + message.operationGroups = []; + message.operationGroups.push($root.google.cloud.recommender.v1.OperationGroup.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -1896,6 +1997,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for RecommendationContent + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.RecommendationContent + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RecommendationContent.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.RecommendationContent"; + }; + return RecommendationContent; })(); @@ -1993,11 +2109,12 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - if (!(message.operations && message.operations.length)) - message.operations = []; - message.operations.push($root.google.cloud.recommender.v1.Operation.decode(reader, reader.uint32())); - break; + case 1: { + if (!(message.operations && message.operations.length)) + message.operations = []; + message.operations.push($root.google.cloud.recommender.v1.Operation.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -2104,6 +2221,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for OperationGroup + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.OperationGroup + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + OperationGroup.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.OperationGroup"; + }; + return OperationGroup; })(); @@ -2320,74 +2452,84 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.action = reader.string(); - break; - case 2: - message.resourceType = reader.string(); - break; - case 3: - message.resource = reader.string(); - break; - case 4: - message.path = reader.string(); - break; - case 5: - message.sourceResource = reader.string(); - break; - case 6: - message.sourcePath = reader.string(); - break; - case 7: - message.value = $root.google.protobuf.Value.decode(reader, reader.uint32()); - break; - case 10: - message.valueMatcher = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); - break; - case 8: - if (message.pathFilters === $util.emptyObject) - message.pathFilters = {}; - var end2 = reader.uint32() + reader.pos; - key = ""; - value = null; - while (reader.pos < end2) { - var tag2 = reader.uint32(); - switch (tag2 >>> 3) { - case 1: - key = reader.string(); - break; - case 2: - value = $root.google.protobuf.Value.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag2 & 7); - break; + case 1: { + message.action = reader.string(); + break; + } + case 2: { + message.resourceType = reader.string(); + break; + } + case 3: { + message.resource = reader.string(); + break; + } + case 4: { + message.path = reader.string(); + break; + } + case 5: { + message.sourceResource = reader.string(); + break; + } + case 6: { + message.sourcePath = reader.string(); + break; + } + case 7: { + message.value = $root.google.protobuf.Value.decode(reader, reader.uint32()); + break; + } + case 10: { + message.valueMatcher = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); + break; + } + case 8: { + if (message.pathFilters === $util.emptyObject) + message.pathFilters = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = null; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = $root.google.protobuf.Value.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag2 & 7); + break; + } } + message.pathFilters[key] = value; + break; } - message.pathFilters[key] = value; - break; - case 11: - if (message.pathValueMatchers === $util.emptyObject) - message.pathValueMatchers = {}; - var end2 = reader.uint32() + reader.pos; - key = ""; - value = null; - while (reader.pos < end2) { - var tag2 = reader.uint32(); - switch (tag2 >>> 3) { - case 1: - key = reader.string(); - break; - case 2: - value = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag2 & 7); - break; + case 11: { + if (message.pathValueMatchers === $util.emptyObject) + message.pathValueMatchers = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = null; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = $root.google.cloud.recommender.v1.ValueMatcher.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag2 & 7); + break; + } } + message.pathValueMatchers[key] = value; + break; } - message.pathValueMatchers[key] = value; - break; default: reader.skipType(tag & 7); break; @@ -2612,6 +2754,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for Operation + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.Operation + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Operation.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.Operation"; + }; + return Operation; })(); @@ -2721,9 +2878,10 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.matchesPattern = reader.string(); - break; + case 1: { + message.matchesPattern = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -2817,6 +2975,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ValueMatcher + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.ValueMatcher + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ValueMatcher.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.ValueMatcher"; + }; + return ValueMatcher; })(); @@ -2923,12 +3096,14 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.cost = $root.google.type.Money.decode(reader, reader.uint32()); - break; - case 2: - message.duration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); - break; + case 1: { + message.cost = $root.google.type.Money.decode(reader, reader.uint32()); + break; + } + case 2: { + message.duration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -3037,6 +3212,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for CostProjection + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.CostProjection + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CostProjection.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.CostProjection"; + }; + return CostProjection; })(); @@ -3157,12 +3347,14 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.category = reader.int32(); - break; - case 100: - message.costProjection = $root.google.cloud.recommender.v1.CostProjection.decode(reader, reader.uint32()); - break; + case 1: { + message.category = reader.int32(); + break; + } + case 100: { + message.costProjection = $root.google.cloud.recommender.v1.CostProjection.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -3299,6 +3491,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for Impact + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.Impact + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Impact.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.Impact"; + }; + /** * Category enum. * @name google.cloud.recommender.v1.Impact.Category @@ -3427,31 +3634,33 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.state = reader.int32(); - break; - case 2: - if (message.stateMetadata === $util.emptyObject) - message.stateMetadata = {}; - var end2 = reader.uint32() + reader.pos; - key = ""; - value = ""; - while (reader.pos < end2) { - var tag2 = reader.uint32(); - switch (tag2 >>> 3) { - case 1: - key = reader.string(); - break; - case 2: - value = reader.string(); - break; - default: - reader.skipType(tag2 & 7); - break; + case 1: { + message.state = reader.int32(); + break; + } + case 2: { + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } } + message.stateMetadata[key] = value; + break; } - message.stateMetadata[key] = value; - break; default: reader.skipType(tag & 7); break; @@ -3598,12 +3807,27 @@ }; /** - * State enum. - * @name google.cloud.recommender.v1.RecommendationStateInfo.State - * @enum {number} - * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value - * @property {number} ACTIVE=1 ACTIVE value - * @property {number} CLAIMED=6 CLAIMED value + * Gets the default type url for RecommendationStateInfo + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.RecommendationStateInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RecommendationStateInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.RecommendationStateInfo"; + }; + + /** + * State enum. + * @name google.cloud.recommender.v1.RecommendationStateInfo.State + * @enum {number} + * @property {number} STATE_UNSPECIFIED=0 STATE_UNSPECIFIED value + * @property {number} ACTIVE=1 ACTIVE value + * @property {number} CLAIMED=6 CLAIMED value * @property {number} SUCCEEDED=3 SUCCEEDED value * @property {number} FAILED=4 FAILED value * @property {number} DISMISSED=5 DISMISSED value @@ -3655,7 +3879,7 @@ }; /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#listInsights}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|listInsights}. * @memberof google.cloud.recommender.v1.Recommender * @typedef ListInsightsCallback * @type {function} @@ -3688,7 +3912,7 @@ */ /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#getInsight}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|getInsight}. * @memberof google.cloud.recommender.v1.Recommender * @typedef GetInsightCallback * @type {function} @@ -3721,7 +3945,7 @@ */ /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#markInsightAccepted}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|markInsightAccepted}. * @memberof google.cloud.recommender.v1.Recommender * @typedef MarkInsightAcceptedCallback * @type {function} @@ -3754,7 +3978,7 @@ */ /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#listRecommendations}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|listRecommendations}. * @memberof google.cloud.recommender.v1.Recommender * @typedef ListRecommendationsCallback * @type {function} @@ -3787,7 +4011,7 @@ */ /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#getRecommendation}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|getRecommendation}. * @memberof google.cloud.recommender.v1.Recommender * @typedef GetRecommendationCallback * @type {function} @@ -3820,7 +4044,7 @@ */ /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationClaimed}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|markRecommendationClaimed}. * @memberof google.cloud.recommender.v1.Recommender * @typedef MarkRecommendationClaimedCallback * @type {function} @@ -3853,7 +4077,7 @@ */ /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationSucceeded}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|markRecommendationSucceeded}. * @memberof google.cloud.recommender.v1.Recommender * @typedef MarkRecommendationSucceededCallback * @type {function} @@ -3886,7 +4110,7 @@ */ /** - * Callback as used by {@link google.cloud.recommender.v1.Recommender#markRecommendationFailed}. + * Callback as used by {@link google.cloud.recommender.v1.Recommender|markRecommendationFailed}. * @memberof google.cloud.recommender.v1.Recommender * @typedef MarkRecommendationFailedCallback * @type {function} @@ -4046,18 +4270,22 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.parent = reader.string(); - break; - case 2: - message.pageSize = reader.int32(); - break; - case 3: - message.pageToken = reader.string(); - break; - case 4: - message.filter = reader.string(); - break; + case 1: { + message.parent = reader.string(); + break; + } + case 2: { + message.pageSize = reader.int32(); + break; + } + case 3: { + message.pageToken = reader.string(); + break; + } + case 4: { + message.filter = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -4172,6 +4400,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ListInsightsRequest + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.ListInsightsRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ListInsightsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.ListInsightsRequest"; + }; + return ListInsightsRequest; })(); @@ -4280,14 +4523,16 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - if (!(message.insights && message.insights.length)) - message.insights = []; - message.insights.push($root.google.cloud.recommender.v1.Insight.decode(reader, reader.uint32())); - break; - case 2: - message.nextPageToken = reader.string(); - break; + case 1: { + if (!(message.insights && message.insights.length)) + message.insights = []; + message.insights.push($root.google.cloud.recommender.v1.Insight.decode(reader, reader.uint32())); + break; + } + case 2: { + message.nextPageToken = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -4403,6 +4648,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ListInsightsResponse + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.ListInsightsResponse + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ListInsightsResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.ListInsightsResponse"; + }; + return ListInsightsResponse; })(); @@ -4498,9 +4758,10 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; + case 1: { + message.name = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -4590,6 +4851,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for GetInsightRequest + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.GetInsightRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GetInsightRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.GetInsightRequest"; + }; + return GetInsightRequest; })(); @@ -4709,34 +4985,37 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - if (message.stateMetadata === $util.emptyObject) - message.stateMetadata = {}; - var end2 = reader.uint32() + reader.pos; - key = ""; - value = ""; - while (reader.pos < end2) { - var tag2 = reader.uint32(); - switch (tag2 >>> 3) { - case 1: - key = reader.string(); - break; - case 2: - value = reader.string(); - break; - default: - reader.skipType(tag2 & 7); - break; + case 1: { + message.name = reader.string(); + break; + } + case 2: { + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } } + message.stateMetadata[key] = value; + break; + } + case 3: { + message.etag = reader.string(); + break; } - message.stateMetadata[key] = value; - break; - case 3: - message.etag = reader.string(); - break; default: reader.skipType(tag & 7); break; @@ -4858,6 +5137,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for MarkInsightAcceptedRequest + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.MarkInsightAcceptedRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MarkInsightAcceptedRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.MarkInsightAcceptedRequest"; + }; + return MarkInsightAcceptedRequest; })(); @@ -4986,18 +5280,22 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.parent = reader.string(); - break; - case 2: - message.pageSize = reader.int32(); - break; - case 3: - message.pageToken = reader.string(); - break; - case 5: - message.filter = reader.string(); - break; + case 1: { + message.parent = reader.string(); + break; + } + case 2: { + message.pageSize = reader.int32(); + break; + } + case 3: { + message.pageToken = reader.string(); + break; + } + case 5: { + message.filter = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -5112,6 +5410,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ListRecommendationsRequest + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.ListRecommendationsRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ListRecommendationsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.ListRecommendationsRequest"; + }; + return ListRecommendationsRequest; })(); @@ -5220,14 +5533,16 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - if (!(message.recommendations && message.recommendations.length)) - message.recommendations = []; - message.recommendations.push($root.google.cloud.recommender.v1.Recommendation.decode(reader, reader.uint32())); - break; - case 2: - message.nextPageToken = reader.string(); - break; + case 1: { + if (!(message.recommendations && message.recommendations.length)) + message.recommendations = []; + message.recommendations.push($root.google.cloud.recommender.v1.Recommendation.decode(reader, reader.uint32())); + break; + } + case 2: { + message.nextPageToken = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -5343,6 +5658,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ListRecommendationsResponse + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.ListRecommendationsResponse + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ListRecommendationsResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.ListRecommendationsResponse"; + }; + return ListRecommendationsResponse; })(); @@ -5438,9 +5768,10 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; + case 1: { + message.name = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -5530,6 +5861,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for GetRecommendationRequest + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.GetRecommendationRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GetRecommendationRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.GetRecommendationRequest"; + }; + return GetRecommendationRequest; })(); @@ -5649,34 +5995,37 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - if (message.stateMetadata === $util.emptyObject) - message.stateMetadata = {}; - var end2 = reader.uint32() + reader.pos; - key = ""; - value = ""; - while (reader.pos < end2) { - var tag2 = reader.uint32(); - switch (tag2 >>> 3) { - case 1: - key = reader.string(); - break; - case 2: - value = reader.string(); - break; - default: - reader.skipType(tag2 & 7); - break; + case 1: { + message.name = reader.string(); + break; + } + case 2: { + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } } + message.stateMetadata[key] = value; + break; + } + case 3: { + message.etag = reader.string(); + break; } - message.stateMetadata[key] = value; - break; - case 3: - message.etag = reader.string(); - break; default: reader.skipType(tag & 7); break; @@ -5798,6 +6147,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for MarkRecommendationClaimedRequest + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.MarkRecommendationClaimedRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MarkRecommendationClaimedRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.MarkRecommendationClaimedRequest"; + }; + return MarkRecommendationClaimedRequest; })(); @@ -5917,34 +6281,37 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - if (message.stateMetadata === $util.emptyObject) - message.stateMetadata = {}; - var end2 = reader.uint32() + reader.pos; - key = ""; - value = ""; - while (reader.pos < end2) { - var tag2 = reader.uint32(); - switch (tag2 >>> 3) { - case 1: - key = reader.string(); - break; - case 2: - value = reader.string(); - break; - default: - reader.skipType(tag2 & 7); - break; + case 1: { + message.name = reader.string(); + break; + } + case 2: { + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } } + message.stateMetadata[key] = value; + break; + } + case 3: { + message.etag = reader.string(); + break; } - message.stateMetadata[key] = value; - break; - case 3: - message.etag = reader.string(); - break; default: reader.skipType(tag & 7); break; @@ -6066,6 +6433,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for MarkRecommendationSucceededRequest + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.MarkRecommendationSucceededRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MarkRecommendationSucceededRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.MarkRecommendationSucceededRequest"; + }; + return MarkRecommendationSucceededRequest; })(); @@ -6185,34 +6567,37 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - if (message.stateMetadata === $util.emptyObject) - message.stateMetadata = {}; - var end2 = reader.uint32() + reader.pos; - key = ""; - value = ""; - while (reader.pos < end2) { - var tag2 = reader.uint32(); - switch (tag2 >>> 3) { - case 1: - key = reader.string(); - break; - case 2: - value = reader.string(); - break; - default: - reader.skipType(tag2 & 7); - break; + case 1: { + message.name = reader.string(); + break; + } + case 2: { + if (message.stateMetadata === $util.emptyObject) + message.stateMetadata = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = ""; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = reader.string(); + break; + default: + reader.skipType(tag2 & 7); + break; + } } + message.stateMetadata[key] = value; + break; + } + case 3: { + message.etag = reader.string(); + break; } - message.stateMetadata[key] = value; - break; - case 3: - message.etag = reader.string(); - break; default: reader.skipType(tag & 7); break; @@ -6334,6 +6719,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for MarkRecommendationFailedRequest + * @function getTypeUrl + * @memberof google.cloud.recommender.v1.MarkRecommendationFailedRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MarkRecommendationFailedRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.recommender.v1.MarkRecommendationFailedRequest"; + }; + return MarkRecommendationFailedRequest; })(); @@ -6520,36 +6920,43 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.type = reader.string(); - break; - case 2: - if (!(message.pattern && message.pattern.length)) - message.pattern = []; - message.pattern.push(reader.string()); - break; - case 3: - message.nameField = reader.string(); - break; - case 4: - message.history = reader.int32(); - break; - case 5: - message.plural = reader.string(); - break; - case 6: - message.singular = reader.string(); - break; - case 10: - if (!(message.style && message.style.length)) - message.style = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) + case 1: { + message.type = reader.string(); + break; + } + case 2: { + if (!(message.pattern && message.pattern.length)) + message.pattern = []; + message.pattern.push(reader.string()); + break; + } + case 3: { + message.nameField = reader.string(); + break; + } + case 4: { + message.history = reader.int32(); + break; + } + case 5: { + message.plural = reader.string(); + break; + } + case 6: { + message.singular = reader.string(); + break; + } + case 10: { + if (!(message.style && message.style.length)) + message.style = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.style.push(reader.int32()); + } else message.style.push(reader.int32()); - } else - message.style.push(reader.int32()); - break; + break; + } default: reader.skipType(tag & 7); break; @@ -6747,6 +7154,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ResourceDescriptor + * @function getTypeUrl + * @memberof google.api.ResourceDescriptor + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ResourceDescriptor.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.api.ResourceDescriptor"; + }; + /** * History enum. * @name google.api.ResourceDescriptor.History @@ -6883,12 +7305,14 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.type = reader.string(); - break; - case 2: - message.childType = reader.string(); - break; + case 1: { + message.type = reader.string(); + break; + } + case 2: { + message.childType = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -6987,6 +7411,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ResourceReference + * @function getTypeUrl + * @memberof google.api.ResourceReference + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ResourceReference.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.api.ResourceReference"; + }; + return ResourceReference; })(); @@ -7095,14 +7534,16 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - if (!(message.rules && message.rules.length)) - message.rules = []; - message.rules.push($root.google.api.HttpRule.decode(reader, reader.uint32())); - break; - case 2: - message.fullyDecodeReservedExpansion = reader.bool(); - break; + case 1: { + if (!(message.rules && message.rules.length)) + message.rules = []; + message.rules.push($root.google.api.HttpRule.decode(reader, reader.uint32())); + break; + } + case 2: { + message.fullyDecodeReservedExpansion = reader.bool(); + break; + } default: reader.skipType(tag & 7); break; @@ -7218,6 +7659,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for Http + * @function getTypeUrl + * @memberof google.api.Http + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Http.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.api.Http"; + }; + return Http; })(); @@ -7428,38 +7884,48 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.selector = reader.string(); - break; - case 2: - message.get = reader.string(); - break; - case 3: - message.put = reader.string(); - break; - case 4: - message.post = reader.string(); - break; - case 5: - message["delete"] = reader.string(); - break; - case 6: - message.patch = reader.string(); - break; - case 8: - message.custom = $root.google.api.CustomHttpPattern.decode(reader, reader.uint32()); - break; - case 7: - message.body = reader.string(); - break; - case 12: - message.responseBody = reader.string(); - break; - case 11: - if (!(message.additionalBindings && message.additionalBindings.length)) - message.additionalBindings = []; - message.additionalBindings.push($root.google.api.HttpRule.decode(reader, reader.uint32())); - break; + case 1: { + message.selector = reader.string(); + break; + } + case 2: { + message.get = reader.string(); + break; + } + case 3: { + message.put = reader.string(); + break; + } + case 4: { + message.post = reader.string(); + break; + } + case 5: { + message["delete"] = reader.string(); + break; + } + case 6: { + message.patch = reader.string(); + break; + } + case 8: { + message.custom = $root.google.api.CustomHttpPattern.decode(reader, reader.uint32()); + break; + } + case 7: { + message.body = reader.string(); + break; + } + case 12: { + message.responseBody = reader.string(); + break; + } + case 11: { + if (!(message.additionalBindings && message.additionalBindings.length)) + message.additionalBindings = []; + message.additionalBindings.push($root.google.api.HttpRule.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -7681,6 +8147,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for HttpRule + * @function getTypeUrl + * @memberof google.api.HttpRule + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + HttpRule.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.api.HttpRule"; + }; + return HttpRule; })(); @@ -7787,12 +8268,14 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.kind = reader.string(); - break; - case 2: - message.path = reader.string(); - break; + case 1: { + message.kind = reader.string(); + break; + } + case 2: { + message.path = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -7891,6 +8374,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for CustomHttpPattern + * @function getTypeUrl + * @memberof google.api.CustomHttpPattern + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CustomHttpPattern.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.api.CustomHttpPattern"; + }; + return CustomHttpPattern; })(); @@ -8026,11 +8524,12 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - if (!(message.file && message.file.length)) - message.file = []; - message.file.push($root.google.protobuf.FileDescriptorProto.decode(reader, reader.uint32())); - break; + case 1: { + if (!(message.file && message.file.length)) + message.file = []; + message.file.push($root.google.protobuf.FileDescriptorProto.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -8137,6 +8636,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for FileDescriptorSet + * @function getTypeUrl + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + FileDescriptorSet.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.FileDescriptorSet"; + }; + return FileDescriptorSet; })(); @@ -8158,6 +8672,7 @@ * @property {google.protobuf.IFileOptions|null} [options] FileDescriptorProto options * @property {google.protobuf.ISourceCodeInfo|null} [sourceCodeInfo] FileDescriptorProto sourceCodeInfo * @property {string|null} [syntax] FileDescriptorProto syntax + * @property {string|null} [edition] FileDescriptorProto edition */ /** @@ -8278,6 +8793,14 @@ */ FileDescriptorProto.prototype.syntax = ""; + /** + * FileDescriptorProto edition. + * @member {string} edition + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.edition = ""; + /** * Creates a new FileDescriptorProto instance using the specified properties. * @function create @@ -8333,6 +8856,8 @@ writer.uint32(/* id 11, wireType 0 =*/88).int32(message.weakDependency[i]); if (message.syntax != null && Object.hasOwnProperty.call(message, "syntax")) writer.uint32(/* id 12, wireType 2 =*/98).string(message.syntax); + if (message.edition != null && Object.hasOwnProperty.call(message, "edition")) + writer.uint32(/* id 13, wireType 2 =*/106).string(message.edition); return writer; }; @@ -8367,66 +8892,82 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - message["package"] = reader.string(); - break; - case 3: - if (!(message.dependency && message.dependency.length)) - message.dependency = []; - message.dependency.push(reader.string()); - break; - case 10: - if (!(message.publicDependency && message.publicDependency.length)) - message.publicDependency = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message["package"] = reader.string(); + break; + } + case 3: { + if (!(message.dependency && message.dependency.length)) + message.dependency = []; + message.dependency.push(reader.string()); + break; + } + case 10: { + if (!(message.publicDependency && message.publicDependency.length)) + message.publicDependency = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.publicDependency.push(reader.int32()); + } else message.publicDependency.push(reader.int32()); - } else - message.publicDependency.push(reader.int32()); - break; - case 11: - if (!(message.weakDependency && message.weakDependency.length)) - message.weakDependency = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) + break; + } + case 11: { + if (!(message.weakDependency && message.weakDependency.length)) + message.weakDependency = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.weakDependency.push(reader.int32()); + } else message.weakDependency.push(reader.int32()); - } else - message.weakDependency.push(reader.int32()); - break; - case 4: - if (!(message.messageType && message.messageType.length)) - message.messageType = []; - message.messageType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32())); - break; - case 5: - if (!(message.enumType && message.enumType.length)) - message.enumType = []; - message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32())); - break; - case 6: - if (!(message.service && message.service.length)) - message.service = []; - message.service.push($root.google.protobuf.ServiceDescriptorProto.decode(reader, reader.uint32())); - break; - case 7: - if (!(message.extension && message.extension.length)) - message.extension = []; - message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); - break; - case 8: - message.options = $root.google.protobuf.FileOptions.decode(reader, reader.uint32()); - break; - case 9: - message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.decode(reader, reader.uint32()); - break; - case 12: - message.syntax = reader.string(); - break; + break; + } + case 4: { + if (!(message.messageType && message.messageType.length)) + message.messageType = []; + message.messageType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32())); + break; + } + case 5: { + if (!(message.enumType && message.enumType.length)) + message.enumType = []; + message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32())); + break; + } + case 6: { + if (!(message.service && message.service.length)) + message.service = []; + message.service.push($root.google.protobuf.ServiceDescriptorProto.decode(reader, reader.uint32())); + break; + } + case 7: { + if (!(message.extension && message.extension.length)) + message.extension = []; + message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); + break; + } + case 8: { + message.options = $root.google.protobuf.FileOptions.decode(reader, reader.uint32()); + break; + } + case 9: { + message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.decode(reader, reader.uint32()); + break; + } + case 12: { + message.syntax = reader.string(); + break; + } + case 13: { + message.edition = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -8538,6 +9079,9 @@ if (message.syntax != null && message.hasOwnProperty("syntax")) if (!$util.isString(message.syntax)) return "syntax: string expected"; + if (message.edition != null && message.hasOwnProperty("edition")) + if (!$util.isString(message.edition)) + return "edition: string expected"; return null; }; @@ -8630,6 +9174,8 @@ } if (object.syntax != null) message.syntax = String(object.syntax); + if (object.edition != null) + message.edition = String(object.edition); return message; }; @@ -8661,6 +9207,7 @@ object.options = null; object.sourceCodeInfo = null; object.syntax = ""; + object.edition = ""; } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; @@ -8707,6 +9254,8 @@ } if (message.syntax != null && message.hasOwnProperty("syntax")) object.syntax = message.syntax; + if (message.edition != null && message.hasOwnProperty("edition")) + object.edition = message.edition; return object; }; @@ -8721,6 +9270,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for FileDescriptorProto + * @function getTypeUrl + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + FileDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.FileDescriptorProto"; + }; + return FileDescriptorProto; })(); @@ -8931,52 +9495,62 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - if (!(message.field && message.field.length)) - message.field = []; - message.field.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); - break; - case 6: - if (!(message.extension && message.extension.length)) - message.extension = []; - message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); - break; - case 3: - if (!(message.nestedType && message.nestedType.length)) - message.nestedType = []; - message.nestedType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32())); - break; - case 4: - if (!(message.enumType && message.enumType.length)) - message.enumType = []; - message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32())); - break; - case 5: - if (!(message.extensionRange && message.extensionRange.length)) - message.extensionRange = []; - message.extensionRange.push($root.google.protobuf.DescriptorProto.ExtensionRange.decode(reader, reader.uint32())); - break; - case 8: - if (!(message.oneofDecl && message.oneofDecl.length)) - message.oneofDecl = []; - message.oneofDecl.push($root.google.protobuf.OneofDescriptorProto.decode(reader, reader.uint32())); - break; - case 7: - message.options = $root.google.protobuf.MessageOptions.decode(reader, reader.uint32()); - break; - case 9: - if (!(message.reservedRange && message.reservedRange.length)) - message.reservedRange = []; - message.reservedRange.push($root.google.protobuf.DescriptorProto.ReservedRange.decode(reader, reader.uint32())); - break; - case 10: - if (!(message.reservedName && message.reservedName.length)) - message.reservedName = []; - message.reservedName.push(reader.string()); - break; + case 1: { + message.name = reader.string(); + break; + } + case 2: { + if (!(message.field && message.field.length)) + message.field = []; + message.field.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); + break; + } + case 6: { + if (!(message.extension && message.extension.length)) + message.extension = []; + message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); + break; + } + case 3: { + if (!(message.nestedType && message.nestedType.length)) + message.nestedType = []; + message.nestedType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32())); + break; + } + case 4: { + if (!(message.enumType && message.enumType.length)) + message.enumType = []; + message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32())); + break; + } + case 5: { + if (!(message.extensionRange && message.extensionRange.length)) + message.extensionRange = []; + message.extensionRange.push($root.google.protobuf.DescriptorProto.ExtensionRange.decode(reader, reader.uint32())); + break; + } + case 8: { + if (!(message.oneofDecl && message.oneofDecl.length)) + message.oneofDecl = []; + message.oneofDecl.push($root.google.protobuf.OneofDescriptorProto.decode(reader, reader.uint32())); + break; + } + case 7: { + message.options = $root.google.protobuf.MessageOptions.decode(reader, reader.uint32()); + break; + } + case 9: { + if (!(message.reservedRange && message.reservedRange.length)) + message.reservedRange = []; + message.reservedRange.push($root.google.protobuf.DescriptorProto.ReservedRange.decode(reader, reader.uint32())); + break; + } + case 10: { + if (!(message.reservedName && message.reservedName.length)) + message.reservedName = []; + message.reservedName.push(reader.string()); + break; + } default: reader.skipType(tag & 7); break; @@ -9277,6 +9851,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for DescriptorProto + * @function getTypeUrl + * @memberof google.protobuf.DescriptorProto + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.DescriptorProto"; + }; + DescriptorProto.ExtensionRange = (function() { /** @@ -9391,15 +9980,18 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.start = reader.int32(); - break; - case 2: - message.end = reader.int32(); - break; - case 3: - message.options = $root.google.protobuf.ExtensionRangeOptions.decode(reader, reader.uint32()); - break; + case 1: { + message.start = reader.int32(); + break; + } + case 2: { + message.end = reader.int32(); + break; + } + case 3: { + message.options = $root.google.protobuf.ExtensionRangeOptions.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -9511,6 +10103,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ExtensionRange + * @function getTypeUrl + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ExtensionRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.DescriptorProto.ExtensionRange"; + }; + return ExtensionRange; })(); @@ -9617,12 +10224,14 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.start = reader.int32(); - break; - case 2: - message.end = reader.int32(); - break; + case 1: { + message.start = reader.int32(); + break; + } + case 2: { + message.end = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -9721,6 +10330,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ReservedRange + * @function getTypeUrl + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ReservedRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.DescriptorProto.ReservedRange"; + }; + return ReservedRange; })(); @@ -9821,11 +10445,12 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; + case 999: { + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -9932,6 +10557,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ExtensionRangeOptions + * @function getTypeUrl + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ExtensionRangeOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.ExtensionRangeOptions"; + }; + return ExtensionRangeOptions; })(); @@ -10137,39 +10777,50 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 3: - message.number = reader.int32(); - break; - case 4: - message.label = reader.int32(); - break; - case 5: - message.type = reader.int32(); - break; - case 6: - message.typeName = reader.string(); - break; - case 2: - message.extendee = reader.string(); - break; - case 7: - message.defaultValue = reader.string(); - break; - case 9: - message.oneofIndex = reader.int32(); - break; - case 10: - message.jsonName = reader.string(); - break; - case 8: - message.options = $root.google.protobuf.FieldOptions.decode(reader, reader.uint32()); - break; - case 17: - message.proto3Optional = reader.bool(); - break; + case 1: { + message.name = reader.string(); + break; + } + case 3: { + message.number = reader.int32(); + break; + } + case 4: { + message.label = reader.int32(); + break; + } + case 5: { + message.type = reader.int32(); + break; + } + case 6: { + message.typeName = reader.string(); + break; + } + case 2: { + message.extendee = reader.string(); + break; + } + case 7: { + message.defaultValue = reader.string(); + break; + } + case 9: { + message.oneofIndex = reader.int32(); + break; + } + case 10: { + message.jsonName = reader.string(); + break; + } + case 8: { + message.options = $root.google.protobuf.FieldOptions.decode(reader, reader.uint32()); + break; + } + case 17: { + message.proto3Optional = reader.bool(); + break; + } default: reader.skipType(tag & 7); break; @@ -10456,6 +11107,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for FieldDescriptorProto + * @function getTypeUrl + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + FieldDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.FieldDescriptorProto"; + }; + /** * Type enum. * @name google.protobuf.FieldDescriptorProto.Type @@ -10624,12 +11290,14 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - message.options = $root.google.protobuf.OneofOptions.decode(reader, reader.uint32()); - break; + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.options = $root.google.protobuf.OneofOptions.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -10733,6 +11401,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for OneofDescriptorProto + * @function getTypeUrl + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + OneofDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.OneofDescriptorProto"; + }; + return OneofDescriptorProto; })(); @@ -10878,27 +11561,32 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - if (!(message.value && message.value.length)) - message.value = []; - message.value.push($root.google.protobuf.EnumValueDescriptorProto.decode(reader, reader.uint32())); - break; - case 3: - message.options = $root.google.protobuf.EnumOptions.decode(reader, reader.uint32()); - break; - case 4: - if (!(message.reservedRange && message.reservedRange.length)) - message.reservedRange = []; - message.reservedRange.push($root.google.protobuf.EnumDescriptorProto.EnumReservedRange.decode(reader, reader.uint32())); - break; - case 5: - if (!(message.reservedName && message.reservedName.length)) - message.reservedName = []; - message.reservedName.push(reader.string()); - break; + case 1: { + message.name = reader.string(); + break; + } + case 2: { + if (!(message.value && message.value.length)) + message.value = []; + message.value.push($root.google.protobuf.EnumValueDescriptorProto.decode(reader, reader.uint32())); + break; + } + case 3: { + message.options = $root.google.protobuf.EnumOptions.decode(reader, reader.uint32()); + break; + } + case 4: { + if (!(message.reservedRange && message.reservedRange.length)) + message.reservedRange = []; + message.reservedRange.push($root.google.protobuf.EnumDescriptorProto.EnumReservedRange.decode(reader, reader.uint32())); + break; + } + case 5: { + if (!(message.reservedName && message.reservedName.length)) + message.reservedName = []; + message.reservedName.push(reader.string()); + break; + } default: reader.skipType(tag & 7); break; @@ -11074,6 +11762,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for EnumDescriptorProto + * @function getTypeUrl + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + EnumDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.EnumDescriptorProto"; + }; + EnumDescriptorProto.EnumReservedRange = (function() { /** @@ -11177,12 +11880,14 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.start = reader.int32(); - break; - case 2: - message.end = reader.int32(); - break; + case 1: { + message.start = reader.int32(); + break; + } + case 2: { + message.end = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -11281,6 +11986,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for EnumReservedRange + * @function getTypeUrl + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + EnumReservedRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.EnumDescriptorProto.EnumReservedRange"; + }; + return EnumReservedRange; })(); @@ -11401,15 +12121,18 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - message.number = reader.int32(); - break; - case 3: - message.options = $root.google.protobuf.EnumValueOptions.decode(reader, reader.uint32()); - break; + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.number = reader.int32(); + break; + } + case 3: { + message.options = $root.google.protobuf.EnumValueOptions.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -11521,6 +12244,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for EnumValueDescriptorProto + * @function getTypeUrl + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + EnumValueDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.EnumValueDescriptorProto"; + }; + return EnumValueDescriptorProto; })(); @@ -11640,17 +12378,20 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - if (!(message.method && message.method.length)) - message.method = []; - message.method.push($root.google.protobuf.MethodDescriptorProto.decode(reader, reader.uint32())); - break; - case 3: - message.options = $root.google.protobuf.ServiceOptions.decode(reader, reader.uint32()); - break; + case 1: { + message.name = reader.string(); + break; + } + case 2: { + if (!(message.method && message.method.length)) + message.method = []; + message.method.push($root.google.protobuf.MethodDescriptorProto.decode(reader, reader.uint32())); + break; + } + case 3: { + message.options = $root.google.protobuf.ServiceOptions.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -11780,6 +12521,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ServiceDescriptorProto + * @function getTypeUrl + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ServiceDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.ServiceDescriptorProto"; + }; + return ServiceDescriptorProto; })(); @@ -11930,24 +12686,30 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - message.inputType = reader.string(); - break; - case 3: - message.outputType = reader.string(); - break; - case 4: - message.options = $root.google.protobuf.MethodOptions.decode(reader, reader.uint32()); - break; - case 5: - message.clientStreaming = reader.bool(); - break; - case 6: - message.serverStreaming = reader.bool(); - break; + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.inputType = reader.string(); + break; + } + case 3: { + message.outputType = reader.string(); + break; + } + case 4: { + message.options = $root.google.protobuf.MethodOptions.decode(reader, reader.uint32()); + break; + } + case 5: { + message.clientStreaming = reader.bool(); + break; + } + case 6: { + message.serverStreaming = reader.bool(); + break; + } default: reader.skipType(tag & 7); break; @@ -12083,6 +12845,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for MethodDescriptorProto + * @function getTypeUrl + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MethodDescriptorProto.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.MethodDescriptorProto"; + }; + return MethodDescriptorProto; })(); @@ -12413,76 +13190,98 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.javaPackage = reader.string(); - break; - case 8: - message.javaOuterClassname = reader.string(); - break; - case 10: - message.javaMultipleFiles = reader.bool(); - break; - case 20: - message.javaGenerateEqualsAndHash = reader.bool(); - break; - case 27: - message.javaStringCheckUtf8 = reader.bool(); - break; - case 9: - message.optimizeFor = reader.int32(); - break; - case 11: - message.goPackage = reader.string(); - break; - case 16: - message.ccGenericServices = reader.bool(); - break; - case 17: - message.javaGenericServices = reader.bool(); - break; - case 18: - message.pyGenericServices = reader.bool(); - break; - case 42: - message.phpGenericServices = reader.bool(); - break; - case 23: - message.deprecated = reader.bool(); - break; - case 31: - message.ccEnableArenas = reader.bool(); - break; - case 36: - message.objcClassPrefix = reader.string(); - break; - case 37: - message.csharpNamespace = reader.string(); - break; - case 39: - message.swiftPrefix = reader.string(); - break; - case 40: - message.phpClassPrefix = reader.string(); - break; - case 41: - message.phpNamespace = reader.string(); - break; - case 44: - message.phpMetadataNamespace = reader.string(); - break; - case 45: - message.rubyPackage = reader.string(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - case 1053: - if (!(message[".google.api.resourceDefinition"] && message[".google.api.resourceDefinition"].length)) - message[".google.api.resourceDefinition"] = []; - message[".google.api.resourceDefinition"].push($root.google.api.ResourceDescriptor.decode(reader, reader.uint32())); - break; + case 1: { + message.javaPackage = reader.string(); + break; + } + case 8: { + message.javaOuterClassname = reader.string(); + break; + } + case 10: { + message.javaMultipleFiles = reader.bool(); + break; + } + case 20: { + message.javaGenerateEqualsAndHash = reader.bool(); + break; + } + case 27: { + message.javaStringCheckUtf8 = reader.bool(); + break; + } + case 9: { + message.optimizeFor = reader.int32(); + break; + } + case 11: { + message.goPackage = reader.string(); + break; + } + case 16: { + message.ccGenericServices = reader.bool(); + break; + } + case 17: { + message.javaGenericServices = reader.bool(); + break; + } + case 18: { + message.pyGenericServices = reader.bool(); + break; + } + case 42: { + message.phpGenericServices = reader.bool(); + break; + } + case 23: { + message.deprecated = reader.bool(); + break; + } + case 31: { + message.ccEnableArenas = reader.bool(); + break; + } + case 36: { + message.objcClassPrefix = reader.string(); + break; + } + case 37: { + message.csharpNamespace = reader.string(); + break; + } + case 39: { + message.swiftPrefix = reader.string(); + break; + } + case 40: { + message.phpClassPrefix = reader.string(); + break; + } + case 41: { + message.phpNamespace = reader.string(); + break; + } + case 44: { + message.phpMetadataNamespace = reader.string(); + break; + } + case 45: { + message.rubyPackage = reader.string(); + break; + } + case 999: { + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + } + case 1053: { + if (!(message[".google.api.resourceDefinition"] && message[".google.api.resourceDefinition"].length)) + message[".google.api.resourceDefinition"] = []; + message[".google.api.resourceDefinition"].push($root.google.api.ResourceDescriptor.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -12795,6 +13594,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for FileOptions + * @function getTypeUrl + * @memberof google.protobuf.FileOptions + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + FileOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.FileOptions"; + }; + /** * OptimizeMode enum. * @name google.protobuf.FileOptions.OptimizeMode @@ -12963,26 +13777,32 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.messageSetWireFormat = reader.bool(); - break; - case 2: - message.noStandardDescriptorAccessor = reader.bool(); - break; - case 3: - message.deprecated = reader.bool(); - break; - case 7: - message.mapEntry = reader.bool(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - case 1053: - message[".google.api.resource"] = $root.google.api.ResourceDescriptor.decode(reader, reader.uint32()); - break; + case 1: { + message.messageSetWireFormat = reader.bool(); + break; + } + case 2: { + message.noStandardDescriptorAccessor = reader.bool(); + break; + } + case 3: { + message.deprecated = reader.bool(); + break; + } + case 7: { + message.mapEntry = reader.bool(); + break; + } + case 999: { + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + } + case 1053: { + message[".google.api.resource"] = $root.google.api.ResourceDescriptor.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -13136,6 +13956,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for MessageOptions + * @function getTypeUrl + * @memberof google.protobuf.MessageOptions + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MessageOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.MessageOptions"; + }; + return MessageOptions; })(); @@ -13149,6 +13984,7 @@ * @property {boolean|null} [packed] FieldOptions packed * @property {google.protobuf.FieldOptions.JSType|null} [jstype] FieldOptions jstype * @property {boolean|null} [lazy] FieldOptions lazy + * @property {boolean|null} [unverifiedLazy] FieldOptions unverifiedLazy * @property {boolean|null} [deprecated] FieldOptions deprecated * @property {boolean|null} [weak] FieldOptions weak * @property {Array.|null} [uninterpretedOption] FieldOptions uninterpretedOption @@ -13205,6 +14041,14 @@ */ FieldOptions.prototype.lazy = false; + /** + * FieldOptions unverifiedLazy. + * @member {boolean} unverifiedLazy + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.unverifiedLazy = false; + /** * FieldOptions deprecated. * @member {boolean} deprecated @@ -13281,6 +14125,8 @@ writer.uint32(/* id 6, wireType 0 =*/48).int32(message.jstype); if (message.weak != null && Object.hasOwnProperty.call(message, "weak")) writer.uint32(/* id 10, wireType 0 =*/80).bool(message.weak); + if (message.unverifiedLazy != null && Object.hasOwnProperty.call(message, "unverifiedLazy")) + writer.uint32(/* id 15, wireType 0 =*/120).bool(message.unverifiedLazy); if (message.uninterpretedOption != null && message.uninterpretedOption.length) for (var i = 0; i < message.uninterpretedOption.length; ++i) $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); @@ -13326,42 +14172,55 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.ctype = reader.int32(); - break; - case 2: - message.packed = reader.bool(); - break; - case 6: - message.jstype = reader.int32(); - break; - case 5: - message.lazy = reader.bool(); - break; - case 3: - message.deprecated = reader.bool(); - break; - case 10: - message.weak = reader.bool(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - case 1055: - message[".google.api.resourceReference"] = $root.google.api.ResourceReference.decode(reader, reader.uint32()); - break; - case 1052: - if (!(message[".google.api.fieldBehavior"] && message[".google.api.fieldBehavior"].length)) - message[".google.api.fieldBehavior"] = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) + case 1: { + message.ctype = reader.int32(); + break; + } + case 2: { + message.packed = reader.bool(); + break; + } + case 6: { + message.jstype = reader.int32(); + break; + } + case 5: { + message.lazy = reader.bool(); + break; + } + case 15: { + message.unverifiedLazy = reader.bool(); + break; + } + case 3: { + message.deprecated = reader.bool(); + break; + } + case 10: { + message.weak = reader.bool(); + break; + } + case 999: { + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + } + case 1055: { + message[".google.api.resourceReference"] = $root.google.api.ResourceReference.decode(reader, reader.uint32()); + break; + } + case 1052: { + if (!(message[".google.api.fieldBehavior"] && message[".google.api.fieldBehavior"].length)) + message[".google.api.fieldBehavior"] = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message[".google.api.fieldBehavior"].push(reader.int32()); + } else message[".google.api.fieldBehavior"].push(reader.int32()); - } else - message[".google.api.fieldBehavior"].push(reader.int32()); - break; + break; + } default: reader.skipType(tag & 7); break; @@ -13421,6 +14280,9 @@ if (message.lazy != null && message.hasOwnProperty("lazy")) if (typeof message.lazy !== "boolean") return "lazy: boolean expected"; + if (message.unverifiedLazy != null && message.hasOwnProperty("unverifiedLazy")) + if (typeof message.unverifiedLazy !== "boolean") + return "unverifiedLazy: boolean expected"; if (message.deprecated != null && message.hasOwnProperty("deprecated")) if (typeof message.deprecated !== "boolean") return "deprecated: boolean expected"; @@ -13506,6 +14368,8 @@ } if (object.lazy != null) message.lazy = Boolean(object.lazy); + if (object.unverifiedLazy != null) + message.unverifiedLazy = Boolean(object.unverifiedLazy); if (object.deprecated != null) message.deprecated = Boolean(object.deprecated); if (object.weak != null) @@ -13593,6 +14457,7 @@ object.lazy = false; object.jstype = options.enums === String ? "JS_NORMAL" : 0; object.weak = false; + object.unverifiedLazy = false; object[".google.api.resourceReference"] = null; } if (message.ctype != null && message.hasOwnProperty("ctype")) @@ -13607,6 +14472,8 @@ object.jstype = options.enums === String ? $root.google.protobuf.FieldOptions.JSType[message.jstype] : message.jstype; if (message.weak != null && message.hasOwnProperty("weak")) object.weak = message.weak; + if (message.unverifiedLazy != null && message.hasOwnProperty("unverifiedLazy")) + object.unverifiedLazy = message.unverifiedLazy; if (message.uninterpretedOption && message.uninterpretedOption.length) { object.uninterpretedOption = []; for (var j = 0; j < message.uninterpretedOption.length; ++j) @@ -13633,6 +14500,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for FieldOptions + * @function getTypeUrl + * @memberof google.protobuf.FieldOptions + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + FieldOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.FieldOptions"; + }; + /** * CType enum. * @name google.protobuf.FieldOptions.CType @@ -13762,11 +14644,12 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; + case 999: { + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -13873,6 +14756,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for OneofOptions + * @function getTypeUrl + * @memberof google.protobuf.OneofOptions + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + OneofOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.OneofOptions"; + }; + return OneofOptions; })(); @@ -13992,17 +14890,20 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 2: - message.allowAlias = reader.bool(); - break; - case 3: - message.deprecated = reader.bool(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; + case 2: { + message.allowAlias = reader.bool(); + break; + } + case 3: { + message.deprecated = reader.bool(); + break; + } + case 999: { + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -14127,6 +15028,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for EnumOptions + * @function getTypeUrl + * @memberof google.protobuf.EnumOptions + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + EnumOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.EnumOptions"; + }; + return EnumOptions; })(); @@ -14235,14 +15151,16 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.deprecated = reader.bool(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; + case 1: { + message.deprecated = reader.bool(); + break; + } + case 999: { + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -14358,6 +15276,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for EnumValueOptions + * @function getTypeUrl + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + EnumValueOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.EnumValueOptions"; + }; + return EnumValueOptions; })(); @@ -14488,20 +15421,24 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 33: - message.deprecated = reader.bool(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - case 1049: - message[".google.api.defaultHost"] = reader.string(); - break; - case 1050: - message[".google.api.oauthScopes"] = reader.string(); - break; + case 33: { + message.deprecated = reader.bool(); + break; + } + case 999: { + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + } + case 1049: { + message[".google.api.defaultHost"] = reader.string(); + break; + } + case 1050: { + message[".google.api.oauthScopes"] = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -14634,6 +15571,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ServiceOptions + * @function getTypeUrl + * @memberof google.protobuf.ServiceOptions + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ServiceOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.ServiceOptions"; + }; + return ServiceOptions; })(); @@ -14777,25 +15729,30 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 33: - message.deprecated = reader.bool(); - break; - case 34: - message.idempotencyLevel = reader.int32(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - case 72295728: - message[".google.api.http"] = $root.google.api.HttpRule.decode(reader, reader.uint32()); - break; - case 1051: - if (!(message[".google.api.methodSignature"] && message[".google.api.methodSignature"].length)) - message[".google.api.methodSignature"] = []; - message[".google.api.methodSignature"].push(reader.string()); - break; + case 33: { + message.deprecated = reader.bool(); + break; + } + case 34: { + message.idempotencyLevel = reader.int32(); + break; + } + case 999: { + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + } + case 72295728: { + message[".google.api.http"] = $root.google.api.HttpRule.decode(reader, reader.uint32()); + break; + } + case 1051: { + if (!(message[".google.api.methodSignature"] && message[".google.api.methodSignature"].length)) + message[".google.api.methodSignature"] = []; + message[".google.api.methodSignature"].push(reader.string()); + break; + } default: reader.skipType(tag & 7); break; @@ -14972,6 +15929,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for MethodOptions + * @function getTypeUrl + * @memberof google.protobuf.MethodOptions + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MethodOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.MethodOptions"; + }; + /** * IdempotencyLevel enum. * @name google.protobuf.MethodOptions.IdempotencyLevel @@ -15151,29 +16123,36 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 2: - if (!(message.name && message.name.length)) - message.name = []; - message.name.push($root.google.protobuf.UninterpretedOption.NamePart.decode(reader, reader.uint32())); - break; - case 3: - message.identifierValue = reader.string(); - break; - case 4: - message.positiveIntValue = reader.uint64(); - break; - case 5: - message.negativeIntValue = reader.int64(); - break; - case 6: - message.doubleValue = reader.double(); - break; - case 7: - message.stringValue = reader.bytes(); - break; - case 8: - message.aggregateValue = reader.string(); - break; + case 2: { + if (!(message.name && message.name.length)) + message.name = []; + message.name.push($root.google.protobuf.UninterpretedOption.NamePart.decode(reader, reader.uint32())); + break; + } + case 3: { + message.identifierValue = reader.string(); + break; + } + case 4: { + message.positiveIntValue = reader.uint64(); + break; + } + case 5: { + message.negativeIntValue = reader.int64(); + break; + } + case 6: { + message.doubleValue = reader.double(); + break; + } + case 7: { + message.stringValue = reader.bytes(); + break; + } + case 8: { + message.aggregateValue = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -15286,7 +16265,7 @@ if (object.stringValue != null) if (typeof object.stringValue === "string") $util.base64.decode(object.stringValue, message.stringValue = $util.newBuffer($util.base64.length(object.stringValue)), 0); - else if (object.stringValue.length) + else if (object.stringValue.length >= 0) message.stringValue = object.stringValue; if (object.aggregateValue != null) message.aggregateValue = String(object.aggregateValue); @@ -15367,6 +16346,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for UninterpretedOption + * @function getTypeUrl + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + UninterpretedOption.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.UninterpretedOption"; + }; + UninterpretedOption.NamePart = (function() { /** @@ -15468,12 +16462,14 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.namePart = reader.string(); - break; - case 2: - message.isExtension = reader.bool(); - break; + case 1: { + message.namePart = reader.string(); + break; + } + case 2: { + message.isExtension = reader.bool(); + break; + } default: reader.skipType(tag & 7); break; @@ -15574,6 +16570,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for NamePart + * @function getTypeUrl + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + NamePart.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.UninterpretedOption.NamePart"; + }; + return NamePart; })(); @@ -15674,11 +16685,12 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - if (!(message.location && message.location.length)) - message.location = []; - message.location.push($root.google.protobuf.SourceCodeInfo.Location.decode(reader, reader.uint32())); - break; + case 1: { + if (!(message.location && message.location.length)) + message.location = []; + message.location.push($root.google.protobuf.SourceCodeInfo.Location.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -15785,6 +16797,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for SourceCodeInfo + * @function getTypeUrl + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SourceCodeInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.SourceCodeInfo"; + }; + SourceCodeInfo.Location = (function() { /** @@ -15933,37 +16960,42 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - if (!(message.path && message.path.length)) - message.path = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) + case 1: { + if (!(message.path && message.path.length)) + message.path = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.path.push(reader.int32()); + } else message.path.push(reader.int32()); - } else - message.path.push(reader.int32()); - break; - case 2: - if (!(message.span && message.span.length)) - message.span = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) + break; + } + case 2: { + if (!(message.span && message.span.length)) + message.span = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.span.push(reader.int32()); + } else message.span.push(reader.int32()); - } else - message.span.push(reader.int32()); - break; - case 3: - message.leadingComments = reader.string(); - break; - case 4: - message.trailingComments = reader.string(); - break; - case 6: - if (!(message.leadingDetachedComments && message.leadingDetachedComments.length)) - message.leadingDetachedComments = []; - message.leadingDetachedComments.push(reader.string()); - break; + break; + } + case 3: { + message.leadingComments = reader.string(); + break; + } + case 4: { + message.trailingComments = reader.string(); + break; + } + case 6: { + if (!(message.leadingDetachedComments && message.leadingDetachedComments.length)) + message.leadingDetachedComments = []; + message.leadingDetachedComments.push(reader.string()); + break; + } default: reader.skipType(tag & 7); break; @@ -16124,6 +17156,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for Location + * @function getTypeUrl + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Location.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.SourceCodeInfo.Location"; + }; + return Location; })(); @@ -16224,11 +17271,12 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - if (!(message.annotation && message.annotation.length)) - message.annotation = []; - message.annotation.push($root.google.protobuf.GeneratedCodeInfo.Annotation.decode(reader, reader.uint32())); - break; + case 1: { + if (!(message.annotation && message.annotation.length)) + message.annotation = []; + message.annotation.push($root.google.protobuf.GeneratedCodeInfo.Annotation.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -16335,6 +17383,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for GeneratedCodeInfo + * @function getTypeUrl + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GeneratedCodeInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.GeneratedCodeInfo"; + }; + GeneratedCodeInfo.Annotation = (function() { /** @@ -16345,6 +17408,7 @@ * @property {string|null} [sourceFile] Annotation sourceFile * @property {number|null} [begin] Annotation begin * @property {number|null} [end] Annotation end + * @property {google.protobuf.GeneratedCodeInfo.Annotation.Semantic|null} [semantic] Annotation semantic */ /** @@ -16395,6 +17459,14 @@ */ Annotation.prototype.end = 0; + /** + * Annotation semantic. + * @member {google.protobuf.GeneratedCodeInfo.Annotation.Semantic} semantic + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @instance + */ + Annotation.prototype.semantic = 0; + /** * Creates a new Annotation instance using the specified properties. * @function create @@ -16431,6 +17503,8 @@ writer.uint32(/* id 3, wireType 0 =*/24).int32(message.begin); if (message.end != null && Object.hasOwnProperty.call(message, "end")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.end); + if (message.semantic != null && Object.hasOwnProperty.call(message, "semantic")) + writer.uint32(/* id 5, wireType 0 =*/40).int32(message.semantic); return writer; }; @@ -16465,25 +17539,33 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - if (!(message.path && message.path.length)) - message.path = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) + case 1: { + if (!(message.path && message.path.length)) + message.path = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.path.push(reader.int32()); + } else message.path.push(reader.int32()); - } else - message.path.push(reader.int32()); - break; - case 2: - message.sourceFile = reader.string(); - break; - case 3: - message.begin = reader.int32(); - break; - case 4: - message.end = reader.int32(); - break; + break; + } + case 2: { + message.sourceFile = reader.string(); + break; + } + case 3: { + message.begin = reader.int32(); + break; + } + case 4: { + message.end = reader.int32(); + break; + } + case 5: { + message.semantic = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -16535,6 +17617,15 @@ if (message.end != null && message.hasOwnProperty("end")) if (!$util.isInteger(message.end)) return "end: integer expected"; + if (message.semantic != null && message.hasOwnProperty("semantic")) + switch (message.semantic) { + default: + return "semantic: enum value expected"; + case 0: + case 1: + case 2: + break; + } return null; }; @@ -16563,6 +17654,20 @@ message.begin = object.begin | 0; if (object.end != null) message.end = object.end | 0; + switch (object.semantic) { + case "NONE": + case 0: + message.semantic = 0; + break; + case "SET": + case 1: + message.semantic = 1; + break; + case "ALIAS": + case 2: + message.semantic = 2; + break; + } return message; }; @@ -16585,6 +17690,7 @@ object.sourceFile = ""; object.begin = 0; object.end = 0; + object.semantic = options.enums === String ? "NONE" : 0; } if (message.path && message.path.length) { object.path = []; @@ -16597,6 +17703,8 @@ object.begin = message.begin; if (message.end != null && message.hasOwnProperty("end")) object.end = message.end; + if (message.semantic != null && message.hasOwnProperty("semantic")) + object.semantic = options.enums === String ? $root.google.protobuf.GeneratedCodeInfo.Annotation.Semantic[message.semantic] : message.semantic; return object; }; @@ -16611,6 +17719,37 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for Annotation + * @function getTypeUrl + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Annotation.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.GeneratedCodeInfo.Annotation"; + }; + + /** + * Semantic enum. + * @name google.protobuf.GeneratedCodeInfo.Annotation.Semantic + * @enum {number} + * @property {number} NONE=0 NONE value + * @property {number} SET=1 SET value + * @property {number} ALIAS=2 ALIAS value + */ + Annotation.Semantic = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "NONE"] = 0; + values[valuesById[1] = "SET"] = 1; + values[valuesById[2] = "ALIAS"] = 2; + return values; + })(); + return Annotation; })(); @@ -16720,12 +17859,14 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.seconds = reader.int64(); - break; - case 2: - message.nanos = reader.int32(); - break; + case 1: { + message.seconds = reader.int64(); + break; + } + case 2: { + message.nanos = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -16838,6 +17979,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for Duration + * @function getTypeUrl + * @memberof google.protobuf.Duration + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Duration.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.Duration"; + }; + return Duration; })(); @@ -16937,28 +18093,29 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - if (message.fields === $util.emptyObject) - message.fields = {}; - var end2 = reader.uint32() + reader.pos; - key = ""; - value = null; - while (reader.pos < end2) { - var tag2 = reader.uint32(); - switch (tag2 >>> 3) { - case 1: - key = reader.string(); - break; - case 2: - value = $root.google.protobuf.Value.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag2 & 7); - break; + case 1: { + if (message.fields === $util.emptyObject) + message.fields = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = null; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = $root.google.protobuf.Value.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag2 & 7); + break; + } } + message.fields[key] = value; + break; } - message.fields[key] = value; - break; default: reader.skipType(tag & 7); break; @@ -17067,6 +18224,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for Struct + * @function getTypeUrl + * @memberof google.protobuf.Struct + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Struct.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.Struct"; + }; + return Struct; })(); @@ -17231,24 +18403,30 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.nullValue = reader.int32(); - break; - case 2: - message.numberValue = reader.double(); - break; - case 3: - message.stringValue = reader.string(); - break; - case 4: - message.boolValue = reader.bool(); - break; - case 5: - message.structValue = $root.google.protobuf.Struct.decode(reader, reader.uint32()); - break; - case 6: - message.listValue = $root.google.protobuf.ListValue.decode(reader, reader.uint32()); - break; + case 1: { + message.nullValue = reader.int32(); + break; + } + case 2: { + message.numberValue = reader.double(); + break; + } + case 3: { + message.stringValue = reader.string(); + break; + } + case 4: { + message.boolValue = reader.bool(); + break; + } + case 5: { + message.structValue = $root.google.protobuf.Struct.decode(reader, reader.uint32()); + break; + } + case 6: { + message.listValue = $root.google.protobuf.ListValue.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -17432,6 +18610,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for Value + * @function getTypeUrl + * @memberof google.protobuf.Value + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Value.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.Value"; + }; + return Value; })(); @@ -17541,11 +18734,12 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - if (!(message.values && message.values.length)) - message.values = []; - message.values.push($root.google.protobuf.Value.decode(reader, reader.uint32())); - break; + case 1: { + if (!(message.values && message.values.length)) + message.values = []; + message.values.push($root.google.protobuf.Value.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -17652,6 +18846,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for ListValue + * @function getTypeUrl + * @memberof google.protobuf.ListValue + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ListValue.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.ListValue"; + }; + return ListValue; })(); @@ -17758,12 +18967,14 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.seconds = reader.int64(); - break; - case 2: - message.nanos = reader.int32(); - break; + case 1: { + message.seconds = reader.int64(); + break; + } + case 2: { + message.nanos = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -17876,6 +19087,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for Timestamp + * @function getTypeUrl + * @memberof google.protobuf.Timestamp + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Timestamp.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.Timestamp"; + }; + return Timestamp; })(); @@ -18005,15 +19231,18 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.currencyCode = reader.string(); - break; - case 2: - message.units = reader.int64(); - break; - case 3: - message.nanos = reader.int32(); - break; + case 1: { + message.currencyCode = reader.string(); + break; + } + case 2: { + message.units = reader.int64(); + break; + } + case 3: { + message.nanos = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -18134,6 +19363,21 @@ return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; + /** + * Gets the default type url for Money + * @function getTypeUrl + * @memberof google.type.Money + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Money.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.type.Money"; + }; + return Money; })(); diff --git a/packages/google-cloud-recommender/protos/protos.json b/packages/google-cloud-recommender/protos/protos.json index 48350b641e0..0f25ea384d1 100644 --- a/packages/google-cloud-recommender/protos/protos.json +++ b/packages/google-cloud-recommender/protos/protos.json @@ -1113,6 +1113,10 @@ "syntax": { "type": "string", "id": 12 + }, + "edition": { + "type": "string", + "id": 13 } } }, @@ -1641,6 +1645,13 @@ "default": false } }, + "unverifiedLazy": { + "type": "bool", + "id": 15, + "options": { + "default": false + } + }, "deprecated": { "type": "bool", "id": 3, @@ -1933,6 +1944,19 @@ "end": { "type": "int32", "id": 4 + }, + "semantic": { + "type": "Semantic", + "id": 5 + } + }, + "nested": { + "Semantic": { + "values": { + "NONE": 0, + "SET": 1, + "ALIAS": 2 + } } } } From 54d6cc355dcf72cf3f0c47aade6adb298b819e58 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 26 Aug 2022 12:26:02 -0700 Subject: [PATCH 151/158] chore(main): release 5.0.1 (#240) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- packages/google-cloud-recommender/CHANGELOG.md | 8 ++++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index c9bee5451ad..048700741bd 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [5.0.1](https://github.com/googleapis/nodejs-recommender/compare/v5.0.0...v5.0.1) (2022-08-23) + + +### Bug Fixes + +* change import long to require ([#239](https://github.com/googleapis/nodejs-recommender/issues/239)) ([a25747e](https://github.com/googleapis/nodejs-recommender/commit/a25747ef09f8ca018b7507e2af66a046098fb4e1)) +* remove pip install statements ([#1546](https://github.com/googleapis/nodejs-recommender/issues/1546)) ([#241](https://github.com/googleapis/nodejs-recommender/issues/241)) ([a7b3598](https://github.com/googleapis/nodejs-recommender/commit/a7b35986d32e9fedb8d7f9c2956ca35a500262d0)) + ## [5.0.0](https://github.com/googleapis/nodejs-recommender/compare/v4.2.5...v5.0.0) (2022-05-17) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 4185c58d012..ba06e9a8afd 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "5.0.0", + "version": "5.0.1", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 26b5b1c0732..8c2b607e66a 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^5.0.0" + "@google-cloud/recommender": "^5.0.1" }, "devDependencies": { "c8": "^7.0.0", From c57511e6342d9a7c6736a1793c46fb9626c27101 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Sat, 27 Aug 2022 05:00:37 +0000 Subject: [PATCH 152/158] fix: do not import the whole google-gax from proto JS (#1553) (#242) fix: use google-gax v3.3.0 Source-Link: https://github.com/googleapis/synthtool/commit/c73d112a11a1f1a93efa67c50495c19aa3a88910 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:b15a6f06cc06dcffa11e1bebdf1a74b6775a134aac24a0f86f51ddf728eb373e --- packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/protos/protos.d.ts | 2 +- packages/google-cloud-recommender/protos/protos.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index ba06e9a8afd..82c74ea411d 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -27,7 +27,7 @@ "precompile": "gts clean" }, "dependencies": { - "google-gax": "^3.0.1" + "google-gax": "^3.3.0" }, "devDependencies": { "@types/mocha": "^9.0.0", diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts index 842a6eedf55..1e591dc42bb 100644 --- a/packages/google-cloud-recommender/protos/protos.d.ts +++ b/packages/google-cloud-recommender/protos/protos.d.ts @@ -13,7 +13,7 @@ // limitations under the License. import Long = require("long"); -import {protobuf as $protobuf} from "google-gax"; +import type {protobuf as $protobuf} from "google-gax"; /** Namespace google. */ export namespace google { diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js index a3450c86bbe..da962bb180b 100644 --- a/packages/google-cloud-recommender/protos/protos.js +++ b/packages/google-cloud-recommender/protos/protos.js @@ -19,7 +19,7 @@ define(["protobufjs/minimal"], factory); /* CommonJS */ else if (typeof require === 'function' && typeof module === 'object' && module && module.exports) - module.exports = factory(require("google-gax").protobufMinimal); + module.exports = factory(require("google-gax/build/src/protobuf").protobufMinimal); })(this, function($protobuf) { "use strict"; From fb621ee7aa8abc46027ab28034f7aeea5a446b17 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 22 Sep 2022 14:19:51 -0700 Subject: [PATCH 153/158] chore(main): release 5.0.2 (#243) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- packages/google-cloud-recommender/CHANGELOG.md | 8 ++++++++ packages/google-cloud-recommender/package.json | 2 +- packages/google-cloud-recommender/samples/package.json | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/google-cloud-recommender/CHANGELOG.md b/packages/google-cloud-recommender/CHANGELOG.md index 048700741bd..b03a36d5119 100644 --- a/packages/google-cloud-recommender/CHANGELOG.md +++ b/packages/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [5.0.2](https://github.com/googleapis/nodejs-recommender/compare/v5.0.1...v5.0.2) (2022-08-27) + + +### Bug Fixes + +* do not import the whole google-gax from proto JS ([#1553](https://github.com/googleapis/nodejs-recommender/issues/1553)) ([#242](https://github.com/googleapis/nodejs-recommender/issues/242)) ([ecc0511](https://github.com/googleapis/nodejs-recommender/commit/ecc05119d6119f1e9840ad1819c45fb7640515e2)) +* use google-gax v3.3.0 ([ecc0511](https://github.com/googleapis/nodejs-recommender/commit/ecc05119d6119f1e9840ad1819c45fb7640515e2)) + ## [5.0.1](https://github.com/googleapis/nodejs-recommender/compare/v5.0.0...v5.0.1) (2022-08-23) diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index 82c74ea411d..c45d6915a4b 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/recommender", - "version": "5.0.1", + "version": "5.0.2", "description": "Recommender client for Node.js", "repository": "googleapis/nodejs-recommender", "license": "Apache-2.0", diff --git a/packages/google-cloud-recommender/samples/package.json b/packages/google-cloud-recommender/samples/package.json index 8c2b607e66a..bb78a8ed213 100644 --- a/packages/google-cloud-recommender/samples/package.json +++ b/packages/google-cloud-recommender/samples/package.json @@ -13,7 +13,7 @@ "test": "c8 mocha --timeout 600000 test/*.js" }, "dependencies": { - "@google-cloud/recommender": "^5.0.1" + "@google-cloud/recommender": "^5.0.2" }, "devDependencies": { "c8": "^7.0.0", From 3916ed027a6b929ba67c11b4b8d6369c40e04661 Mon Sep 17 00:00:00 2001 From: Sofia Leon Date: Wed, 12 Oct 2022 19:48:25 -0700 Subject: [PATCH 154/158] build: add release-please config, fix owlbot-config --- .release-please-manifest.json | 1 + .../{.github => }/.OwlBot.yaml | 6 ++-- packages/google-cloud-recommender/.mocharc.js | 2 +- .../google-cloud-recommender/.prettierrc.js | 2 +- .../.repo-metadata.json | 2 +- packages/google-cloud-recommender/README.md | 15 +++++----- .../google-cloud-recommender/package.json | 4 +-- .../samples/README.md | 30 +++++++++++++++---- .../google-cloud-recommender/src/index.ts | 2 +- release-please-config.json | 1 + 10 files changed, 42 insertions(+), 23 deletions(-) rename packages/google-cloud-recommender/{.github => }/.OwlBot.yaml (82%) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 2b1dca16e06..f3a41e35bdf 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -14,6 +14,7 @@ "packages/google-cloud-language": "5.1.0", "packages/google-cloud-oslogin": "4.0.2", "packages/google-cloud-phishingprotection": "3.0.4", + "packages/google-cloud-recommender": "5.0.2", "packages/google-cloud-redis": "3.1.3", "packages/google-cloud-resourcemanager": "4.1.1", "packages/google-cloud-security-publicca": "0.1.1", diff --git a/packages/google-cloud-recommender/.github/.OwlBot.yaml b/packages/google-cloud-recommender/.OwlBot.yaml similarity index 82% rename from packages/google-cloud-recommender/.github/.OwlBot.yaml rename to packages/google-cloud-recommender/.OwlBot.yaml index 7fa9e4049ac..479e024d3a6 100644 --- a/packages/google-cloud-recommender/.github/.OwlBot.yaml +++ b/packages/google-cloud-recommender/.OwlBot.yaml @@ -11,15 +11,13 @@ # 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. -docker: - image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest deep-remove-regex: - /owl-bot-staging deep-copy-regex: - - source: /recommender/(.*)/.*-nodejs/(.*) - dest: /owl-bot-staging/$1/$2 + - source: /recommender/(.*)/.*-nodejs + dest: /owl-bot-staging/google-cloud-recommender/$1 begin-after-commit-hash: fb91803ccef5d7c695139b22788b309e2197856b diff --git a/packages/google-cloud-recommender/.mocharc.js b/packages/google-cloud-recommender/.mocharc.js index 0b600509bed..cdb7b752160 100644 --- a/packages/google-cloud-recommender/.mocharc.js +++ b/packages/google-cloud-recommender/.mocharc.js @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/.prettierrc.js b/packages/google-cloud-recommender/.prettierrc.js index d1b95106f4c..d546a4ad546 100644 --- a/packages/google-cloud-recommender/.prettierrc.js +++ b/packages/google-cloud-recommender/.prettierrc.js @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-cloud-recommender/.repo-metadata.json b/packages/google-cloud-recommender/.repo-metadata.json index b01d4ec6526..184423380ab 100644 --- a/packages/google-cloud-recommender/.repo-metadata.json +++ b/packages/google-cloud-recommender/.repo-metadata.json @@ -1,6 +1,6 @@ { "language": "nodejs", - "repo": "googleapis/nodejs-recommender", + "repo": "googleapis/google-cloud-node", "name": "recommender", "issue_tracker": "", "default_version": "v1", diff --git a/packages/google-cloud-recommender/README.md b/packages/google-cloud-recommender/README.md index e622b7ba59f..aafc48bf02d 100644 --- a/packages/google-cloud-recommender/README.md +++ b/packages/google-cloud-recommender/README.md @@ -2,7 +2,7 @@ [//]: # "To regenerate it, use `python -m synthtool`." Google Cloud Platform logo -# [Recommender: Node.js Client](https://github.com/googleapis/nodejs-recommender) +# [Recommender: Node.js Client](https://github.com/googleapis/google-cloud-node) [![release level](https://img.shields.io/badge/release%20level-stable-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/recommender.svg)](https://www.npmjs.org/package/@google-cloud/recommender) @@ -14,11 +14,11 @@ Recommender client for Node.js A comprehensive list of changes in each version may be found in -[the CHANGELOG](https://github.com/googleapis/nodejs-recommender/blob/main/CHANGELOG.md). +[the CHANGELOG](https://github.com/googleapis/google-cloud-node/blob/main/CHANGELOG.md). * [Recommender Node.js Client API Reference][client-docs] * [Recommender Documentation][product-docs] -* [github.com/googleapis/nodejs-recommender](https://github.com/googleapis/nodejs-recommender) +* [github.com/googleapis/google-cloud-node](https://github.com/googleapis/google-cloud-node) Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in [Client Libraries Explained][explained]. @@ -85,11 +85,12 @@ const recommendations = await listRecommendations(); ## Samples -Samples are in the [`samples/`](https://github.com/googleapis/nodejs-recommender/tree/main/samples) directory. Each sample's `README.md` has instructions for running its sample. +Samples are in the [`samples/`](https://github.com/googleapis/google-cloud-node/tree/main/samples) directory. Each sample's `README.md` has instructions for running its sample. | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | -| Quickstart | [source code](https://github.com/googleapis/nodejs-recommender/blob/main/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-recommender&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | +| Quickstart | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-recommender/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-recommender/samples/quickstart.js,samples/README.md) | +| Quickstart | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-recommender/samples/test/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-recommender/samples/test/quickstart.js,samples/README.md) | @@ -139,7 +140,7 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] ## Contributing -Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-recommender/blob/main/CONTRIBUTING.md). +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/google-cloud-node/blob/main/CONTRIBUTING.md). Please note that this `README.md`, the `samples/README.md`, and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`) @@ -151,7 +152,7 @@ to its templates in Apache Version 2.0 -See [LICENSE](https://github.com/googleapis/nodejs-recommender/blob/main/LICENSE) +See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE) [client-docs]: https://cloud.google.com/nodejs/docs/reference/recommender/latest [product-docs]: https://cloud.google.com/recommender/docs diff --git a/packages/google-cloud-recommender/package.json b/packages/google-cloud-recommender/package.json index c45d6915a4b..1b76feecbb0 100644 --- a/packages/google-cloud-recommender/package.json +++ b/packages/google-cloud-recommender/package.json @@ -20,8 +20,8 @@ "lint": "gts check", "predocs-test": "npm run docs", "prepare": "npm run compile-protos && npm run compile", - "system-test": "c8 mocha build/system-test", - "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", + "system-test": "npm run compile && c8 mocha build/system-test", + "samples-test": "npm run compile && cd samples/ && npm link ../ && npm i && npm test", "test": "c8 mocha build/test", "prelint": "cd samples; npm link ../; npm install", "precompile": "gts clean" diff --git a/packages/google-cloud-recommender/samples/README.md b/packages/google-cloud-recommender/samples/README.md index 293d3b255ea..ee912bd32f2 100644 --- a/packages/google-cloud-recommender/samples/README.md +++ b/packages/google-cloud-recommender/samples/README.md @@ -2,7 +2,7 @@ [//]: # "To regenerate it, use `python -m synthtool`." Google Cloud Platform logo -# [Recommender: Node.js Samples](https://github.com/googleapis/nodejs-recommender) +# [Recommender: Node.js Samples](https://github.com/googleapis/google-cloud-node) [![Open in Cloud Shell][shell_img]][shell_link] @@ -13,11 +13,12 @@ * [Before you begin](#before-you-begin) * [Samples](#samples) * [Quickstart](#quickstart) + * [Quickstart](#quickstart) ## Before you begin Before running the samples, make sure you've followed the steps outlined in -[Using the client library](https://github.com/googleapis/nodejs-recommender#using-the-client-library). +[Using the client library](https://github.com/googleapis/google-cloud-node#using-the-client-library). `cd samples` @@ -31,14 +32,31 @@ Before running the samples, make sure you've followed the steps outlined in ### Quickstart -View the [source code](https://github.com/googleapis/nodejs-recommender/blob/main/samples/quickstart.js). +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-recommender/samples/quickstart.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-recommender/samples/quickstart.js,samples/README.md) + +__Usage:__ + + +`node packages/google-cloud-recommender/samples/quickstart.js` + + +----- + + + + +### Quickstart + +View the [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-recommender/samples/test/quickstart.js). -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-recommender&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=packages/google-cloud-recommender/samples/test/quickstart.js,samples/README.md) __Usage:__ -`node samples/quickstart.js` +`node packages/google-cloud-recommender/samples/test/quickstart.js` @@ -46,5 +64,5 @@ __Usage:__ [shell_img]: https://gstatic.com/cloudssh/images/open-btn.png -[shell_link]: https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-recommender&page=editor&open_in_editor=samples/README.md +[shell_link]: https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/google-cloud-node&page=editor&open_in_editor=samples/README.md [product-docs]: https://cloud.google.com/recommender/docs diff --git a/packages/google-cloud-recommender/src/index.ts b/packages/google-cloud-recommender/src/index.ts index 1307b47a4c6..68bd655a4c7 100644 --- a/packages/google-cloud-recommender/src/index.ts +++ b/packages/google-cloud-recommender/src/index.ts @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/release-please-config.json b/release-please-config.json index 5b1b0902114..9ddf81705ff 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -14,6 +14,7 @@ "packages/google-cloud-language": {}, "packages/google-cloud-oslogin": {}, "packages/google-cloud-phishingprotection": {}, + "packages/google-cloud-recommender": {}, "packages/google-cloud-redis": {}, "packages/google-cloud-resourcemanager": {}, "packages/google-cloud-security-publicca": {}, From 324358191c43b9f56c57ebf3f0223902213664eb Mon Sep 17 00:00:00 2001 From: Sofia Leon Date: Wed, 12 Oct 2022 20:11:18 -0700 Subject: [PATCH 155/158] test: fix samples --- .../google-cloud-recommender/samples/test/quickstart.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/samples/test/quickstart.js b/packages/google-cloud-recommender/samples/test/quickstart.js index c8ca50fcedd..77ec80a42b6 100644 --- a/packages/google-cloud-recommender/samples/test/quickstart.js +++ b/packages/google-cloud-recommender/samples/test/quickstart.js @@ -22,15 +22,21 @@ const path = require('path'); const cp = require('child_process'); const {expect} = require('chai'); const {describe, it} = require('mocha'); +const {RecommenderClient} = require('@google-cloud/recommender'); +const recommender = new RecommenderClient(); const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); const cwd = path.join(__dirname, '..'); describe('Quickstart', () => { + let projectId; + before(async () => { + projectId = await recommender.getProjectId(); + }); it('should run quickstart', async () => { const stdout = execSync( - `node ./quickstart.js ${process.env.GCLOUD_PROJECT}`, + `node ./quickstart.js ${projectId}`, {cwd} ); expect(stdout).to.include('recommendations for'); From 91da867e287cde373158b5d046892951cd5ac60e Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Thu, 13 Oct 2022 03:21:54 +0000 Subject: [PATCH 156/158] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- packages/google-cloud-recommender/samples/test/quickstart.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/google-cloud-recommender/samples/test/quickstart.js b/packages/google-cloud-recommender/samples/test/quickstart.js index 77ec80a42b6..d0c4a624016 100644 --- a/packages/google-cloud-recommender/samples/test/quickstart.js +++ b/packages/google-cloud-recommender/samples/test/quickstart.js @@ -35,10 +35,7 @@ describe('Quickstart', () => { projectId = await recommender.getProjectId(); }); it('should run quickstart', async () => { - const stdout = execSync( - `node ./quickstart.js ${projectId}`, - {cwd} - ); + const stdout = execSync(`node ./quickstart.js ${projectId}`, {cwd}); expect(stdout).to.include('recommendations for'); }); }); From 42a6b8b0079e32c10788cc398f72c5f38aa8840b Mon Sep 17 00:00:00 2001 From: Sofia Leon Date: Wed, 12 Oct 2022 20:29:36 -0700 Subject: [PATCH 157/158] samples(test): add before definition --- packages/google-cloud-recommender/samples/test/quickstart.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-recommender/samples/test/quickstart.js b/packages/google-cloud-recommender/samples/test/quickstart.js index d0c4a624016..a62b5a3baf9 100644 --- a/packages/google-cloud-recommender/samples/test/quickstart.js +++ b/packages/google-cloud-recommender/samples/test/quickstart.js @@ -21,7 +21,7 @@ const path = require('path'); const cp = require('child_process'); const {expect} = require('chai'); -const {describe, it} = require('mocha'); +const {before, describe, it} = require('mocha'); const {RecommenderClient} = require('@google-cloud/recommender'); const recommender = new RecommenderClient(); From 0b44452016674e23dd200c99912dc51cf5fdeb71 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Thu, 13 Oct 2022 03:31:48 +0000 Subject: [PATCH 158/158] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- packages/google-cloud-recommender/samples/test/quickstart.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/google-cloud-recommender/samples/test/quickstart.js b/packages/google-cloud-recommender/samples/test/quickstart.js index 77ec80a42b6..d0c4a624016 100644 --- a/packages/google-cloud-recommender/samples/test/quickstart.js +++ b/packages/google-cloud-recommender/samples/test/quickstart.js @@ -35,10 +35,7 @@ describe('Quickstart', () => { projectId = await recommender.getProjectId(); }); it('should run quickstart', async () => { - const stdout = execSync( - `node ./quickstart.js ${projectId}`, - {cwd} - ); + const stdout = execSync(`node ./quickstart.js ${projectId}`, {cwd}); expect(stdout).to.include('recommendations for'); }); });