diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 2b1dca16e06..78516e1997d 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -20,5 +20,6 @@
"packages/google-devtools-artifactregistry": "2.0.0",
"packages/google-iam": "0.2.0",
"packages/google-maps-routing": "0.1.1",
+ "packages/google-monitoring-dashboard": "2.7.0",
"packages/typeless-sample-bot": "1.0.0"
}
diff --git a/packages/google-monitoring-dashboard/.OwlBot.yaml b/packages/google-monitoring-dashboard/.OwlBot.yaml
new file mode 100644
index 00000000000..682d2532caf
--- /dev/null
+++ b/packages/google-monitoring-dashboard/.OwlBot.yaml
@@ -0,0 +1,24 @@
+# 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.
+
+
+deep-remove-regex:
+ - /owl-bot-staging
+
+deep-copy-regex:
+ - source: /google/monitoring/dashboard/(v.*)/.*-nodejs
+ dest: /owl-bot-staging/google-monitoring-dashboard/$1
+
+begin-after-commit-hash: dea0fe87a4015bc79a036811aafe13c8f9aa8528
+
diff --git a/packages/google-monitoring-dashboard/.eslintignore b/packages/google-monitoring-dashboard/.eslintignore
new file mode 100644
index 00000000000..ea5b04aebe6
--- /dev/null
+++ b/packages/google-monitoring-dashboard/.eslintignore
@@ -0,0 +1,7 @@
+**/node_modules
+**/coverage
+test/fixtures
+build/
+docs/
+protos/
+samples/generated/
diff --git a/packages/google-monitoring-dashboard/.eslintrc.json b/packages/google-monitoring-dashboard/.eslintrc.json
new file mode 100644
index 00000000000..78215349546
--- /dev/null
+++ b/packages/google-monitoring-dashboard/.eslintrc.json
@@ -0,0 +1,3 @@
+{
+ "extends": "./node_modules/gts"
+}
diff --git a/packages/google-monitoring-dashboard/.gitattributes b/packages/google-monitoring-dashboard/.gitattributes
new file mode 100644
index 00000000000..33739cb74e4
--- /dev/null
+++ b/packages/google-monitoring-dashboard/.gitattributes
@@ -0,0 +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-monitoring-dashboard/.gitignore b/packages/google-monitoring-dashboard/.gitignore
new file mode 100644
index 00000000000..5d32b23782f
--- /dev/null
+++ b/packages/google-monitoring-dashboard/.gitignore
@@ -0,0 +1,14 @@
+**/*.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-monitoring-dashboard/.jsdoc.js b/packages/google-monitoring-dashboard/.jsdoc.js
new file mode 100644
index 00000000000..babd5974934
--- /dev/null
+++ b/packages/google-monitoring-dashboard/.jsdoc.js
@@ -0,0 +1,55 @@
+// 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.
+// 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';
+
+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',
+ 'protos'
+ ],
+ includePattern: '\\.js$'
+ },
+ templates: {
+ copyright: 'Copyright 2022 Google LLC',
+ includeDate: false,
+ sourceFiles: false,
+ systemName: '@google-cloud/monitoring-dashboards',
+ theme: 'lumen',
+ default: {
+ outputSourceFiles: false
+ }
+ },
+ markdown: {
+ idInHeadings: true
+ }
+};
diff --git a/packages/google-monitoring-dashboard/.mocharc.js b/packages/google-monitoring-dashboard/.mocharc.js
new file mode 100644
index 00000000000..cdb7b752160
--- /dev/null
+++ b/packages/google-monitoring-dashboard/.mocharc.js
@@ -0,0 +1,29 @@
+// 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.
+// 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,
+ "recursive": true
+}
+if (process.env.MOCHA_THROW_DEPRECATION === 'false') {
+ delete config['throw-deprecation'];
+}
+if (process.env.MOCHA_REPORTER) {
+ config.reporter = process.env.MOCHA_REPORTER;
+}
+if (process.env.MOCHA_REPORTER_OUTPUT) {
+ config['reporter-option'] = `output=${process.env.MOCHA_REPORTER_OUTPUT}`;
+}
+module.exports = config
diff --git a/packages/google-monitoring-dashboard/.nycrc b/packages/google-monitoring-dashboard/.nycrc
new file mode 100644
index 00000000000..b18d5472b62
--- /dev/null
+++ b/packages/google-monitoring-dashboard/.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-monitoring-dashboard/.prettierignore b/packages/google-monitoring-dashboard/.prettierignore
new file mode 100644
index 00000000000..9340ad9b86d
--- /dev/null
+++ b/packages/google-monitoring-dashboard/.prettierignore
@@ -0,0 +1,6 @@
+**/node_modules
+**/coverage
+test/fixtures
+build/
+docs/
+protos/
diff --git a/packages/google-monitoring-dashboard/.prettierrc.js b/packages/google-monitoring-dashboard/.prettierrc.js
new file mode 100644
index 00000000000..d546a4ad546
--- /dev/null
+++ b/packages/google-monitoring-dashboard/.prettierrc.js
@@ -0,0 +1,17 @@
+// 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.
+// 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.
+
+module.exports = {
+ ...require('gts/.prettierrc.json')
+}
diff --git a/packages/google-monitoring-dashboard/.repo-metadata.json b/packages/google-monitoring-dashboard/.repo-metadata.json
new file mode 100644
index 00000000000..62c9073942e
--- /dev/null
+++ b/packages/google-monitoring-dashboard/.repo-metadata.json
@@ -0,0 +1,16 @@
+{
+ "api_id": "monitoring.googleapis.com",
+ "name": "monitoring-dashboards",
+ "language": "nodejs",
+ "product_documentation": "https://cloud.google.com/monitoring/docs",
+ "distribution_name": "@google-cloud/monitoring-dashboards",
+ "issue_tracker": "https://issuetracker.google.com/savedsearches/559785",
+ "name_pretty": "Monitoring Dashboards",
+ "default_version": "v1",
+ "release_level": "stable",
+ "repo": "googleapis/google-cloud-node",
+ "client_documentation": "https://cloud.google.com/nodejs/docs/reference/monitoring-dashboards/latest",
+ "requires_billing": true,
+ "api_shortname": "monitoring",
+ "library_type": "GAPIC_AUTO"
+}
diff --git a/packages/google-monitoring-dashboard/CHANGELOG.md b/packages/google-monitoring-dashboard/CHANGELOG.md
new file mode 100644
index 00000000000..30f32d04680
--- /dev/null
+++ b/packages/google-monitoring-dashboard/CHANGELOG.md
@@ -0,0 +1,204 @@
+# Changelog
+
+## [2.7.0](https://github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.6.1...v2.7.0) (2022-04-08)
+
+
+### Features
+
+* Sync public protos with latests public api state. This adds support for collapsible groups, filters, labels, drilldowns, logs panels and tables ([#257](https://github.com/googleapis/nodejs-monitoring-dashboards/issues/257)) ([5f539c1](https://github.com/googleapis/nodejs-monitoring-dashboards/commit/5f539c1957a448bf475e568f2b4fe76fa5d4c3a8))
+
+### [2.6.1](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.6.0...v2.6.1) (2021-09-08)
+
+
+### Bug Fixes
+
+* **build:** update branch to main ([#215](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/215)) ([9506380](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/950638076cec0320fa886e25b025844f58fce97e))
+
+## [2.6.0](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.5.1...v2.6.0) (2021-08-23)
+
+
+### Features
+
+* turns on self-signed JWT feature flag ([#212](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/212)) ([395b00a](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/395b00a9f531432eb38cb7f10967a30ed8b4f66a))
+
+### [2.5.1](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.5.0...v2.5.1) (2021-08-17)
+
+
+### Bug Fixes
+
+* **deps:** google-gax v2.24.1 ([#210](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/210)) ([f9d54b4](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/f9d54b4ed75ee569499553e1e8a2193459c735aa))
+
+## [2.5.0](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.4.2...v2.5.0) (2021-08-05)
+
+
+### ⚠ BREAKING CHANGES
+
+* Specify a C# namespace option to be consistent with other Cloud APIs (#205)
+
+### Bug Fixes
+
+* **build:** c# change is not breaking for Node.js ([#207](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/207)) ([5402d8d](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/5402d8d81c0336544afabbb818f7aa085bfd8917))
+* Specify a C# namespace option to be consistent with other Cloud APIs ([#205](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/205)) ([8eee840](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/8eee8403fe71ec18f41cc47afc41620b470d3323))
+
+### [2.4.2](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.4.1...v2.4.2) (2021-07-16)
+
+
+### Bug Fixes
+
+* Updating WORKSPACE files to use the newest version of the Typescript generator. ([#199](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/199)) ([273c85d](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/273c85d6d33d54e1ff880dad1127cf4c8f69fbbc))
+
+### [2.4.1](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.4.0...v2.4.1) (2021-07-12)
+
+
+### Bug Fixes
+
+* **deps:** google-gax v2.17.1 ([#196](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/196)) ([c6c2ae0](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/c6c2ae00ea49c80da7668f8383b62cfd17258159))
+
+## [2.4.0](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.3.4...v2.4.0) (2021-07-07)
+
+
+### Features
+
+* added validation only mode when writing dashboards feat: added alert chart widget ([#194](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/194)) ([867a08c](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/867a08cabca0f96701f5f8975c6f6e5d0522189f))
+
+### [2.3.4](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.3.3...v2.3.4) (2021-06-29)
+
+
+### Bug Fixes
+
+* **deps:** google-gax v2.17.0 with mTLS ([#191](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/191)) ([88b6413](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/88b6413a83bb2594f1f7371073940e37118fdcbb))
+
+### [2.3.3](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.3.2...v2.3.3) (2021-06-22)
+
+
+### Bug Fixes
+
+* make request optional in all cases ([#185](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/185)) ([898bf5c](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/898bf5c5259cab24d64326d7b0ddf37d6a7e7571))
+
+### [2.3.2](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.3.1...v2.3.2) (2021-05-25)
+
+
+### Bug Fixes
+
+* GoogleAdsError missing using generator version after 1.3.0 ([#177](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/177)) ([5e89c98](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/5e89c9890ce5f2762398f46105be44301d4d6aa2))
+
+### [2.3.1](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.3.0...v2.3.1) (2021-05-12)
+
+
+### Bug Fixes
+
+* **deps:** require google-gax v2.12.0 ([#167](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/167)) ([3316b86](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/3316b8619dafe3dde4dbba355907cdf804974ef8))
+* use require() to load JSON protos ([#170](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/170)) ([af92ed3](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/af92ed3942a3889a3567514b3614e04a2955dc17))
+
+## [2.3.0](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.2.0...v2.3.0) (2021-03-19)
+
+
+### Features
+
+* added mosaic layout docs:clarified alignment_period max value and updated IAM docs link ([#152](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/152)) ([7ccce5a](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/7ccce5a57f0d927fa33a87cad94bf05d6fcb80da))
+
+## [2.2.0](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.1.3...v2.2.0) (2021-01-09)
+
+
+### Features
+
+* adds style enumeration ([#143](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/143)) ([4a90ce9](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/4a90ce9fa7722fde537868ae8aa8f47e45c7789c))
+
+### [2.1.3](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.1.2...v2.1.3) (2020-11-25)
+
+
+### Bug Fixes
+
+* **browser:** check for fetch on window ([23f9595](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/23f9595ba7622f3f6eb4d705506996e1e34fc107))
+
+### [2.1.2](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.1.1...v2.1.2) (2020-11-07)
+
+
+### Bug Fixes
+
+* do not modify options object, use defaultScopes ([#134](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/134)) ([a95ac89](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/a95ac893c9f5d06205244b6b48e5db39a8c4b1e3))
+
+### [2.1.1](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.1.0...v2.1.1) (2020-07-24)
+
+
+### Bug Fixes
+
+* move gitattributes files to node templates ([#107](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/107)) ([7e7a729](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/7e7a729686b59354a255ca4da86b34c0e06523df))
+
+## [2.1.0](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v2.0.0...v2.1.0) (2020-06-28)
+
+
+### Features
+
+* Add support for secondary_aggregation and Monitoring Query Language ([#92](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/92)) ([af186dc](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/af186dc51be796e8c8ce83cfdc75e8b7f8017694))
+* move ts target to es2018 from es2016 ([#87](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/87)) ([846ff12](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/846ff12d5a3858cd4c91cb4fcf835b40d5f9b03e))
+
+
+### Bug Fixes
+
+* proper fallback option handling ([33c441c](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/33c441c0484cdc0e09203ad033e220ac57324607))
+* update node issue template ([#93](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/93)) ([e561059](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/e561059ddba9b46cec6ae14fe3d522a83ef231ca))
+
+## [2.0.0](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v1.3.0...v2.0.0) (2020-05-08)
+
+
+### ⚠ 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 ([#58](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/58)) ([0891dab](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/0891dab8f977cdb8825e12b3faf8d45caeea4ba4))
+
+
+### Bug Fixes
+
+* export explicit version from protos.js ([#63](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/63)) ([a1ef68f](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/a1ef68f0f3f6366d41ac4de23e31cca67d232c50))
+* regen protos and tests, formatting ([#81](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/81)) ([61314fe](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/61314fe1099dfeab00d1392ffe1757880d398497))
+* remove eslint, update gax, fix generated protos, run the generator ([#68](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/68)) ([8c33d58](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/8c33d5811fbf60adc7c9dd15be4e64e59630e058))
+
+## [1.3.0](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v1.2.0...v1.3.0) (2020-03-06)
+
+
+### Features
+
+* deferred client initialization ([#43](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/43)) ([63a9eaa](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/63a9eaa8cc7d3afc9cb203027a4d7076e1c1c970))
+
+## [1.2.0](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v1.1.0...v1.2.0) (2020-02-27)
+
+
+### Features
+
+* export protos in src/index.ts ([7a601bd](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/7a601bd1165e8be3e6f4beaea53c6e285d20942e))
+
+## [1.1.0](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v1.0.2...v1.1.0) (2020-02-13)
+
+
+### Features
+
+* bump the release level to ga ([#30](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/30)) ([c4080f7](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/c4080f7e2dbbcb5e42c928c4dfd5174d892975a2))
+
+### [1.0.2](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v1.0.1...v1.0.2) (2020-01-28)
+
+
+### Bug Fixes
+
+* enum, bytes, and Long types now accept strings ([beecd33](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/beecd3387117e9d52b845f938000a8284ed8212f))
+
+### [1.0.1](https://www.github.com/googleapis/nodejs-monitoring-dashboards/compare/v1.0.0...v1.0.1) (2020-01-09)
+
+
+### Bug Fixes
+
+* **build:** autorelease should handle tagging ([#7](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/7)) ([000aed2](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/000aed25e186f6e174ca49aa90dd0d4d6f651644))
+
+## 1.0.0 (2020-01-04)
+
+
+### ⚠ BREAKING CHANGES
+
+* initial generation of library (#1)
+
+### Features
+
+* initial generation of library ([#1](https://www.github.com/googleapis/nodejs-monitoring-dashboards/issues/1)) ([b513f47](https://www.github.com/googleapis/nodejs-monitoring-dashboards/commit/b513f47f8d6d34380ea8ebedb0e9b41f360630ab))
diff --git a/packages/google-monitoring-dashboard/CODE_OF_CONDUCT.md b/packages/google-monitoring-dashboard/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000000..2add2547a81
--- /dev/null
+++ b/packages/google-monitoring-dashboard/CODE_OF_CONDUCT.md
@@ -0,0 +1,94 @@
+
+# Code of Conduct
+
+## Our Pledge
+
+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 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, 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-monitoring-dashboard/CONTRIBUTING.md b/packages/google-monitoring-dashboard/CONTRIBUTING.md
new file mode 100644
index 00000000000..53bbf08ab2b
--- /dev/null
+++ b/packages/google-monitoring-dashboard/CONTRIBUTING.md
@@ -0,0 +1,76 @@
+# 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.
+
+### Before you begin
+
+1. [Select or create a Cloud Platform project][projects].
+1. [Enable billing for your project][billing].
+1. [Enable the Monitoring Dashboards 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].
+
+1. Install dependencies:
+
+ npm install
+
+1. Run the tests:
+
+ # Run unit tests.
+ npm test
+
+ # Run sample integration tests.
+ npm run samples-test
+
+ # Run all system tests.
+ npm run system-test
+
+1. Lint (and maybe fix) any changes:
+
+ npm run fix
+
+[setup]: https://cloud.google.com/nodejs/docs/setup
+[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=monitoring.googleapis.com
+[auth]: https://cloud.google.com/docs/authentication/getting-started
\ No newline at end of file
diff --git a/packages/google-monitoring-dashboard/LICENSE b/packages/google-monitoring-dashboard/LICENSE
new file mode 100644
index 00000000000..d6456956733
--- /dev/null
+++ b/packages/google-monitoring-dashboard/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-monitoring-dashboard/README.md b/packages/google-monitoring-dashboard/README.md
new file mode 100644
index 00000000000..f788d26887c
--- /dev/null
+++ b/packages/google-monitoring-dashboard/README.md
@@ -0,0 +1,167 @@
+[//]: # "This README.md file is auto-generated, all changes to this file will be lost."
+[//]: # "To regenerate it, use `python -m synthtool`."
+
+
+# [Monitoring Dashboards: Node.js Client](https://github.com/googleapis/google-cloud-node)
+
+[](https://cloud.google.com/terms/launch-stages)
+[](https://www.npmjs.org/package/@google-cloud/monitoring-dashboards)
+
+
+
+
+interact with dashboards for viewing and analyzing metric data
+
+
+A comprehensive list of changes in each version may be found in
+[the CHANGELOG](https://github.com/googleapis/google-cloud-node/blob/main/CHANGELOG.md).
+
+* [Monitoring Dashboards Node.js Client API Reference][client-docs]
+* [Monitoring Dashboards Documentation][product-docs]
+* [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].
+
+[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)
+ * [Using the client library](#using-the-client-library)
+* [Samples](#samples)
+* [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 Monitoring Dashboards 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/monitoring-dashboards
+```
+
+
+### Using the client library
+
+```javascript
+// Imports the Google Cloud client library
+const {
+ DashboardsServiceClient,
+} = require('@google-cloud/monitoring-dashboards');
+
+// Creates a client
+const ds = new DashboardsServiceClient();
+
+// parent = 'projects/my-project', // Project to list dashboards for.
+
+async function listDashboards() {
+ const [dashboards] = await ds.listDashboards({
+ parent,
+ });
+ console.info('Listing Dashboards:');
+ for (const dashboard of dashboards) {
+ console.info(`\t${dashboard.displayName}`);
+ }
+}
+listDashboards();
+
+```
+
+
+
+## Samples
+
+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 |
+| --------------------------- | --------------------------------- | ------ |
+| Dashboards_service.create_dashboard | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-monitoring-dashboard/samples/generated/v1/dashboards_service.create_dashboard.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-monitoring-dashboard/samples/generated/v1/dashboards_service.create_dashboard.js,samples/README.md) |
+| Dashboards_service.delete_dashboard | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-monitoring-dashboard/samples/generated/v1/dashboards_service.delete_dashboard.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-monitoring-dashboard/samples/generated/v1/dashboards_service.delete_dashboard.js,samples/README.md) |
+| Dashboards_service.get_dashboard | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-monitoring-dashboard/samples/generated/v1/dashboards_service.get_dashboard.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-monitoring-dashboard/samples/generated/v1/dashboards_service.get_dashboard.js,samples/README.md) |
+| Dashboards_service.list_dashboards | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-monitoring-dashboard/samples/generated/v1/dashboards_service.list_dashboards.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-monitoring-dashboard/samples/generated/v1/dashboards_service.list_dashboards.js,samples/README.md) |
+| Dashboards_service.update_dashboard | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-monitoring-dashboard/samples/generated/v1/dashboards_service.update_dashboard.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-monitoring-dashboard/samples/generated/v1/dashboards_service.update_dashboard.js,samples/README.md) |
+| Quickstart | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-monitoring-dashboard/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-monitoring-dashboard/samples/quickstart.js,samples/README.md) |
+| Quickstart | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-monitoring-dashboard/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-monitoring-dashboard/samples/test/quickstart.js,samples/README.md) |
+
+
+
+The [Monitoring Dashboards 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.
+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.
+
+Google's client libraries support legacy versions of Node.js runtimes on a
+best-efforts basis with the following warnings:
+
+* Legacy versions are not tested in continuous integration.
+* Some security patches and features cannot be backported.
+* Dependencies cannot be kept up-to-date.
+
+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/monitoring-dashboards@legacy-8` installs client libraries
+for versions compatible with Node.js 8.
+
+## Versioning
+
+This library follows [Semantic Versioning](http://semver.org/).
+
+
+
+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 **stable** libraries
+are addressed with the highest 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/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`)
+are generated from a central template. To edit one of these files, make an edit
+to its templates in
+[directory](https://github.com/googleapis/synthtool).
+
+## License
+
+Apache Version 2.0
+
+See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE)
+
+[client-docs]: https://cloud.google.com/nodejs/docs/reference/monitoring-dashboards/latest
+[product-docs]: https://cloud.google.com/monitoring/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=monitoring.googleapis.com
+[auth]: https://cloud.google.com/docs/authentication/getting-started
diff --git a/packages/google-monitoring-dashboard/linkinator.config.json b/packages/google-monitoring-dashboard/linkinator.config.json
new file mode 100644
index 00000000000..befd23c8633
--- /dev/null
+++ b/packages/google-monitoring-dashboard/linkinator.config.json
@@ -0,0 +1,16 @@
+{
+ "recurse": true,
+ "skip": [
+ "https://codecov.io/gh/googleapis/",
+ "www.googleapis.com",
+ "img.shields.io",
+ "https://console.cloud.google.com/cloudshell",
+ "https://support.google.com"
+ ],
+ "silent": true,
+ "concurrency": 5,
+ "retry": true,
+ "retryErrors": true,
+ "retryErrorsCount": 5,
+ "retryErrorsJitter": 3000
+}
diff --git a/packages/google-monitoring-dashboard/owlbot.py b/packages/google-monitoring-dashboard/owlbot.py
new file mode 100644
index 00000000000..2246ed0501f
--- /dev/null
+++ b/packages/google-monitoring-dashboard/owlbot.py
@@ -0,0 +1,21 @@
+# 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 script is used to synthesize generated parts of this library."""
+
+import synthtool.languages.node as node
+
+node.owlbot_main(
+ staging_excludes=['README.md', 'package.json'],
+ templates_excludes=['.github/release-please.yml']
+)
diff --git a/packages/google-monitoring-dashboard/package.json b/packages/google-monitoring-dashboard/package.json
new file mode 100644
index 00000000000..13374489b37
--- /dev/null
+++ b/packages/google-monitoring-dashboard/package.json
@@ -0,0 +1,54 @@
+{
+ "name": "@google-cloud/monitoring-dashboards",
+ "version": "2.7.0",
+ "description": "interact with dashboards for viewing and analyzing metric data",
+ "repository": "googleapis/nodejs-monitoring-dashboards",
+ "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",
+ "lint": "gts check",
+ "predocs-test": "npm run docs",
+ "prepare": "npm run compile-protos && npm run compile",
+ "system-test": "npm run compile && c8 mocha build/system-test",
+ "test": "c8 mocha build/test",
+ "samples-test": "npm run compile && cd samples/ && npm link ../ && npm i && npm test",
+ "prelint": "cd samples; npm link ../; npm install",
+ "precompile": "gts clean"
+ },
+ "dependencies": {
+ "google-gax": "^3.3.0"
+ },
+ "devDependencies": {
+ "@types/mocha": "^9.0.0",
+ "@types/node": "^16.0.0",
+ "@types/sinon": "^10.0.0",
+ "c8": "^7.0.0",
+ "gts": "^3.1.0",
+ "jsdoc": "^3.5.5",
+ "jsdoc-fresh": "^2.0.0",
+ "jsdoc-region-tag": "^2.0.0",
+ "linkinator": "^4.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": "^4.6.4",
+ "webpack": "^5.0.0",
+ "webpack-cli": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/alertchart.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/alertchart.proto
new file mode 100644
index 00000000000..2a92423b8f7
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/alertchart.proto
@@ -0,0 +1,41 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "AlertChartProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// A chart that displays alert policy data.
+message AlertChart {
+ option (google.api.resource) = {
+ type: "monitoring.googleapis.com/AlertPolicy"
+ pattern: "projects/{project}/alertPolicies/{alert_policy}"
+ };
+
+ // Required. The resource name of the alert policy. The format is:
+ //
+ // projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/collapsible_group.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/collapsible_group.proto
new file mode 100644
index 00000000000..513560eb169
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/collapsible_group.proto
@@ -0,0 +1,32 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "CollapsibleGroupProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// A widget that groups the other widgets. All widgets that are within
+// the area spanned by the grouping widget are considered member widgets.
+message CollapsibleGroup {
+ // The collapsed state of the widget on first page load.
+ bool collapsed = 1;
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/common.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/common.proto
new file mode 100644
index 00000000000..6b8e6b3d549
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/common.proto
@@ -0,0 +1,452 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+import "google/protobuf/duration.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "CommonProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// Describes how to combine multiple time series to provide a different view of
+// the data. Aggregation of time series is done in two steps. First, each time
+// series in the set is _aligned_ to the same time interval boundaries, then the
+// set of time series is optionally _reduced_ in number.
+//
+// Alignment consists of applying the `per_series_aligner` operation
+// to each time series after its data has been divided into regular
+// `alignment_period` time intervals. This process takes _all_ of the data
+// points in an alignment period, applies a mathematical transformation such as
+// averaging, minimum, maximum, delta, etc., and converts them into a single
+// data point per period.
+//
+// Reduction is when the aligned and transformed time series can optionally be
+// combined, reducing the number of time series through similar mathematical
+// transformations. Reduction involves applying a `cross_series_reducer` to
+// all the time series, optionally sorting the time series into subsets with
+// `group_by_fields`, and applying the reducer to each subset.
+//
+// The raw time series data can contain a huge amount of information from
+// multiple sources. Alignment and reduction transforms this mass of data into
+// a more manageable and representative collection of data, for example "the
+// 95% latency across the average of all tasks in a cluster". This
+// representative data can be more easily graphed and comprehended, and the
+// individual time series data is still available for later drilldown. For more
+// details, see [Filtering and
+// aggregation](https://cloud.google.com/monitoring/api/v3/aggregation).
+message Aggregation {
+ // The `Aligner` specifies the operation that will be applied to the data
+ // points in each alignment period in a time series. Except for
+ // `ALIGN_NONE`, which specifies that no operation be applied, each alignment
+ // operation replaces the set of data values in each alignment period with
+ // a single value: the result of applying the operation to the data values.
+ // An aligned time series has a single data value at the end of each
+ // `alignment_period`.
+ //
+ // An alignment operation can change the data type of the values, too. For
+ // example, if you apply a counting operation to boolean values, the data
+ // `value_type` in the original time series is `BOOLEAN`, but the `value_type`
+ // in the aligned result is `INT64`.
+ enum Aligner {
+ // No alignment. Raw data is returned. Not valid if cross-series reduction
+ // is requested. The `value_type` of the result is the same as the
+ // `value_type` of the input.
+ ALIGN_NONE = 0;
+
+ // Align and convert to
+ // [DELTA][google.api.MetricDescriptor.MetricKind.DELTA].
+ // The output is `delta = y1 - y0`.
+ //
+ // This alignment is valid for
+ // [CUMULATIVE][google.api.MetricDescriptor.MetricKind.CUMULATIVE] and
+ // `DELTA` metrics. If the selected alignment period results in periods
+ // with no data, then the aligned value for such a period is created by
+ // interpolation. The `value_type` of the aligned result is the same as
+ // the `value_type` of the input.
+ ALIGN_DELTA = 1;
+
+ // Align and convert to a rate. The result is computed as
+ // `rate = (y1 - y0)/(t1 - t0)`, or "delta over time".
+ // Think of this aligner as providing the slope of the line that passes
+ // through the value at the start and at the end of the `alignment_period`.
+ //
+ // This aligner is valid for `CUMULATIVE`
+ // and `DELTA` metrics with numeric values. If the selected alignment
+ // period results in periods with no data, then the aligned value for
+ // such a period is created by interpolation. The output is a `GAUGE`
+ // metric with `value_type` `DOUBLE`.
+ //
+ // If, by "rate", you mean "percentage change", see the
+ // `ALIGN_PERCENT_CHANGE` aligner instead.
+ ALIGN_RATE = 2;
+
+ // Align by interpolating between adjacent points around the alignment
+ // period boundary. This aligner is valid for `GAUGE` metrics with
+ // numeric values. The `value_type` of the aligned result is the same as the
+ // `value_type` of the input.
+ ALIGN_INTERPOLATE = 3;
+
+ // Align by moving the most recent data point before the end of the
+ // alignment period to the boundary at the end of the alignment
+ // period. This aligner is valid for `GAUGE` metrics. The `value_type` of
+ // the aligned result is the same as the `value_type` of the input.
+ ALIGN_NEXT_OLDER = 4;
+
+ // Align the time series by returning the minimum value in each alignment
+ // period. This aligner is valid for `GAUGE` and `DELTA` metrics with
+ // numeric values. The `value_type` of the aligned result is the same as
+ // the `value_type` of the input.
+ ALIGN_MIN = 10;
+
+ // Align the time series by returning the maximum value in each alignment
+ // period. This aligner is valid for `GAUGE` and `DELTA` metrics with
+ // numeric values. The `value_type` of the aligned result is the same as
+ // the `value_type` of the input.
+ ALIGN_MAX = 11;
+
+ // Align the time series by returning the mean value in each alignment
+ // period. This aligner is valid for `GAUGE` and `DELTA` metrics with
+ // numeric values. The `value_type` of the aligned result is `DOUBLE`.
+ ALIGN_MEAN = 12;
+
+ // Align the time series by returning the number of values in each alignment
+ // period. This aligner is valid for `GAUGE` and `DELTA` metrics with
+ // numeric or Boolean values. The `value_type` of the aligned result is
+ // `INT64`.
+ ALIGN_COUNT = 13;
+
+ // Align the time series by returning the sum of the values in each
+ // alignment period. This aligner is valid for `GAUGE` and `DELTA`
+ // metrics with numeric and distribution values. The `value_type` of the
+ // aligned result is the same as the `value_type` of the input.
+ ALIGN_SUM = 14;
+
+ // Align the time series by returning the standard deviation of the values
+ // in each alignment period. This aligner is valid for `GAUGE` and
+ // `DELTA` metrics with numeric values. The `value_type` of the output is
+ // `DOUBLE`.
+ ALIGN_STDDEV = 15;
+
+ // Align the time series by returning the number of `True` values in
+ // each alignment period. This aligner is valid for `GAUGE` metrics with
+ // Boolean values. The `value_type` of the output is `INT64`.
+ ALIGN_COUNT_TRUE = 16;
+
+ // Align the time series by returning the number of `False` values in
+ // each alignment period. This aligner is valid for `GAUGE` metrics with
+ // Boolean values. The `value_type` of the output is `INT64`.
+ ALIGN_COUNT_FALSE = 24;
+
+ // Align the time series by returning the ratio of the number of `True`
+ // values to the total number of values in each alignment period. This
+ // aligner is valid for `GAUGE` metrics with Boolean values. The output
+ // value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.
+ ALIGN_FRACTION_TRUE = 17;
+
+ // Align the time series by using [percentile
+ // aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting
+ // data point in each alignment period is the 99th percentile of all data
+ // points in the period. This aligner is valid for `GAUGE` and `DELTA`
+ // metrics with distribution values. The output is a `GAUGE` metric with
+ // `value_type` `DOUBLE`.
+ ALIGN_PERCENTILE_99 = 18;
+
+ // Align the time series by using [percentile
+ // aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting
+ // data point in each alignment period is the 95th percentile of all data
+ // points in the period. This aligner is valid for `GAUGE` and `DELTA`
+ // metrics with distribution values. The output is a `GAUGE` metric with
+ // `value_type` `DOUBLE`.
+ ALIGN_PERCENTILE_95 = 19;
+
+ // Align the time series by using [percentile
+ // aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting
+ // data point in each alignment period is the 50th percentile of all data
+ // points in the period. This aligner is valid for `GAUGE` and `DELTA`
+ // metrics with distribution values. The output is a `GAUGE` metric with
+ // `value_type` `DOUBLE`.
+ ALIGN_PERCENTILE_50 = 20;
+
+ // Align the time series by using [percentile
+ // aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting
+ // data point in each alignment period is the 5th percentile of all data
+ // points in the period. This aligner is valid for `GAUGE` and `DELTA`
+ // metrics with distribution values. The output is a `GAUGE` metric with
+ // `value_type` `DOUBLE`.
+ ALIGN_PERCENTILE_05 = 21;
+
+ // Align and convert to a percentage change. This aligner is valid for
+ // `GAUGE` and `DELTA` metrics with numeric values. This alignment returns
+ // `((current - previous)/previous) * 100`, where the value of `previous` is
+ // determined based on the `alignment_period`.
+ //
+ // If the values of `current` and `previous` are both 0, then the returned
+ // value is 0. If only `previous` is 0, the returned value is infinity.
+ //
+ // A 10-minute moving mean is computed at each point of the alignment period
+ // prior to the above calculation to smooth the metric and prevent false
+ // positives from very short-lived spikes. The moving mean is only
+ // applicable for data whose values are `>= 0`. Any values `< 0` are
+ // treated as a missing datapoint, and are ignored. While `DELTA`
+ // metrics are accepted by this alignment, special care should be taken that
+ // the values for the metric will always be positive. The output is a
+ // `GAUGE` metric with `value_type` `DOUBLE`.
+ ALIGN_PERCENT_CHANGE = 23;
+ }
+
+ // A Reducer operation describes how to aggregate data points from multiple
+ // time series into a single time series, where the value of each data point
+ // in the resulting series is a function of all the already aligned values in
+ // the input time series.
+ enum Reducer {
+ // No cross-time series reduction. The output of the `Aligner` is
+ // returned.
+ REDUCE_NONE = 0;
+
+ // Reduce by computing the mean value across time series for each
+ // alignment period. This reducer is valid for
+ // [DELTA][google.api.MetricDescriptor.MetricKind.DELTA] and
+ // [GAUGE][google.api.MetricDescriptor.MetricKind.GAUGE] metrics with
+ // numeric or distribution values. The `value_type` of the output is
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
+ REDUCE_MEAN = 1;
+
+ // Reduce by computing the minimum value across time series for each
+ // alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics
+ // with numeric values. The `value_type` of the output is the same as the
+ // `value_type` of the input.
+ REDUCE_MIN = 2;
+
+ // Reduce by computing the maximum value across time series for each
+ // alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics
+ // with numeric values. The `value_type` of the output is the same as the
+ // `value_type` of the input.
+ REDUCE_MAX = 3;
+
+ // Reduce by computing the sum across time series for each
+ // alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics
+ // with numeric and distribution values. The `value_type` of the output is
+ // the same as the `value_type` of the input.
+ REDUCE_SUM = 4;
+
+ // Reduce by computing the standard deviation across time series
+ // for each alignment period. This reducer is valid for `DELTA` and
+ // `GAUGE` metrics with numeric or distribution values. The `value_type`
+ // of the output is `DOUBLE`.
+ REDUCE_STDDEV = 5;
+
+ // Reduce by computing the number of data points across time series
+ // for each alignment period. This reducer is valid for `DELTA` and
+ // `GAUGE` metrics of numeric, Boolean, distribution, and string
+ // `value_type`. The `value_type` of the output is `INT64`.
+ REDUCE_COUNT = 6;
+
+ // Reduce by computing the number of `True`-valued data points across time
+ // series for each alignment period. This reducer is valid for `DELTA` and
+ // `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output
+ // is `INT64`.
+ REDUCE_COUNT_TRUE = 7;
+
+ // Reduce by computing the number of `False`-valued data points across time
+ // series for each alignment period. This reducer is valid for `DELTA` and
+ // `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output
+ // is `INT64`.
+ REDUCE_COUNT_FALSE = 15;
+
+ // Reduce by computing the ratio of the number of `True`-valued data points
+ // to the total number of data points for each alignment period. This
+ // reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`.
+ // The output value is in the range [0.0, 1.0] and has `value_type`
+ // `DOUBLE`.
+ REDUCE_FRACTION_TRUE = 8;
+
+ // Reduce by computing the [99th
+ // percentile](https://en.wikipedia.org/wiki/Percentile) of data points
+ // across time series for each alignment period. This reducer is valid for
+ // `GAUGE` and `DELTA` metrics of numeric and distribution type. The value
+ // of the output is `DOUBLE`.
+ REDUCE_PERCENTILE_99 = 9;
+
+ // Reduce by computing the [95th
+ // percentile](https://en.wikipedia.org/wiki/Percentile) of data points
+ // across time series for each alignment period. This reducer is valid for
+ // `GAUGE` and `DELTA` metrics of numeric and distribution type. The value
+ // of the output is `DOUBLE`.
+ REDUCE_PERCENTILE_95 = 10;
+
+ // Reduce by computing the [50th
+ // percentile](https://en.wikipedia.org/wiki/Percentile) of data points
+ // across time series for each alignment period. This reducer is valid for
+ // `GAUGE` and `DELTA` metrics of numeric and distribution type. The value
+ // of the output is `DOUBLE`.
+ REDUCE_PERCENTILE_50 = 11;
+
+ // Reduce by computing the [5th
+ // percentile](https://en.wikipedia.org/wiki/Percentile) of data points
+ // across time series for each alignment period. This reducer is valid for
+ // `GAUGE` and `DELTA` metrics of numeric and distribution type. The value
+ // of the output is `DOUBLE`.
+ REDUCE_PERCENTILE_05 = 12;
+ }
+
+ // The `alignment_period` specifies a time interval, in seconds, that is used
+ // to divide the data in all the
+ // [time series][google.monitoring.v3.TimeSeries] into consistent blocks of
+ // time. This will be done before the per-series aligner can be applied to
+ // the data.
+ //
+ // The value must be at least 60 seconds. If a per-series aligner other than
+ // `ALIGN_NONE` is specified, this field is required or an error is returned.
+ // If no per-series aligner is specified, or the aligner `ALIGN_NONE` is
+ // specified, then this field is ignored.
+ //
+ // The maximum value of the `alignment_period` is 2 years, or 104 weeks.
+ google.protobuf.Duration alignment_period = 1;
+
+ // An `Aligner` describes how to bring the data points in a single
+ // time series into temporal alignment. Except for `ALIGN_NONE`, all
+ // alignments cause all the data points in an `alignment_period` to be
+ // mathematically grouped together, resulting in a single data point for
+ // each `alignment_period` with end timestamp at the end of the period.
+ //
+ // Not all alignment operations may be applied to all time series. The valid
+ // choices depend on the `metric_kind` and `value_type` of the original time
+ // series. Alignment can change the `metric_kind` or the `value_type` of
+ // the time series.
+ //
+ // Time series data must be aligned in order to perform cross-time
+ // series reduction. If `cross_series_reducer` is specified, then
+ // `per_series_aligner` must be specified and not equal to `ALIGN_NONE`
+ // and `alignment_period` must be specified; otherwise, an error is
+ // returned.
+ Aligner per_series_aligner = 2;
+
+ // The reduction operation to be used to combine time series into a single
+ // time series, where the value of each data point in the resulting series is
+ // a function of all the already aligned values in the input time series.
+ //
+ // Not all reducer operations can be applied to all time series. The valid
+ // choices depend on the `metric_kind` and the `value_type` of the original
+ // time series. Reduction can yield a time series with a different
+ // `metric_kind` or `value_type` than the input time series.
+ //
+ // Time series data must first be aligned (see `per_series_aligner`) in order
+ // to perform cross-time series reduction. If `cross_series_reducer` is
+ // specified, then `per_series_aligner` must be specified, and must not be
+ // `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an
+ // error is returned.
+ Reducer cross_series_reducer = 4;
+
+ // The set of fields to preserve when `cross_series_reducer` is
+ // specified. The `group_by_fields` determine how the time series are
+ // partitioned into subsets prior to applying the aggregation
+ // operation. Each subset contains time series that have the same
+ // value for each of the grouping fields. Each individual time
+ // series is a member of exactly one subset. The
+ // `cross_series_reducer` is applied to each subset of time series.
+ // It is not possible to reduce across different resource types, so
+ // this field implicitly contains `resource.type`. Fields not
+ // specified in `group_by_fields` are aggregated away. If
+ // `group_by_fields` is not specified and all the time series have
+ // the same resource type, then the time series are aggregated into
+ // a single output time series. If `cross_series_reducer` is not
+ // defined, this field is ignored.
+ repeated string group_by_fields = 5;
+}
+
+// Describes a ranking-based time series filter. Each input time series is
+// ranked with an aligner. The filter will allow up to `num_time_series` time
+// series to pass through it, selecting them based on the relative ranking.
+//
+// For example, if `ranking_method` is `METHOD_MEAN`,`direction` is `BOTTOM`,
+// and `num_time_series` is 3, then the 3 times series with the lowest mean
+// values will pass through the filter.
+message PickTimeSeriesFilter {
+ // The value reducers that can be applied to a `PickTimeSeriesFilter`.
+ enum Method {
+ // Not allowed. You must specify a different `Method` if you specify a
+ // `PickTimeSeriesFilter`.
+ METHOD_UNSPECIFIED = 0;
+
+ // Select the mean of all values.
+ METHOD_MEAN = 1;
+
+ // Select the maximum value.
+ METHOD_MAX = 2;
+
+ // Select the minimum value.
+ METHOD_MIN = 3;
+
+ // Compute the sum of all values.
+ METHOD_SUM = 4;
+
+ // Select the most recent value.
+ METHOD_LATEST = 5;
+ }
+
+ // Describes the ranking directions.
+ enum Direction {
+ // Not allowed. You must specify a different `Direction` if you specify a
+ // `PickTimeSeriesFilter`.
+ DIRECTION_UNSPECIFIED = 0;
+
+ // Pass the highest `num_time_series` ranking inputs.
+ TOP = 1;
+
+ // Pass the lowest `num_time_series` ranking inputs.
+ BOTTOM = 2;
+ }
+
+ // `ranking_method` is applied to each time series independently to produce
+ // the value which will be used to compare the time series to other time
+ // series.
+ Method ranking_method = 1;
+
+ // How many time series to allow to pass through the filter.
+ int32 num_time_series = 2;
+
+ // How to use the ranking to select time series that pass through the filter.
+ Direction direction = 3;
+}
+
+// A filter that ranks streams based on their statistical relation to other
+// streams in a request.
+// Note: This field is deprecated and completely ignored by the API.
+message StatisticalTimeSeriesFilter {
+ // The filter methods that can be applied to a stream.
+ enum Method {
+ // Not allowed in well-formed requests.
+ METHOD_UNSPECIFIED = 0;
+
+ // Compute the outlier score of each stream.
+ METHOD_CLUSTER_OUTLIER = 1;
+ }
+
+ // `rankingMethod` is applied to a set of time series, and then the produced
+ // value for each individual time series is used to compare a given time
+ // series to others.
+ // These are methods that cannot be applied stream-by-stream, but rather
+ // require the full context of a request to evaluate time series.
+ Method ranking_method = 1;
+
+ // How many time series to output.
+ int32 num_time_series = 2;
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/dashboard.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/dashboard.proto
new file mode 100644
index 00000000000..66f4c530081
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/dashboard.proto
@@ -0,0 +1,79 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/monitoring/dashboard/v1/dashboard_filter.proto";
+import "google/monitoring/dashboard/v1/layouts.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "DashboardsProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// A Google Stackdriver dashboard. Dashboards define the content and layout
+// of pages in the Stackdriver web application.
+message Dashboard {
+ option (google.api.resource) = {
+ type: "monitoring.googleapis.com/Dashboard"
+ pattern: "projects/{project}/dashboards/{dashboard}"
+ };
+
+ // Immutable. The resource name of the dashboard.
+ string name = 1 [(google.api.field_behavior) = IMMUTABLE];
+
+ // Required. The mutable, human-readable name.
+ string display_name = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // `etag` is used for optimistic concurrency control as a way to help
+ // prevent simultaneous updates of a policy from overwriting each other.
+ // An `etag` is returned in the response to `GetDashboard`, and
+ // users are expected to put that etag in the request to `UpdateDashboard` to
+ // ensure that their change will be applied to the same version of the
+ // Dashboard configuration. The field should not be passed during
+ // dashboard creation.
+ string etag = 4;
+
+ // A dashboard's root container element that defines the layout style.
+ oneof layout {
+ // Content is arranged with a basic layout that re-flows a simple list of
+ // informational elements like widgets or tiles.
+ GridLayout grid_layout = 5;
+
+ // The content is arranged as a grid of tiles, with each content widget
+ // occupying one or more grid blocks.
+ MosaicLayout mosaic_layout = 6;
+
+ // The content is divided into equally spaced rows and the widgets are
+ // arranged horizontally.
+ RowLayout row_layout = 8;
+
+ // The content is divided into equally spaced columns and the widgets are
+ // arranged vertically.
+ ColumnLayout column_layout = 9;
+ }
+
+ // Filters to reduce the amount of data charted based on the filter criteria.
+ repeated DashboardFilter dashboard_filters = 11;
+
+ // Labels applied to the dashboard
+ map labels = 12;
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/dashboard_filter.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/dashboard_filter.proto
new file mode 100644
index 00000000000..fba5cf63e88
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/dashboard_filter.proto
@@ -0,0 +1,68 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+import "google/api/field_behavior.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "DashboardFilterProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// A filter to reduce the amount of data charted in relevant widgets.
+message DashboardFilter {
+ // The type for the dashboard filter
+ enum FilterType {
+ // Filter type is unspecified. This is not valid in a well-formed request.
+ FILTER_TYPE_UNSPECIFIED = 0;
+
+ // Filter on a resource label value
+ RESOURCE_LABEL = 1;
+
+ // Filter on a metrics label value
+ METRIC_LABEL = 2;
+
+ // Filter on a user metadata label value
+ USER_METADATA_LABEL = 3;
+
+ // Filter on a system metadata label value
+ SYSTEM_METADATA_LABEL = 4;
+
+ // Filter on a group id
+ GROUP = 5;
+ }
+
+ // Required. The key for the label
+ string label_key = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // The placeholder text that can be referenced in a filter string or MQL
+ // query. If omitted, the dashboard filter will be applied to all relevant
+ // widgets in the dashboard.
+ string template_variable = 3;
+
+ // The default value used in the filter comparison
+ oneof default_value {
+ // A variable-length string value.
+ string string_value = 4;
+ }
+
+ // The specified filter type
+ FilterType filter_type = 5;
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/dashboards_service.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/dashboards_service.proto
new file mode 100644
index 00000000000..4e99c4f7e4d
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/dashboards_service.proto
@@ -0,0 +1,185 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/monitoring/dashboard/v1/dashboard.proto";
+import "google/protobuf/empty.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "DashboardsServiceProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// Manages Stackdriver dashboards. A dashboard is an arrangement of data display
+// widgets in a specific layout.
+service DashboardsService {
+ option (google.api.default_host) = "monitoring.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/monitoring,"
+ "https://www.googleapis.com/auth/monitoring.read,"
+ "https://www.googleapis.com/auth/monitoring.write";
+
+ // Creates a new custom dashboard. For examples on how you can use this API to create dashboards, see [Managing dashboards by API](https://cloud.google.com/monitoring/dashboards/api-dashboard).
+ // This method requires the `monitoring.dashboards.create` permission on the specified project. For more information about permissions, see [Cloud Identity and Access Management](https://cloud.google.com/iam).
+ rpc CreateDashboard(CreateDashboardRequest) returns (Dashboard) {
+ option (google.api.http) = {
+ post: "/v1/{parent=projects/*}/dashboards"
+ body: "dashboard"
+ };
+ }
+
+ // Lists the existing dashboards.
+ //
+ // This method requires the `monitoring.dashboards.list` permission
+ // on the specified project. For more information, see
+ // [Cloud Identity and Access Management](https://cloud.google.com/iam).
+ rpc ListDashboards(ListDashboardsRequest) returns (ListDashboardsResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=projects/*}/dashboards"
+ };
+ }
+
+ // Fetches a specific dashboard.
+ //
+ // This method requires the `monitoring.dashboards.get` permission
+ // on the specified dashboard. For more information, see
+ // [Cloud Identity and Access Management](https://cloud.google.com/iam).
+ rpc GetDashboard(GetDashboardRequest) returns (Dashboard) {
+ option (google.api.http) = {
+ get: "/v1/{name=projects/*/dashboards/*}"
+ };
+ }
+
+ // Deletes an existing custom dashboard.
+ //
+ // This method requires the `monitoring.dashboards.delete` permission
+ // on the specified dashboard. For more information, see
+ // [Cloud Identity and Access Management](https://cloud.google.com/iam).
+ rpc DeleteDashboard(DeleteDashboardRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1/{name=projects/*/dashboards/*}"
+ };
+ }
+
+ // Replaces an existing custom dashboard with a new definition.
+ //
+ // This method requires the `monitoring.dashboards.update` permission
+ // on the specified dashboard. For more information, see
+ // [Cloud Identity and Access Management](https://cloud.google.com/iam).
+ rpc UpdateDashboard(UpdateDashboardRequest) returns (Dashboard) {
+ option (google.api.http) = {
+ patch: "/v1/{dashboard.name=projects/*/dashboards/*}"
+ body: "dashboard"
+ };
+ }
+}
+
+// The `CreateDashboard` request.
+message CreateDashboardRequest {
+ // Required. The project on which to execute the request. The format is:
+ //
+ // projects/[PROJECT_ID_OR_NUMBER]
+ //
+ // The `[PROJECT_ID_OR_NUMBER]` must match the dashboard resource name.
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The initial dashboard specification.
+ Dashboard dashboard = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // If set, validate the request and preview the review, but do not actually
+ // save it.
+ bool validate_only = 3;
+}
+
+// The `ListDashboards` request.
+message ListDashboardsRequest {
+ // Required. The scope of the dashboards to list. The format is:
+ //
+ // projects/[PROJECT_ID_OR_NUMBER]
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudresourcemanager.googleapis.com/Project"
+ }
+ ];
+
+ // A positive number that is the maximum number of results to return.
+ // If unspecified, a default of 1000 is used.
+ int32 page_size = 2;
+
+ // If this field is not empty then it must contain the `nextPageToken` value
+ // returned by a previous call to this method. Using this field causes the
+ // method to return additional results from the previous method call.
+ string page_token = 3;
+}
+
+// The `ListDashboards` request.
+message ListDashboardsResponse {
+ // The list of requested dashboards.
+ repeated Dashboard dashboards = 1;
+
+ // If there are more results than have been returned, then this field is set
+ // to a non-empty value. To see the additional results,
+ // use that value as `page_token` in the next call to this method.
+ string next_page_token = 2;
+}
+
+// The `GetDashboard` request.
+message GetDashboardRequest {
+ // Required. The resource name of the Dashboard. The format is one of:
+ //
+ // - `dashboards/[DASHBOARD_ID]` (for system dashboards)
+ // - `projects/[PROJECT_ID_OR_NUMBER]/dashboards/[DASHBOARD_ID]`
+ // (for custom dashboards).
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "monitoring.googleapis.com/Dashboard"
+ }
+ ];
+}
+
+// The `DeleteDashboard` request.
+message DeleteDashboardRequest {
+ // Required. The resource name of the Dashboard. The format is:
+ //
+ // projects/[PROJECT_ID_OR_NUMBER]/dashboards/[DASHBOARD_ID]
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "monitoring.googleapis.com/Dashboard"
+ }
+ ];
+}
+
+// The `UpdateDashboard` request.
+message UpdateDashboardRequest {
+ // Required. The dashboard that will replace the existing dashboard.
+ Dashboard dashboard = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // If set, validate the request and preview the review, but do not actually
+ // save it.
+ bool validate_only = 3;
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/drilldowns.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/drilldowns.proto
new file mode 100644
index 00000000000..b0a11e0a342
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/drilldowns.proto
@@ -0,0 +1,25 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "DrilldownsProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/layouts.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/layouts.proto
new file mode 100644
index 00000000000..94be37aa519
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/layouts.proto
@@ -0,0 +1,112 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+import "google/monitoring/dashboard/v1/widget.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "LayoutsProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// A basic layout divides the available space into vertical columns of equal
+// width and arranges a list of widgets using a row-first strategy.
+message GridLayout {
+ // The number of columns into which the view's width is divided. If omitted
+ // or set to zero, a system default will be used while rendering.
+ int64 columns = 1;
+
+ // The informational elements that are arranged into the columns row-first.
+ repeated Widget widgets = 2;
+}
+
+// A mosaic layout divides the available space into a grid of blocks, and
+// overlays the grid with tiles. Unlike `GridLayout`, tiles may span multiple
+// grid blocks and can be placed at arbitrary locations in the grid.
+message MosaicLayout {
+ // A single tile in the mosaic. The placement and size of the tile are
+ // configurable.
+ message Tile {
+ // The zero-indexed position of the tile in grid blocks relative to the
+ // left edge of the grid. Tiles must be contained within the specified
+ // number of columns. `x_pos` cannot be negative.
+ int32 x_pos = 1;
+
+ // The zero-indexed position of the tile in grid blocks relative to the
+ // top edge of the grid. `y_pos` cannot be negative.
+ int32 y_pos = 2;
+
+ // The width of the tile, measured in grid blocks. Tiles must have a
+ // minimum width of 1.
+ int32 width = 3;
+
+ // The height of the tile, measured in grid blocks. Tiles must have a
+ // minimum height of 1.
+ int32 height = 4;
+
+ // The informational widget contained in the tile. For example an `XyChart`.
+ Widget widget = 5;
+ }
+
+ // The number of columns in the mosaic grid. The number of columns must be
+ // between 1 and 12, inclusive.
+ int32 columns = 1;
+
+ // The tiles to display.
+ repeated Tile tiles = 3;
+}
+
+// A simplified layout that divides the available space into rows
+// and arranges a set of widgets horizontally in each row.
+message RowLayout {
+ // Defines the layout properties and content for a row.
+ message Row {
+ // The relative weight of this row. The row weight is used to adjust the
+ // height of rows on the screen (relative to peers). Greater the weight,
+ // greater the height of the row on the screen. If omitted, a value
+ // of 1 is used while rendering.
+ int64 weight = 1;
+
+ // The display widgets arranged horizontally in this row.
+ repeated Widget widgets = 2;
+ }
+
+ // The rows of content to display.
+ repeated Row rows = 1;
+}
+
+// A simplified layout that divides the available space into vertical columns
+// and arranges a set of widgets vertically in each column.
+message ColumnLayout {
+ // Defines the layout properties and content for a column.
+ message Column {
+ // The relative weight of this column. The column weight is used to adjust
+ // the width of columns on the screen (relative to peers).
+ // Greater the weight, greater the width of the column on the screen.
+ // If omitted, a value of 1 is used while rendering.
+ int64 weight = 1;
+
+ // The display widgets arranged vertically in this column.
+ repeated Widget widgets = 2;
+ }
+
+ // The columns of content to display.
+ repeated Column columns = 1;
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/logs_panel.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/logs_panel.proto
new file mode 100644
index 00000000000..a5fb66c7d6c
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/logs_panel.proto
@@ -0,0 +1,38 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "LogsPanelProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// A widget that displays a stream of log.
+message LogsPanel {
+ // A filter that chooses which log entries to return. See [Advanced Logs
+ // Queries](https://cloud.google.com/logging/docs/view/advanced-queries).
+ // Only log entries that match the filter are returned. An empty filter
+ // matches all log entries.
+ string filter = 1;
+
+ // The names of logging resources to collect logs for. Currently only projects
+ // are supported. If empty, the widget will default to the host project.
+ repeated string resource_names = 2;
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/metrics.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/metrics.proto
new file mode 100644
index 00000000000..c5ae8f718c2
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/metrics.proto
@@ -0,0 +1,192 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+import "google/api/field_behavior.proto";
+import "google/monitoring/dashboard/v1/common.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "MetricsProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// TimeSeriesQuery collects the set of supported methods for querying time
+// series data from the Stackdriver metrics API.
+message TimeSeriesQuery {
+ // Parameters needed to obtain data for the chart.
+ oneof source {
+ // Filter parameters to fetch time series.
+ TimeSeriesFilter time_series_filter = 1;
+
+ // Parameters to fetch a ratio between two time series filters.
+ TimeSeriesFilterRatio time_series_filter_ratio = 2;
+
+ // A query used to fetch time series.
+ string time_series_query_language = 3;
+ }
+
+ // The unit of data contained in fetched time series. If non-empty, this
+ // unit will override any unit that accompanies fetched data. The format is
+ // the same as the
+ // [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors)
+ // field in `MetricDescriptor`.
+ string unit_override = 5;
+}
+
+// A filter that defines a subset of time series data that is displayed in a
+// widget. Time series data is fetched using the
+// [`ListTimeSeries`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list)
+// method.
+message TimeSeriesFilter {
+ // Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
+ // that identifies the metric types, resources, and projects to query.
+ string filter = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // By default, the raw time series data is returned.
+ // Use this field to combine multiple time series for different views of the
+ // data.
+ Aggregation aggregation = 2;
+
+ // Apply a second aggregation after `aggregation` is applied.
+ Aggregation secondary_aggregation = 3;
+
+ // Selects an optional time series filter.
+ oneof output_filter {
+ // Ranking based time series filter.
+ PickTimeSeriesFilter pick_time_series_filter = 4;
+
+ // Statistics based time series filter.
+ // Note: This field is deprecated and completely ignored by the API.
+ StatisticalTimeSeriesFilter statistical_time_series_filter = 5 [deprecated = true];
+ }
+}
+
+// A pair of time series filters that define a ratio computation. The output
+// time series is the pair-wise division of each aligned element from the
+// numerator and denominator time series.
+message TimeSeriesFilterRatio {
+ // Describes a query to build the numerator or denominator of a
+ // TimeSeriesFilterRatio.
+ message RatioPart {
+ // Required. The [monitoring
+ // filter](https://cloud.google.com/monitoring/api/v3/filters) that
+ // identifies the metric types, resources, and projects to query.
+ string filter = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // By default, the raw time series data is returned.
+ // Use this field to combine multiple time series for different views of the
+ // data.
+ Aggregation aggregation = 2;
+ }
+
+ // The numerator of the ratio.
+ RatioPart numerator = 1;
+
+ // The denominator of the ratio.
+ RatioPart denominator = 2;
+
+ // Apply a second aggregation after the ratio is computed.
+ Aggregation secondary_aggregation = 3;
+
+ // Selects an optional filter that is applied to the time series after
+ // computing the ratio.
+ oneof output_filter {
+ // Ranking based time series filter.
+ PickTimeSeriesFilter pick_time_series_filter = 4;
+
+ // Statistics based time series filter.
+ // Note: This field is deprecated and completely ignored by the API.
+ StatisticalTimeSeriesFilter statistical_time_series_filter = 5 [deprecated = true];
+ }
+}
+
+// Defines a threshold for categorizing time series values.
+message Threshold {
+ // The color suggests an interpretation to the viewer when actual values cross
+ // the threshold. Comments on each color provide UX guidance on how users can
+ // be expected to interpret a given state color.
+ enum Color {
+ // Color is unspecified. Not allowed in well-formed requests.
+ COLOR_UNSPECIFIED = 0;
+
+ // Crossing the threshold is "concerning" behavior.
+ YELLOW = 4;
+
+ // Crossing the threshold is "emergency" behavior.
+ RED = 6;
+ }
+
+ // Whether the threshold is considered crossed by an actual value above or
+ // below its threshold value.
+ enum Direction {
+ // Not allowed in well-formed requests.
+ DIRECTION_UNSPECIFIED = 0;
+
+ // The threshold will be considered crossed if the actual value is above
+ // the threshold value.
+ ABOVE = 1;
+
+ // The threshold will be considered crossed if the actual value is below
+ // the threshold value.
+ BELOW = 2;
+ }
+
+ // An axis identifier.
+ enum TargetAxis {
+ // The target axis was not specified. Defaults to Y1.
+ TARGET_AXIS_UNSPECIFIED = 0;
+
+ // The y_axis (the right axis of chart).
+ Y1 = 1;
+
+ // The y2_axis (the left axis of chart).
+ Y2 = 2;
+ }
+
+ // A label for the threshold.
+ string label = 1;
+
+ // The value of the threshold. The value should be defined in the native scale
+ // of the metric.
+ double value = 2;
+
+ // The state color for this threshold. Color is not allowed in a XyChart.
+ Color color = 3;
+
+ // The direction for the current threshold. Direction is not allowed in a
+ // XyChart.
+ Direction direction = 4;
+
+ // The target axis to use for plotting the threshold. Target axis is not
+ // allowed in a Scorecard.
+ TargetAxis target_axis = 5;
+}
+
+// Defines the possible types of spark chart supported by the `Scorecard`.
+enum SparkChartType {
+ // Not allowed in well-formed requests.
+ SPARK_CHART_TYPE_UNSPECIFIED = 0;
+
+ // The sparkline will be rendered as a small line chart.
+ SPARK_LINE = 1;
+
+ // The sparkbar will be rendered as a small bar chart.
+ SPARK_BAR = 2;
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/scorecard.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/scorecard.proto
new file mode 100644
index 00000000000..2cb2e4b2eb0
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/scorecard.proto
@@ -0,0 +1,113 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+import "google/api/field_behavior.proto";
+import "google/monitoring/dashboard/v1/metrics.proto";
+import "google/protobuf/duration.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "ScorecardProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// A widget showing the latest value of a metric, and how this value relates to
+// one or more thresholds.
+message Scorecard {
+ // A gauge chart shows where the current value sits within a pre-defined
+ // range. The upper and lower bounds should define the possible range of
+ // values for the scorecard's query (inclusive).
+ message GaugeView {
+ // The lower bound for this gauge chart. The value of the chart should
+ // always be greater than or equal to this.
+ double lower_bound = 1;
+
+ // The upper bound for this gauge chart. The value of the chart should
+ // always be less than or equal to this.
+ double upper_bound = 2;
+ }
+
+ // A sparkChart is a small chart suitable for inclusion in a table-cell or
+ // inline in text. This message contains the configuration for a sparkChart
+ // to show up on a Scorecard, showing recent trends of the scorecard's
+ // timeseries.
+ message SparkChartView {
+ // Required. The type of sparkchart to show in this chartView.
+ SparkChartType spark_chart_type = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // The lower bound on data point frequency in the chart implemented by
+ // specifying the minimum alignment period to use in a time series query.
+ // For example, if the data is published once every 10 minutes it would not
+ // make sense to fetch and align data at one minute intervals. This field is
+ // optional and exists only as a hint.
+ google.protobuf.Duration min_alignment_period = 2;
+ }
+
+ // Required. Fields for querying time series data from the
+ // Stackdriver metrics API.
+ TimeSeriesQuery time_series_query = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Defines the optional additional chart shown on the scorecard. If
+ // neither is included - then a default scorecard is shown.
+ oneof data_view {
+ // Will cause the scorecard to show a gauge chart.
+ GaugeView gauge_view = 4;
+
+ // Will cause the scorecard to show a spark chart.
+ SparkChartView spark_chart_view = 5;
+ }
+
+ // The thresholds used to determine the state of the scorecard given the
+ // time series' current value. For an actual value x, the scorecard is in a
+ // danger state if x is less than or equal to a danger threshold that triggers
+ // below, or greater than or equal to a danger threshold that triggers above.
+ // Similarly, if x is above/below a warning threshold that triggers
+ // above/below, then the scorecard is in a warning state - unless x also puts
+ // it in a danger state. (Danger trumps warning.)
+ //
+ // As an example, consider a scorecard with the following four thresholds:
+ // {
+ // value: 90,
+ // category: 'DANGER',
+ // trigger: 'ABOVE',
+ // },
+ // {
+ // value: 70,
+ // category: 'WARNING',
+ // trigger: 'ABOVE',
+ // },
+ // {
+ // value: 10,
+ // category: 'DANGER',
+ // trigger: 'BELOW',
+ // },
+ // {
+ // value: 20,
+ // category: 'WARNING',
+ // trigger: 'BELOW',
+ // }
+ //
+ // Then: values less than or equal to 10 would put the scorecard in a DANGER
+ // state, values greater than 10 but less than or equal to 20 a WARNING state,
+ // values strictly between 20 and 70 an OK state, values greater than or equal
+ // to 70 but less than 90 a WARNING state, and values greater than or equal to
+ // 90 a DANGER state.
+ repeated Threshold thresholds = 6;
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/service.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/service.proto
new file mode 100644
index 00000000000..f7e5e44aef1
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/service.proto
@@ -0,0 +1,25 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "ServiceMonitoringProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/table.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/table.proto
new file mode 100644
index 00000000000..8165c3a9b79
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/table.proto
@@ -0,0 +1,59 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+import "google/api/field_behavior.proto";
+import "google/monitoring/dashboard/v1/metrics.proto";
+import "google/monitoring/dashboard/v1/table_display_options.proto";
+import "google/protobuf/duration.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "TableProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// A table that displays time series data.
+message TimeSeriesTable {
+ // Groups a time series query definition with table options.
+ message TableDataSet {
+ // Required. Fields for querying time series data from the
+ // Stackdriver metrics API.
+ TimeSeriesQuery time_series_query = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. A template string for naming `TimeSeries` in the resulting data set.
+ // This should be a string with interpolations of the form `${label_name}`,
+ // which will resolve to the label's value i.e.
+ // "${resource.labels.project_id}."
+ string table_template = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The lower bound on data point frequency for this data set, implemented by
+ // specifying the minimum alignment period to use in a time series query
+ // For example, if the data is published once every 10 minutes, the
+ // `min_alignment_period` should be at least 10 minutes. It would not
+ // make sense to fetch and align data at one minute intervals.
+ google.protobuf.Duration min_alignment_period = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Table display options for configuring how the table is rendered.
+ TableDisplayOptions table_display_options = 4 [(google.api.field_behavior) = OPTIONAL];
+ }
+
+ // Required. The data displayed in this table.
+ repeated TableDataSet data_sets = 1 [(google.api.field_behavior) = REQUIRED];
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/table_display_options.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/table_display_options.proto
new file mode 100644
index 00000000000..b94b20b11bc
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/table_display_options.proto
@@ -0,0 +1,34 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+import "google/api/field_behavior.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "TableDisplayOptionsProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// Table display options that can be reused.
+message TableDisplayOptions {
+ // Optional. Columns to display in the table. Leave empty to display all available
+ // columns. Note: This field is for future features and is not currently used.
+ repeated string shown_columns = 1 [(google.api.field_behavior) = OPTIONAL];
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/text.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/text.proto
new file mode 100644
index 00000000000..ed75a19f2c6
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/text.proto
@@ -0,0 +1,46 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "TextProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// A widget that displays textual content.
+message Text {
+ // The format type of the text content.
+ enum Format {
+ // Format is unspecified. Defaults to MARKDOWN.
+ FORMAT_UNSPECIFIED = 0;
+
+ // The text contains Markdown formatting.
+ MARKDOWN = 1;
+
+ // The text contains no special formatting.
+ RAW = 2;
+ }
+
+ // The text content to be displayed.
+ string content = 1;
+
+ // How the text content is formatted.
+ Format format = 2;
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/widget.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/widget.proto
new file mode 100644
index 00000000000..bb50eec8ed3
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/widget.proto
@@ -0,0 +1,70 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+import "google/api/field_behavior.proto";
+import "google/monitoring/dashboard/v1/alertchart.proto";
+import "google/monitoring/dashboard/v1/collapsible_group.proto";
+import "google/monitoring/dashboard/v1/logs_panel.proto";
+import "google/monitoring/dashboard/v1/scorecard.proto";
+import "google/monitoring/dashboard/v1/table.proto";
+import "google/monitoring/dashboard/v1/text.proto";
+import "google/monitoring/dashboard/v1/xychart.proto";
+import "google/protobuf/empty.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "WidgetProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// Widget contains a single dashboard component and configuration of how to
+// present the component in the dashboard.
+message Widget {
+ // Optional. The title of the widget.
+ string title = 1 [(google.api.field_behavior) = OPTIONAL];
+
+ // Content defines the component used to populate the widget.
+ oneof content {
+ // A chart of time series data.
+ XyChart xy_chart = 2;
+
+ // A scorecard summarizing time series data.
+ Scorecard scorecard = 3;
+
+ // A raw string or markdown displaying textual content.
+ Text text = 4;
+
+ // A blank space.
+ google.protobuf.Empty blank = 5;
+
+ // A chart of alert policy data.
+ AlertChart alert_chart = 7;
+
+ // A widget that displays time series data in a tabular format.
+ TimeSeriesTable time_series_table = 8;
+
+ // A widget that groups the other widgets. All widgets that are within
+ // the area spanned by the grouping widget are considered member widgets.
+ CollapsibleGroup collapsible_group = 9;
+
+ // A widget that shows a stream of logs.
+ LogsPanel logs_panel = 10;
+ }
+}
diff --git a/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/xychart.proto b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/xychart.proto
new file mode 100644
index 00000000000..11a26a49c3a
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/google/monitoring/dashboard/v1/xychart.proto
@@ -0,0 +1,166 @@
+// 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.
+// 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.monitoring.dashboard.v1;
+
+import "google/api/field_behavior.proto";
+import "google/monitoring/dashboard/v1/metrics.proto";
+import "google/protobuf/duration.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
+option java_multiple_files = true;
+option java_outer_classname = "XyChartProto";
+option java_package = "com.google.monitoring.dashboard.v1";
+option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
+option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";
+
+// A chart that displays data on a 2D (X and Y axes) plane.
+message XyChart {
+ // Groups a time series query definition with charting options.
+ message DataSet {
+ // The types of plotting strategies for data sets.
+ enum PlotType {
+ // Plot type is unspecified. The view will default to `LINE`.
+ PLOT_TYPE_UNSPECIFIED = 0;
+
+ // The data is plotted as a set of lines (one line per series).
+ LINE = 1;
+
+ // The data is plotted as a set of filled areas (one area per series),
+ // with the areas stacked vertically (the base of each area is the top of
+ // its predecessor, and the base of the first area is the X axis). Since
+ // the areas do not overlap, each is filled with a different opaque color.
+ STACKED_AREA = 2;
+
+ // The data is plotted as a set of rectangular boxes (one box per series),
+ // with the boxes stacked vertically (the base of each box is the top of
+ // its predecessor, and the base of the first box is the X axis). Since
+ // the boxes do not overlap, each is filled with a different opaque color.
+ STACKED_BAR = 3;
+
+ // The data is plotted as a heatmap. The series being plotted must have a
+ // `DISTRIBUTION` value type. The value of each bucket in the distribution
+ // is displayed as a color. This type is not currently available in the
+ // Stackdriver Monitoring application.
+ HEATMAP = 4;
+ }
+
+ // An axis identifier.
+ enum TargetAxis {
+ // The target axis was not specified. Defaults to Y1.
+ TARGET_AXIS_UNSPECIFIED = 0;
+
+ // The y_axis (the right axis of chart).
+ Y1 = 1;
+
+ // The y2_axis (the left axis of chart).
+ Y2 = 2;
+ }
+
+ // Required. Fields for querying time series data from the
+ // Stackdriver metrics API.
+ TimeSeriesQuery time_series_query = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // How this data should be plotted on the chart.
+ PlotType plot_type = 2;
+
+ // A template string for naming `TimeSeries` in the resulting data set.
+ // This should be a string with interpolations of the form `${label_name}`,
+ // which will resolve to the label's value.
+ string legend_template = 3;
+
+ // Optional. The lower bound on data point frequency for this data set, implemented by
+ // specifying the minimum alignment period to use in a time series query
+ // For example, if the data is published once every 10 minutes, the
+ // `min_alignment_period` should be at least 10 minutes. It would not
+ // make sense to fetch and align data at one minute intervals.
+ google.protobuf.Duration min_alignment_period = 4 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The target axis to use for plotting the metric.
+ TargetAxis target_axis = 5 [(google.api.field_behavior) = OPTIONAL];
+ }
+
+ // A chart axis.
+ message Axis {
+ // Types of scales used in axes.
+ enum Scale {
+ // Scale is unspecified. The view will default to `LINEAR`.
+ SCALE_UNSPECIFIED = 0;
+
+ // Linear scale.
+ LINEAR = 1;
+
+ // Logarithmic scale (base 10).
+ LOG10 = 2;
+ }
+
+ // The label of the axis.
+ string label = 1;
+
+ // The axis scale. By default, a linear scale is used.
+ Scale scale = 2;
+ }
+
+ // Required. The data displayed in this chart.
+ repeated DataSet data_sets = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // The duration used to display a comparison chart. A comparison chart
+ // simultaneously shows values from two similar-length time periods
+ // (e.g., week-over-week metrics).
+ // The duration must be positive, and it can only be applied to charts with
+ // data sets of LINE plot type.
+ google.protobuf.Duration timeshift_duration = 4;
+
+ // Threshold lines drawn horizontally across the chart.
+ repeated Threshold thresholds = 5;
+
+ // The properties applied to the X axis.
+ Axis x_axis = 6;
+
+ // The properties applied to the Y axis.
+ Axis y_axis = 7;
+
+ // The properties applied to the Y2 axis.
+ Axis y2_axis = 9;
+
+ // Display options for the chart.
+ ChartOptions chart_options = 8;
+}
+
+// Options to control visual rendering of a chart.
+message ChartOptions {
+ // Chart mode options.
+ enum Mode {
+ // Mode is unspecified. The view will default to `COLOR`.
+ MODE_UNSPECIFIED = 0;
+
+ // The chart distinguishes data series using different color. Line
+ // colors may get reused when there are many lines in the chart.
+ COLOR = 1;
+
+ // The chart uses the Stackdriver x-ray mode, in which each
+ // data set is plotted using the same semi-transparent color.
+ X_RAY = 2;
+
+ // The chart displays statistics such as average, median, 95th percentile,
+ // and more.
+ STATS = 3;
+ }
+
+ // The chart mode.
+ Mode mode = 1;
+}
diff --git a/packages/google-monitoring-dashboard/protos/protos.d.ts b/packages/google-monitoring-dashboard/protos/protos.d.ts
new file mode 100644
index 00000000000..a2cec527d8f
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/protos.d.ts
@@ -0,0 +1,8680 @@
+// 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.
+// 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 Long = require("long");
+import type {protobuf as $protobuf} from "google-gax";
+/** Namespace google. */
+export namespace google {
+
+ /** Namespace monitoring. */
+ namespace monitoring {
+
+ /** Namespace dashboard. */
+ namespace dashboard {
+
+ /** Namespace v1. */
+ namespace v1 {
+
+ /** Properties of an AlertChart. */
+ interface IAlertChart {
+
+ /** AlertChart name */
+ name?: (string|null);
+ }
+
+ /** Represents an AlertChart. */
+ class AlertChart implements IAlertChart {
+
+ /**
+ * Constructs a new AlertChart.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IAlertChart);
+
+ /** AlertChart name. */
+ public name: string;
+
+ /**
+ * Creates a new AlertChart instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns AlertChart instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IAlertChart): google.monitoring.dashboard.v1.AlertChart;
+
+ /**
+ * Encodes the specified AlertChart message. Does not implicitly {@link google.monitoring.dashboard.v1.AlertChart.verify|verify} messages.
+ * @param message AlertChart message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IAlertChart, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified AlertChart message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.AlertChart.verify|verify} messages.
+ * @param message AlertChart message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IAlertChart, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an AlertChart message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns AlertChart
+ * @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.monitoring.dashboard.v1.AlertChart;
+
+ /**
+ * Decodes an AlertChart message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns AlertChart
+ * @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.monitoring.dashboard.v1.AlertChart;
+
+ /**
+ * Verifies an AlertChart 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 AlertChart message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns AlertChart
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.AlertChart;
+
+ /**
+ * Creates a plain object from an AlertChart message. Also converts values to other types if specified.
+ * @param message AlertChart
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.AlertChart, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this AlertChart to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for AlertChart
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a CollapsibleGroup. */
+ interface ICollapsibleGroup {
+
+ /** CollapsibleGroup collapsed */
+ collapsed?: (boolean|null);
+ }
+
+ /** Represents a CollapsibleGroup. */
+ class CollapsibleGroup implements ICollapsibleGroup {
+
+ /**
+ * Constructs a new CollapsibleGroup.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.ICollapsibleGroup);
+
+ /** CollapsibleGroup collapsed. */
+ public collapsed: boolean;
+
+ /**
+ * Creates a new CollapsibleGroup instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns CollapsibleGroup instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.ICollapsibleGroup): google.monitoring.dashboard.v1.CollapsibleGroup;
+
+ /**
+ * Encodes the specified CollapsibleGroup message. Does not implicitly {@link google.monitoring.dashboard.v1.CollapsibleGroup.verify|verify} messages.
+ * @param message CollapsibleGroup message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.ICollapsibleGroup, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified CollapsibleGroup message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.CollapsibleGroup.verify|verify} messages.
+ * @param message CollapsibleGroup message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.ICollapsibleGroup, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a CollapsibleGroup message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns CollapsibleGroup
+ * @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.monitoring.dashboard.v1.CollapsibleGroup;
+
+ /**
+ * Decodes a CollapsibleGroup message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns CollapsibleGroup
+ * @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.monitoring.dashboard.v1.CollapsibleGroup;
+
+ /**
+ * Verifies a CollapsibleGroup 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 CollapsibleGroup message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns CollapsibleGroup
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.CollapsibleGroup;
+
+ /**
+ * Creates a plain object from a CollapsibleGroup message. Also converts values to other types if specified.
+ * @param message CollapsibleGroup
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.CollapsibleGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this CollapsibleGroup to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for CollapsibleGroup
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of an Aggregation. */
+ interface IAggregation {
+
+ /** Aggregation alignmentPeriod */
+ alignmentPeriod?: (google.protobuf.IDuration|null);
+
+ /** Aggregation perSeriesAligner */
+ perSeriesAligner?: (google.monitoring.dashboard.v1.Aggregation.Aligner|keyof typeof google.monitoring.dashboard.v1.Aggregation.Aligner|null);
+
+ /** Aggregation crossSeriesReducer */
+ crossSeriesReducer?: (google.monitoring.dashboard.v1.Aggregation.Reducer|keyof typeof google.monitoring.dashboard.v1.Aggregation.Reducer|null);
+
+ /** Aggregation groupByFields */
+ groupByFields?: (string[]|null);
+ }
+
+ /** Represents an Aggregation. */
+ class Aggregation implements IAggregation {
+
+ /**
+ * Constructs a new Aggregation.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IAggregation);
+
+ /** Aggregation alignmentPeriod. */
+ public alignmentPeriod?: (google.protobuf.IDuration|null);
+
+ /** Aggregation perSeriesAligner. */
+ public perSeriesAligner: (google.monitoring.dashboard.v1.Aggregation.Aligner|keyof typeof google.monitoring.dashboard.v1.Aggregation.Aligner);
+
+ /** Aggregation crossSeriesReducer. */
+ public crossSeriesReducer: (google.monitoring.dashboard.v1.Aggregation.Reducer|keyof typeof google.monitoring.dashboard.v1.Aggregation.Reducer);
+
+ /** Aggregation groupByFields. */
+ public groupByFields: string[];
+
+ /**
+ * Creates a new Aggregation instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Aggregation instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IAggregation): google.monitoring.dashboard.v1.Aggregation;
+
+ /**
+ * Encodes the specified Aggregation message. Does not implicitly {@link google.monitoring.dashboard.v1.Aggregation.verify|verify} messages.
+ * @param message Aggregation message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IAggregation, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Aggregation message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Aggregation.verify|verify} messages.
+ * @param message Aggregation message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IAggregation, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an Aggregation message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Aggregation
+ * @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.monitoring.dashboard.v1.Aggregation;
+
+ /**
+ * Decodes an Aggregation message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Aggregation
+ * @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.monitoring.dashboard.v1.Aggregation;
+
+ /**
+ * Verifies an Aggregation 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 Aggregation message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Aggregation
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.Aggregation;
+
+ /**
+ * Creates a plain object from an Aggregation message. Also converts values to other types if specified.
+ * @param message Aggregation
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.Aggregation, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Aggregation to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Aggregation
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace Aggregation {
+
+ /** Aligner enum. */
+ enum Aligner {
+ ALIGN_NONE = 0,
+ ALIGN_DELTA = 1,
+ ALIGN_RATE = 2,
+ ALIGN_INTERPOLATE = 3,
+ ALIGN_NEXT_OLDER = 4,
+ ALIGN_MIN = 10,
+ ALIGN_MAX = 11,
+ ALIGN_MEAN = 12,
+ ALIGN_COUNT = 13,
+ ALIGN_SUM = 14,
+ ALIGN_STDDEV = 15,
+ ALIGN_COUNT_TRUE = 16,
+ ALIGN_COUNT_FALSE = 24,
+ ALIGN_FRACTION_TRUE = 17,
+ ALIGN_PERCENTILE_99 = 18,
+ ALIGN_PERCENTILE_95 = 19,
+ ALIGN_PERCENTILE_50 = 20,
+ ALIGN_PERCENTILE_05 = 21,
+ ALIGN_PERCENT_CHANGE = 23
+ }
+
+ /** Reducer enum. */
+ enum Reducer {
+ REDUCE_NONE = 0,
+ REDUCE_MEAN = 1,
+ REDUCE_MIN = 2,
+ REDUCE_MAX = 3,
+ REDUCE_SUM = 4,
+ REDUCE_STDDEV = 5,
+ REDUCE_COUNT = 6,
+ REDUCE_COUNT_TRUE = 7,
+ REDUCE_COUNT_FALSE = 15,
+ REDUCE_FRACTION_TRUE = 8,
+ REDUCE_PERCENTILE_99 = 9,
+ REDUCE_PERCENTILE_95 = 10,
+ REDUCE_PERCENTILE_50 = 11,
+ REDUCE_PERCENTILE_05 = 12
+ }
+ }
+
+ /** Properties of a PickTimeSeriesFilter. */
+ interface IPickTimeSeriesFilter {
+
+ /** PickTimeSeriesFilter rankingMethod */
+ rankingMethod?: (google.monitoring.dashboard.v1.PickTimeSeriesFilter.Method|keyof typeof google.monitoring.dashboard.v1.PickTimeSeriesFilter.Method|null);
+
+ /** PickTimeSeriesFilter numTimeSeries */
+ numTimeSeries?: (number|null);
+
+ /** PickTimeSeriesFilter direction */
+ direction?: (google.monitoring.dashboard.v1.PickTimeSeriesFilter.Direction|keyof typeof google.monitoring.dashboard.v1.PickTimeSeriesFilter.Direction|null);
+ }
+
+ /** Represents a PickTimeSeriesFilter. */
+ class PickTimeSeriesFilter implements IPickTimeSeriesFilter {
+
+ /**
+ * Constructs a new PickTimeSeriesFilter.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IPickTimeSeriesFilter);
+
+ /** PickTimeSeriesFilter rankingMethod. */
+ public rankingMethod: (google.monitoring.dashboard.v1.PickTimeSeriesFilter.Method|keyof typeof google.monitoring.dashboard.v1.PickTimeSeriesFilter.Method);
+
+ /** PickTimeSeriesFilter numTimeSeries. */
+ public numTimeSeries: number;
+
+ /** PickTimeSeriesFilter direction. */
+ public direction: (google.monitoring.dashboard.v1.PickTimeSeriesFilter.Direction|keyof typeof google.monitoring.dashboard.v1.PickTimeSeriesFilter.Direction);
+
+ /**
+ * Creates a new PickTimeSeriesFilter instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns PickTimeSeriesFilter instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IPickTimeSeriesFilter): google.monitoring.dashboard.v1.PickTimeSeriesFilter;
+
+ /**
+ * Encodes the specified PickTimeSeriesFilter message. Does not implicitly {@link google.monitoring.dashboard.v1.PickTimeSeriesFilter.verify|verify} messages.
+ * @param message PickTimeSeriesFilter message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IPickTimeSeriesFilter, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified PickTimeSeriesFilter message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.PickTimeSeriesFilter.verify|verify} messages.
+ * @param message PickTimeSeriesFilter message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IPickTimeSeriesFilter, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a PickTimeSeriesFilter message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns PickTimeSeriesFilter
+ * @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.monitoring.dashboard.v1.PickTimeSeriesFilter;
+
+ /**
+ * Decodes a PickTimeSeriesFilter message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns PickTimeSeriesFilter
+ * @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.monitoring.dashboard.v1.PickTimeSeriesFilter;
+
+ /**
+ * Verifies a PickTimeSeriesFilter 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 PickTimeSeriesFilter message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns PickTimeSeriesFilter
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.PickTimeSeriesFilter;
+
+ /**
+ * Creates a plain object from a PickTimeSeriesFilter message. Also converts values to other types if specified.
+ * @param message PickTimeSeriesFilter
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.PickTimeSeriesFilter, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this PickTimeSeriesFilter to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for PickTimeSeriesFilter
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace PickTimeSeriesFilter {
+
+ /** Method enum. */
+ enum Method {
+ METHOD_UNSPECIFIED = 0,
+ METHOD_MEAN = 1,
+ METHOD_MAX = 2,
+ METHOD_MIN = 3,
+ METHOD_SUM = 4,
+ METHOD_LATEST = 5
+ }
+
+ /** Direction enum. */
+ enum Direction {
+ DIRECTION_UNSPECIFIED = 0,
+ TOP = 1,
+ BOTTOM = 2
+ }
+ }
+
+ /** Properties of a StatisticalTimeSeriesFilter. */
+ interface IStatisticalTimeSeriesFilter {
+
+ /** StatisticalTimeSeriesFilter rankingMethod */
+ rankingMethod?: (google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.Method|keyof typeof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.Method|null);
+
+ /** StatisticalTimeSeriesFilter numTimeSeries */
+ numTimeSeries?: (number|null);
+ }
+
+ /** Represents a StatisticalTimeSeriesFilter. */
+ class StatisticalTimeSeriesFilter implements IStatisticalTimeSeriesFilter {
+
+ /**
+ * Constructs a new StatisticalTimeSeriesFilter.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter);
+
+ /** StatisticalTimeSeriesFilter rankingMethod. */
+ public rankingMethod: (google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.Method|keyof typeof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.Method);
+
+ /** StatisticalTimeSeriesFilter numTimeSeries. */
+ public numTimeSeries: number;
+
+ /**
+ * Creates a new StatisticalTimeSeriesFilter instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns StatisticalTimeSeriesFilter instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter): google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter;
+
+ /**
+ * Encodes the specified StatisticalTimeSeriesFilter message. Does not implicitly {@link google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.verify|verify} messages.
+ * @param message StatisticalTimeSeriesFilter message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified StatisticalTimeSeriesFilter message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.verify|verify} messages.
+ * @param message StatisticalTimeSeriesFilter message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a StatisticalTimeSeriesFilter message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns StatisticalTimeSeriesFilter
+ * @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.monitoring.dashboard.v1.StatisticalTimeSeriesFilter;
+
+ /**
+ * Decodes a StatisticalTimeSeriesFilter message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns StatisticalTimeSeriesFilter
+ * @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.monitoring.dashboard.v1.StatisticalTimeSeriesFilter;
+
+ /**
+ * Verifies a StatisticalTimeSeriesFilter 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 StatisticalTimeSeriesFilter message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns StatisticalTimeSeriesFilter
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter;
+
+ /**
+ * Creates a plain object from a StatisticalTimeSeriesFilter message. Also converts values to other types if specified.
+ * @param message StatisticalTimeSeriesFilter
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this StatisticalTimeSeriesFilter to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for StatisticalTimeSeriesFilter
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace StatisticalTimeSeriesFilter {
+
+ /** Method enum. */
+ enum Method {
+ METHOD_UNSPECIFIED = 0,
+ METHOD_CLUSTER_OUTLIER = 1
+ }
+ }
+
+ /** Properties of a Dashboard. */
+ interface IDashboard {
+
+ /** Dashboard name */
+ name?: (string|null);
+
+ /** Dashboard displayName */
+ displayName?: (string|null);
+
+ /** Dashboard etag */
+ etag?: (string|null);
+
+ /** Dashboard gridLayout */
+ gridLayout?: (google.monitoring.dashboard.v1.IGridLayout|null);
+
+ /** Dashboard mosaicLayout */
+ mosaicLayout?: (google.monitoring.dashboard.v1.IMosaicLayout|null);
+
+ /** Dashboard rowLayout */
+ rowLayout?: (google.monitoring.dashboard.v1.IRowLayout|null);
+
+ /** Dashboard columnLayout */
+ columnLayout?: (google.monitoring.dashboard.v1.IColumnLayout|null);
+
+ /** Dashboard dashboardFilters */
+ dashboardFilters?: (google.monitoring.dashboard.v1.IDashboardFilter[]|null);
+
+ /** Dashboard labels */
+ labels?: ({ [k: string]: string }|null);
+ }
+
+ /** Represents a Dashboard. */
+ class Dashboard implements IDashboard {
+
+ /**
+ * Constructs a new Dashboard.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IDashboard);
+
+ /** Dashboard name. */
+ public name: string;
+
+ /** Dashboard displayName. */
+ public displayName: string;
+
+ /** Dashboard etag. */
+ public etag: string;
+
+ /** Dashboard gridLayout. */
+ public gridLayout?: (google.monitoring.dashboard.v1.IGridLayout|null);
+
+ /** Dashboard mosaicLayout. */
+ public mosaicLayout?: (google.monitoring.dashboard.v1.IMosaicLayout|null);
+
+ /** Dashboard rowLayout. */
+ public rowLayout?: (google.monitoring.dashboard.v1.IRowLayout|null);
+
+ /** Dashboard columnLayout. */
+ public columnLayout?: (google.monitoring.dashboard.v1.IColumnLayout|null);
+
+ /** Dashboard dashboardFilters. */
+ public dashboardFilters: google.monitoring.dashboard.v1.IDashboardFilter[];
+
+ /** Dashboard labels. */
+ public labels: { [k: string]: string };
+
+ /** Dashboard layout. */
+ public layout?: ("gridLayout"|"mosaicLayout"|"rowLayout"|"columnLayout");
+
+ /**
+ * Creates a new Dashboard instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Dashboard instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IDashboard): google.monitoring.dashboard.v1.Dashboard;
+
+ /**
+ * Encodes the specified Dashboard message. Does not implicitly {@link google.monitoring.dashboard.v1.Dashboard.verify|verify} messages.
+ * @param message Dashboard message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IDashboard, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Dashboard message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Dashboard.verify|verify} messages.
+ * @param message Dashboard message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IDashboard, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Dashboard message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Dashboard
+ * @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.monitoring.dashboard.v1.Dashboard;
+
+ /**
+ * Decodes a Dashboard message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Dashboard
+ * @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.monitoring.dashboard.v1.Dashboard;
+
+ /**
+ * Verifies a Dashboard 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 Dashboard message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Dashboard
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.Dashboard;
+
+ /**
+ * Creates a plain object from a Dashboard message. Also converts values to other types if specified.
+ * @param message Dashboard
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.Dashboard, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Dashboard to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Dashboard
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a DashboardFilter. */
+ interface IDashboardFilter {
+
+ /** DashboardFilter labelKey */
+ labelKey?: (string|null);
+
+ /** DashboardFilter templateVariable */
+ templateVariable?: (string|null);
+
+ /** DashboardFilter stringValue */
+ stringValue?: (string|null);
+
+ /** DashboardFilter filterType */
+ filterType?: (google.monitoring.dashboard.v1.DashboardFilter.FilterType|keyof typeof google.monitoring.dashboard.v1.DashboardFilter.FilterType|null);
+ }
+
+ /** Represents a DashboardFilter. */
+ class DashboardFilter implements IDashboardFilter {
+
+ /**
+ * Constructs a new DashboardFilter.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IDashboardFilter);
+
+ /** DashboardFilter labelKey. */
+ public labelKey: string;
+
+ /** DashboardFilter templateVariable. */
+ public templateVariable: string;
+
+ /** DashboardFilter stringValue. */
+ public stringValue?: (string|null);
+
+ /** DashboardFilter filterType. */
+ public filterType: (google.monitoring.dashboard.v1.DashboardFilter.FilterType|keyof typeof google.monitoring.dashboard.v1.DashboardFilter.FilterType);
+
+ /** DashboardFilter defaultValue. */
+ public defaultValue?: "stringValue";
+
+ /**
+ * Creates a new DashboardFilter instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns DashboardFilter instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IDashboardFilter): google.monitoring.dashboard.v1.DashboardFilter;
+
+ /**
+ * Encodes the specified DashboardFilter message. Does not implicitly {@link google.monitoring.dashboard.v1.DashboardFilter.verify|verify} messages.
+ * @param message DashboardFilter message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IDashboardFilter, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified DashboardFilter message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.DashboardFilter.verify|verify} messages.
+ * @param message DashboardFilter message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IDashboardFilter, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a DashboardFilter message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns DashboardFilter
+ * @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.monitoring.dashboard.v1.DashboardFilter;
+
+ /**
+ * Decodes a DashboardFilter message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns DashboardFilter
+ * @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.monitoring.dashboard.v1.DashboardFilter;
+
+ /**
+ * Verifies a DashboardFilter 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 DashboardFilter message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns DashboardFilter
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.DashboardFilter;
+
+ /**
+ * Creates a plain object from a DashboardFilter message. Also converts values to other types if specified.
+ * @param message DashboardFilter
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.DashboardFilter, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this DashboardFilter to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for DashboardFilter
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace DashboardFilter {
+
+ /** FilterType enum. */
+ enum FilterType {
+ FILTER_TYPE_UNSPECIFIED = 0,
+ RESOURCE_LABEL = 1,
+ METRIC_LABEL = 2,
+ USER_METADATA_LABEL = 3,
+ SYSTEM_METADATA_LABEL = 4,
+ GROUP = 5
+ }
+ }
+
+ /** Properties of a GridLayout. */
+ interface IGridLayout {
+
+ /** GridLayout columns */
+ columns?: (number|Long|string|null);
+
+ /** GridLayout widgets */
+ widgets?: (google.monitoring.dashboard.v1.IWidget[]|null);
+ }
+
+ /** Represents a GridLayout. */
+ class GridLayout implements IGridLayout {
+
+ /**
+ * Constructs a new GridLayout.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IGridLayout);
+
+ /** GridLayout columns. */
+ public columns: (number|Long|string);
+
+ /** GridLayout widgets. */
+ public widgets: google.monitoring.dashboard.v1.IWidget[];
+
+ /**
+ * Creates a new GridLayout instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns GridLayout instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IGridLayout): google.monitoring.dashboard.v1.GridLayout;
+
+ /**
+ * Encodes the specified GridLayout message. Does not implicitly {@link google.monitoring.dashboard.v1.GridLayout.verify|verify} messages.
+ * @param message GridLayout message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IGridLayout, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified GridLayout message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.GridLayout.verify|verify} messages.
+ * @param message GridLayout message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IGridLayout, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a GridLayout message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns GridLayout
+ * @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.monitoring.dashboard.v1.GridLayout;
+
+ /**
+ * Decodes a GridLayout message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns GridLayout
+ * @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.monitoring.dashboard.v1.GridLayout;
+
+ /**
+ * Verifies a GridLayout 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 GridLayout message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns GridLayout
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.GridLayout;
+
+ /**
+ * Creates a plain object from a GridLayout message. Also converts values to other types if specified.
+ * @param message GridLayout
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.GridLayout, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this GridLayout to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for GridLayout
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a MosaicLayout. */
+ interface IMosaicLayout {
+
+ /** MosaicLayout columns */
+ columns?: (number|null);
+
+ /** MosaicLayout tiles */
+ tiles?: (google.monitoring.dashboard.v1.MosaicLayout.ITile[]|null);
+ }
+
+ /** Represents a MosaicLayout. */
+ class MosaicLayout implements IMosaicLayout {
+
+ /**
+ * Constructs a new MosaicLayout.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IMosaicLayout);
+
+ /** MosaicLayout columns. */
+ public columns: number;
+
+ /** MosaicLayout tiles. */
+ public tiles: google.monitoring.dashboard.v1.MosaicLayout.ITile[];
+
+ /**
+ * Creates a new MosaicLayout instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns MosaicLayout instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IMosaicLayout): google.monitoring.dashboard.v1.MosaicLayout;
+
+ /**
+ * Encodes the specified MosaicLayout message. Does not implicitly {@link google.monitoring.dashboard.v1.MosaicLayout.verify|verify} messages.
+ * @param message MosaicLayout message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IMosaicLayout, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified MosaicLayout message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.MosaicLayout.verify|verify} messages.
+ * @param message MosaicLayout message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IMosaicLayout, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a MosaicLayout message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns MosaicLayout
+ * @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.monitoring.dashboard.v1.MosaicLayout;
+
+ /**
+ * Decodes a MosaicLayout message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns MosaicLayout
+ * @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.monitoring.dashboard.v1.MosaicLayout;
+
+ /**
+ * Verifies a MosaicLayout 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 MosaicLayout message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns MosaicLayout
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.MosaicLayout;
+
+ /**
+ * Creates a plain object from a MosaicLayout message. Also converts values to other types if specified.
+ * @param message MosaicLayout
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.MosaicLayout, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this MosaicLayout to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for MosaicLayout
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace MosaicLayout {
+
+ /** Properties of a Tile. */
+ interface ITile {
+
+ /** Tile xPos */
+ xPos?: (number|null);
+
+ /** Tile yPos */
+ yPos?: (number|null);
+
+ /** Tile width */
+ width?: (number|null);
+
+ /** Tile height */
+ height?: (number|null);
+
+ /** Tile widget */
+ widget?: (google.monitoring.dashboard.v1.IWidget|null);
+ }
+
+ /** Represents a Tile. */
+ class Tile implements ITile {
+
+ /**
+ * Constructs a new Tile.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.MosaicLayout.ITile);
+
+ /** Tile xPos. */
+ public xPos: number;
+
+ /** Tile yPos. */
+ public yPos: number;
+
+ /** Tile width. */
+ public width: number;
+
+ /** Tile height. */
+ public height: number;
+
+ /** Tile widget. */
+ public widget?: (google.monitoring.dashboard.v1.IWidget|null);
+
+ /**
+ * Creates a new Tile instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Tile instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.MosaicLayout.ITile): google.monitoring.dashboard.v1.MosaicLayout.Tile;
+
+ /**
+ * Encodes the specified Tile message. Does not implicitly {@link google.monitoring.dashboard.v1.MosaicLayout.Tile.verify|verify} messages.
+ * @param message Tile message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.MosaicLayout.ITile, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Tile message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.MosaicLayout.Tile.verify|verify} messages.
+ * @param message Tile message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.MosaicLayout.ITile, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Tile message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Tile
+ * @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.monitoring.dashboard.v1.MosaicLayout.Tile;
+
+ /**
+ * Decodes a Tile message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Tile
+ * @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.monitoring.dashboard.v1.MosaicLayout.Tile;
+
+ /**
+ * Verifies a Tile 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 Tile message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Tile
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.MosaicLayout.Tile;
+
+ /**
+ * Creates a plain object from a Tile message. Also converts values to other types if specified.
+ * @param message Tile
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.MosaicLayout.Tile, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Tile to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Tile
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+ }
+
+ /** Properties of a RowLayout. */
+ interface IRowLayout {
+
+ /** RowLayout rows */
+ rows?: (google.monitoring.dashboard.v1.RowLayout.IRow[]|null);
+ }
+
+ /** Represents a RowLayout. */
+ class RowLayout implements IRowLayout {
+
+ /**
+ * Constructs a new RowLayout.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IRowLayout);
+
+ /** RowLayout rows. */
+ public rows: google.monitoring.dashboard.v1.RowLayout.IRow[];
+
+ /**
+ * Creates a new RowLayout instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns RowLayout instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IRowLayout): google.monitoring.dashboard.v1.RowLayout;
+
+ /**
+ * Encodes the specified RowLayout message. Does not implicitly {@link google.monitoring.dashboard.v1.RowLayout.verify|verify} messages.
+ * @param message RowLayout message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IRowLayout, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified RowLayout message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.RowLayout.verify|verify} messages.
+ * @param message RowLayout message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IRowLayout, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a RowLayout message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns RowLayout
+ * @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.monitoring.dashboard.v1.RowLayout;
+
+ /**
+ * Decodes a RowLayout message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns RowLayout
+ * @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.monitoring.dashboard.v1.RowLayout;
+
+ /**
+ * Verifies a RowLayout 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 RowLayout message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns RowLayout
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.RowLayout;
+
+ /**
+ * Creates a plain object from a RowLayout message. Also converts values to other types if specified.
+ * @param message RowLayout
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.RowLayout, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this RowLayout to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for RowLayout
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace RowLayout {
+
+ /** Properties of a Row. */
+ interface IRow {
+
+ /** Row weight */
+ weight?: (number|Long|string|null);
+
+ /** Row widgets */
+ widgets?: (google.monitoring.dashboard.v1.IWidget[]|null);
+ }
+
+ /** Represents a Row. */
+ class Row implements IRow {
+
+ /**
+ * Constructs a new Row.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.RowLayout.IRow);
+
+ /** Row weight. */
+ public weight: (number|Long|string);
+
+ /** Row widgets. */
+ public widgets: google.monitoring.dashboard.v1.IWidget[];
+
+ /**
+ * Creates a new Row instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Row instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.RowLayout.IRow): google.monitoring.dashboard.v1.RowLayout.Row;
+
+ /**
+ * Encodes the specified Row message. Does not implicitly {@link google.monitoring.dashboard.v1.RowLayout.Row.verify|verify} messages.
+ * @param message Row message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.RowLayout.IRow, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Row message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.RowLayout.Row.verify|verify} messages.
+ * @param message Row message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.RowLayout.IRow, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Row message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Row
+ * @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.monitoring.dashboard.v1.RowLayout.Row;
+
+ /**
+ * Decodes a Row message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Row
+ * @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.monitoring.dashboard.v1.RowLayout.Row;
+
+ /**
+ * Verifies a Row 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 Row message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Row
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.RowLayout.Row;
+
+ /**
+ * Creates a plain object from a Row message. Also converts values to other types if specified.
+ * @param message Row
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.RowLayout.Row, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Row to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Row
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+ }
+
+ /** Properties of a ColumnLayout. */
+ interface IColumnLayout {
+
+ /** ColumnLayout columns */
+ columns?: (google.monitoring.dashboard.v1.ColumnLayout.IColumn[]|null);
+ }
+
+ /** Represents a ColumnLayout. */
+ class ColumnLayout implements IColumnLayout {
+
+ /**
+ * Constructs a new ColumnLayout.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IColumnLayout);
+
+ /** ColumnLayout columns. */
+ public columns: google.monitoring.dashboard.v1.ColumnLayout.IColumn[];
+
+ /**
+ * Creates a new ColumnLayout instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ColumnLayout instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IColumnLayout): google.monitoring.dashboard.v1.ColumnLayout;
+
+ /**
+ * Encodes the specified ColumnLayout message. Does not implicitly {@link google.monitoring.dashboard.v1.ColumnLayout.verify|verify} messages.
+ * @param message ColumnLayout message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IColumnLayout, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ColumnLayout message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.ColumnLayout.verify|verify} messages.
+ * @param message ColumnLayout message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IColumnLayout, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ColumnLayout message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ColumnLayout
+ * @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.monitoring.dashboard.v1.ColumnLayout;
+
+ /**
+ * Decodes a ColumnLayout message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ColumnLayout
+ * @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.monitoring.dashboard.v1.ColumnLayout;
+
+ /**
+ * Verifies a ColumnLayout 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 ColumnLayout message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ColumnLayout
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.ColumnLayout;
+
+ /**
+ * Creates a plain object from a ColumnLayout message. Also converts values to other types if specified.
+ * @param message ColumnLayout
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.ColumnLayout, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ColumnLayout to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for ColumnLayout
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace ColumnLayout {
+
+ /** Properties of a Column. */
+ interface IColumn {
+
+ /** Column weight */
+ weight?: (number|Long|string|null);
+
+ /** Column widgets */
+ widgets?: (google.monitoring.dashboard.v1.IWidget[]|null);
+ }
+
+ /** Represents a Column. */
+ class Column implements IColumn {
+
+ /**
+ * Constructs a new Column.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.ColumnLayout.IColumn);
+
+ /** Column weight. */
+ public weight: (number|Long|string);
+
+ /** Column widgets. */
+ public widgets: google.monitoring.dashboard.v1.IWidget[];
+
+ /**
+ * Creates a new Column instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Column instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.ColumnLayout.IColumn): google.monitoring.dashboard.v1.ColumnLayout.Column;
+
+ /**
+ * Encodes the specified Column message. Does not implicitly {@link google.monitoring.dashboard.v1.ColumnLayout.Column.verify|verify} messages.
+ * @param message Column message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.ColumnLayout.IColumn, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Column message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.ColumnLayout.Column.verify|verify} messages.
+ * @param message Column message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.ColumnLayout.IColumn, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Column message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Column
+ * @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.monitoring.dashboard.v1.ColumnLayout.Column;
+
+ /**
+ * Decodes a Column message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Column
+ * @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.monitoring.dashboard.v1.ColumnLayout.Column;
+
+ /**
+ * Verifies a Column 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 Column message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Column
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.ColumnLayout.Column;
+
+ /**
+ * Creates a plain object from a Column message. Also converts values to other types if specified.
+ * @param message Column
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.ColumnLayout.Column, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Column to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Column
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+ }
+
+ /** Properties of a Widget. */
+ interface IWidget {
+
+ /** Widget title */
+ title?: (string|null);
+
+ /** Widget xyChart */
+ xyChart?: (google.monitoring.dashboard.v1.IXyChart|null);
+
+ /** Widget scorecard */
+ scorecard?: (google.monitoring.dashboard.v1.IScorecard|null);
+
+ /** Widget text */
+ text?: (google.monitoring.dashboard.v1.IText|null);
+
+ /** Widget blank */
+ blank?: (google.protobuf.IEmpty|null);
+
+ /** Widget alertChart */
+ alertChart?: (google.monitoring.dashboard.v1.IAlertChart|null);
+
+ /** Widget timeSeriesTable */
+ timeSeriesTable?: (google.monitoring.dashboard.v1.ITimeSeriesTable|null);
+
+ /** Widget collapsibleGroup */
+ collapsibleGroup?: (google.monitoring.dashboard.v1.ICollapsibleGroup|null);
+
+ /** Widget logsPanel */
+ logsPanel?: (google.monitoring.dashboard.v1.ILogsPanel|null);
+ }
+
+ /** Represents a Widget. */
+ class Widget implements IWidget {
+
+ /**
+ * Constructs a new Widget.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IWidget);
+
+ /** Widget title. */
+ public title: string;
+
+ /** Widget xyChart. */
+ public xyChart?: (google.monitoring.dashboard.v1.IXyChart|null);
+
+ /** Widget scorecard. */
+ public scorecard?: (google.monitoring.dashboard.v1.IScorecard|null);
+
+ /** Widget text. */
+ public text?: (google.monitoring.dashboard.v1.IText|null);
+
+ /** Widget blank. */
+ public blank?: (google.protobuf.IEmpty|null);
+
+ /** Widget alertChart. */
+ public alertChart?: (google.monitoring.dashboard.v1.IAlertChart|null);
+
+ /** Widget timeSeriesTable. */
+ public timeSeriesTable?: (google.monitoring.dashboard.v1.ITimeSeriesTable|null);
+
+ /** Widget collapsibleGroup. */
+ public collapsibleGroup?: (google.monitoring.dashboard.v1.ICollapsibleGroup|null);
+
+ /** Widget logsPanel. */
+ public logsPanel?: (google.monitoring.dashboard.v1.ILogsPanel|null);
+
+ /** Widget content. */
+ public content?: ("xyChart"|"scorecard"|"text"|"blank"|"alertChart"|"timeSeriesTable"|"collapsibleGroup"|"logsPanel");
+
+ /**
+ * Creates a new Widget instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Widget instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IWidget): google.monitoring.dashboard.v1.Widget;
+
+ /**
+ * Encodes the specified Widget message. Does not implicitly {@link google.monitoring.dashboard.v1.Widget.verify|verify} messages.
+ * @param message Widget message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IWidget, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Widget message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Widget.verify|verify} messages.
+ * @param message Widget message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IWidget, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Widget message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Widget
+ * @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.monitoring.dashboard.v1.Widget;
+
+ /**
+ * Decodes a Widget message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Widget
+ * @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.monitoring.dashboard.v1.Widget;
+
+ /**
+ * Verifies a Widget 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 Widget message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Widget
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.Widget;
+
+ /**
+ * Creates a plain object from a Widget message. Also converts values to other types if specified.
+ * @param message Widget
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.Widget, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Widget to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Widget
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a LogsPanel. */
+ interface ILogsPanel {
+
+ /** LogsPanel filter */
+ filter?: (string|null);
+
+ /** LogsPanel resourceNames */
+ resourceNames?: (string[]|null);
+ }
+
+ /** Represents a LogsPanel. */
+ class LogsPanel implements ILogsPanel {
+
+ /**
+ * Constructs a new LogsPanel.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.ILogsPanel);
+
+ /** LogsPanel filter. */
+ public filter: string;
+
+ /** LogsPanel resourceNames. */
+ public resourceNames: string[];
+
+ /**
+ * Creates a new LogsPanel instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns LogsPanel instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.ILogsPanel): google.monitoring.dashboard.v1.LogsPanel;
+
+ /**
+ * Encodes the specified LogsPanel message. Does not implicitly {@link google.monitoring.dashboard.v1.LogsPanel.verify|verify} messages.
+ * @param message LogsPanel message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.ILogsPanel, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified LogsPanel message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.LogsPanel.verify|verify} messages.
+ * @param message LogsPanel message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.ILogsPanel, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a LogsPanel message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns LogsPanel
+ * @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.monitoring.dashboard.v1.LogsPanel;
+
+ /**
+ * Decodes a LogsPanel message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns LogsPanel
+ * @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.monitoring.dashboard.v1.LogsPanel;
+
+ /**
+ * Verifies a LogsPanel 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 LogsPanel message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns LogsPanel
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.LogsPanel;
+
+ /**
+ * Creates a plain object from a LogsPanel message. Also converts values to other types if specified.
+ * @param message LogsPanel
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.LogsPanel, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this LogsPanel to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for LogsPanel
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a Scorecard. */
+ interface IScorecard {
+
+ /** Scorecard timeSeriesQuery */
+ timeSeriesQuery?: (google.monitoring.dashboard.v1.ITimeSeriesQuery|null);
+
+ /** Scorecard gaugeView */
+ gaugeView?: (google.monitoring.dashboard.v1.Scorecard.IGaugeView|null);
+
+ /** Scorecard sparkChartView */
+ sparkChartView?: (google.monitoring.dashboard.v1.Scorecard.ISparkChartView|null);
+
+ /** Scorecard thresholds */
+ thresholds?: (google.monitoring.dashboard.v1.IThreshold[]|null);
+ }
+
+ /** Represents a Scorecard. */
+ class Scorecard implements IScorecard {
+
+ /**
+ * Constructs a new Scorecard.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IScorecard);
+
+ /** Scorecard timeSeriesQuery. */
+ public timeSeriesQuery?: (google.monitoring.dashboard.v1.ITimeSeriesQuery|null);
+
+ /** Scorecard gaugeView. */
+ public gaugeView?: (google.monitoring.dashboard.v1.Scorecard.IGaugeView|null);
+
+ /** Scorecard sparkChartView. */
+ public sparkChartView?: (google.monitoring.dashboard.v1.Scorecard.ISparkChartView|null);
+
+ /** Scorecard thresholds. */
+ public thresholds: google.monitoring.dashboard.v1.IThreshold[];
+
+ /** Scorecard dataView. */
+ public dataView?: ("gaugeView"|"sparkChartView");
+
+ /**
+ * Creates a new Scorecard instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Scorecard instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IScorecard): google.monitoring.dashboard.v1.Scorecard;
+
+ /**
+ * Encodes the specified Scorecard message. Does not implicitly {@link google.monitoring.dashboard.v1.Scorecard.verify|verify} messages.
+ * @param message Scorecard message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IScorecard, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Scorecard message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Scorecard.verify|verify} messages.
+ * @param message Scorecard message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IScorecard, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Scorecard message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Scorecard
+ * @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.monitoring.dashboard.v1.Scorecard;
+
+ /**
+ * Decodes a Scorecard message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Scorecard
+ * @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.monitoring.dashboard.v1.Scorecard;
+
+ /**
+ * Verifies a Scorecard 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 Scorecard message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Scorecard
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.Scorecard;
+
+ /**
+ * Creates a plain object from a Scorecard message. Also converts values to other types if specified.
+ * @param message Scorecard
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.Scorecard, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Scorecard to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Scorecard
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace Scorecard {
+
+ /** Properties of a GaugeView. */
+ interface IGaugeView {
+
+ /** GaugeView lowerBound */
+ lowerBound?: (number|null);
+
+ /** GaugeView upperBound */
+ upperBound?: (number|null);
+ }
+
+ /** Represents a GaugeView. */
+ class GaugeView implements IGaugeView {
+
+ /**
+ * Constructs a new GaugeView.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.Scorecard.IGaugeView);
+
+ /** GaugeView lowerBound. */
+ public lowerBound: number;
+
+ /** GaugeView upperBound. */
+ public upperBound: number;
+
+ /**
+ * Creates a new GaugeView instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns GaugeView instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.Scorecard.IGaugeView): google.monitoring.dashboard.v1.Scorecard.GaugeView;
+
+ /**
+ * Encodes the specified GaugeView message. Does not implicitly {@link google.monitoring.dashboard.v1.Scorecard.GaugeView.verify|verify} messages.
+ * @param message GaugeView message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.Scorecard.IGaugeView, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified GaugeView message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Scorecard.GaugeView.verify|verify} messages.
+ * @param message GaugeView message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.Scorecard.IGaugeView, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a GaugeView message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns GaugeView
+ * @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.monitoring.dashboard.v1.Scorecard.GaugeView;
+
+ /**
+ * Decodes a GaugeView message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns GaugeView
+ * @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.monitoring.dashboard.v1.Scorecard.GaugeView;
+
+ /**
+ * Verifies a GaugeView 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 GaugeView message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns GaugeView
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.Scorecard.GaugeView;
+
+ /**
+ * Creates a plain object from a GaugeView message. Also converts values to other types if specified.
+ * @param message GaugeView
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.Scorecard.GaugeView, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this GaugeView to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for GaugeView
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a SparkChartView. */
+ interface ISparkChartView {
+
+ /** SparkChartView sparkChartType */
+ sparkChartType?: (google.monitoring.dashboard.v1.SparkChartType|keyof typeof google.monitoring.dashboard.v1.SparkChartType|null);
+
+ /** SparkChartView minAlignmentPeriod */
+ minAlignmentPeriod?: (google.protobuf.IDuration|null);
+ }
+
+ /** Represents a SparkChartView. */
+ class SparkChartView implements ISparkChartView {
+
+ /**
+ * Constructs a new SparkChartView.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.Scorecard.ISparkChartView);
+
+ /** SparkChartView sparkChartType. */
+ public sparkChartType: (google.monitoring.dashboard.v1.SparkChartType|keyof typeof google.monitoring.dashboard.v1.SparkChartType);
+
+ /** SparkChartView minAlignmentPeriod. */
+ public minAlignmentPeriod?: (google.protobuf.IDuration|null);
+
+ /**
+ * Creates a new SparkChartView instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns SparkChartView instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.Scorecard.ISparkChartView): google.monitoring.dashboard.v1.Scorecard.SparkChartView;
+
+ /**
+ * Encodes the specified SparkChartView message. Does not implicitly {@link google.monitoring.dashboard.v1.Scorecard.SparkChartView.verify|verify} messages.
+ * @param message SparkChartView message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.Scorecard.ISparkChartView, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified SparkChartView message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Scorecard.SparkChartView.verify|verify} messages.
+ * @param message SparkChartView message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.Scorecard.ISparkChartView, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a SparkChartView message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns SparkChartView
+ * @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.monitoring.dashboard.v1.Scorecard.SparkChartView;
+
+ /**
+ * Decodes a SparkChartView message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns SparkChartView
+ * @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.monitoring.dashboard.v1.Scorecard.SparkChartView;
+
+ /**
+ * Verifies a SparkChartView 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 SparkChartView message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns SparkChartView
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.Scorecard.SparkChartView;
+
+ /**
+ * Creates a plain object from a SparkChartView message. Also converts values to other types if specified.
+ * @param message SparkChartView
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.Scorecard.SparkChartView, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this SparkChartView to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for SparkChartView
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+ }
+
+ /** Properties of a TimeSeriesQuery. */
+ interface ITimeSeriesQuery {
+
+ /** TimeSeriesQuery timeSeriesFilter */
+ timeSeriesFilter?: (google.monitoring.dashboard.v1.ITimeSeriesFilter|null);
+
+ /** TimeSeriesQuery timeSeriesFilterRatio */
+ timeSeriesFilterRatio?: (google.monitoring.dashboard.v1.ITimeSeriesFilterRatio|null);
+
+ /** TimeSeriesQuery timeSeriesQueryLanguage */
+ timeSeriesQueryLanguage?: (string|null);
+
+ /** TimeSeriesQuery unitOverride */
+ unitOverride?: (string|null);
+ }
+
+ /** Represents a TimeSeriesQuery. */
+ class TimeSeriesQuery implements ITimeSeriesQuery {
+
+ /**
+ * Constructs a new TimeSeriesQuery.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.ITimeSeriesQuery);
+
+ /** TimeSeriesQuery timeSeriesFilter. */
+ public timeSeriesFilter?: (google.monitoring.dashboard.v1.ITimeSeriesFilter|null);
+
+ /** TimeSeriesQuery timeSeriesFilterRatio. */
+ public timeSeriesFilterRatio?: (google.monitoring.dashboard.v1.ITimeSeriesFilterRatio|null);
+
+ /** TimeSeriesQuery timeSeriesQueryLanguage. */
+ public timeSeriesQueryLanguage?: (string|null);
+
+ /** TimeSeriesQuery unitOverride. */
+ public unitOverride: string;
+
+ /** TimeSeriesQuery source. */
+ public source?: ("timeSeriesFilter"|"timeSeriesFilterRatio"|"timeSeriesQueryLanguage");
+
+ /**
+ * Creates a new TimeSeriesQuery instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns TimeSeriesQuery instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.ITimeSeriesQuery): google.monitoring.dashboard.v1.TimeSeriesQuery;
+
+ /**
+ * Encodes the specified TimeSeriesQuery message. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesQuery.verify|verify} messages.
+ * @param message TimeSeriesQuery message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.ITimeSeriesQuery, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified TimeSeriesQuery message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesQuery.verify|verify} messages.
+ * @param message TimeSeriesQuery message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.ITimeSeriesQuery, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a TimeSeriesQuery message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns TimeSeriesQuery
+ * @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.monitoring.dashboard.v1.TimeSeriesQuery;
+
+ /**
+ * Decodes a TimeSeriesQuery message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns TimeSeriesQuery
+ * @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.monitoring.dashboard.v1.TimeSeriesQuery;
+
+ /**
+ * Verifies a TimeSeriesQuery 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 TimeSeriesQuery message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns TimeSeriesQuery
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.TimeSeriesQuery;
+
+ /**
+ * Creates a plain object from a TimeSeriesQuery message. Also converts values to other types if specified.
+ * @param message TimeSeriesQuery
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.TimeSeriesQuery, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this TimeSeriesQuery to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for TimeSeriesQuery
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a TimeSeriesFilter. */
+ interface ITimeSeriesFilter {
+
+ /** TimeSeriesFilter filter */
+ filter?: (string|null);
+
+ /** TimeSeriesFilter aggregation */
+ aggregation?: (google.monitoring.dashboard.v1.IAggregation|null);
+
+ /** TimeSeriesFilter secondaryAggregation */
+ secondaryAggregation?: (google.monitoring.dashboard.v1.IAggregation|null);
+
+ /** TimeSeriesFilter pickTimeSeriesFilter */
+ pickTimeSeriesFilter?: (google.monitoring.dashboard.v1.IPickTimeSeriesFilter|null);
+
+ /** TimeSeriesFilter statisticalTimeSeriesFilter */
+ statisticalTimeSeriesFilter?: (google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter|null);
+ }
+
+ /** Represents a TimeSeriesFilter. */
+ class TimeSeriesFilter implements ITimeSeriesFilter {
+
+ /**
+ * Constructs a new TimeSeriesFilter.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.ITimeSeriesFilter);
+
+ /** TimeSeriesFilter filter. */
+ public filter: string;
+
+ /** TimeSeriesFilter aggregation. */
+ public aggregation?: (google.monitoring.dashboard.v1.IAggregation|null);
+
+ /** TimeSeriesFilter secondaryAggregation. */
+ public secondaryAggregation?: (google.monitoring.dashboard.v1.IAggregation|null);
+
+ /** TimeSeriesFilter pickTimeSeriesFilter. */
+ public pickTimeSeriesFilter?: (google.monitoring.dashboard.v1.IPickTimeSeriesFilter|null);
+
+ /** TimeSeriesFilter statisticalTimeSeriesFilter. */
+ public statisticalTimeSeriesFilter?: (google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter|null);
+
+ /** TimeSeriesFilter outputFilter. */
+ public outputFilter?: ("pickTimeSeriesFilter"|"statisticalTimeSeriesFilter");
+
+ /**
+ * Creates a new TimeSeriesFilter instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns TimeSeriesFilter instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.ITimeSeriesFilter): google.monitoring.dashboard.v1.TimeSeriesFilter;
+
+ /**
+ * Encodes the specified TimeSeriesFilter message. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesFilter.verify|verify} messages.
+ * @param message TimeSeriesFilter message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.ITimeSeriesFilter, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified TimeSeriesFilter message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesFilter.verify|verify} messages.
+ * @param message TimeSeriesFilter message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.ITimeSeriesFilter, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a TimeSeriesFilter message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns TimeSeriesFilter
+ * @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.monitoring.dashboard.v1.TimeSeriesFilter;
+
+ /**
+ * Decodes a TimeSeriesFilter message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns TimeSeriesFilter
+ * @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.monitoring.dashboard.v1.TimeSeriesFilter;
+
+ /**
+ * Verifies a TimeSeriesFilter 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 TimeSeriesFilter message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns TimeSeriesFilter
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.TimeSeriesFilter;
+
+ /**
+ * Creates a plain object from a TimeSeriesFilter message. Also converts values to other types if specified.
+ * @param message TimeSeriesFilter
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.TimeSeriesFilter, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this TimeSeriesFilter to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for TimeSeriesFilter
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a TimeSeriesFilterRatio. */
+ interface ITimeSeriesFilterRatio {
+
+ /** TimeSeriesFilterRatio numerator */
+ numerator?: (google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart|null);
+
+ /** TimeSeriesFilterRatio denominator */
+ denominator?: (google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart|null);
+
+ /** TimeSeriesFilterRatio secondaryAggregation */
+ secondaryAggregation?: (google.monitoring.dashboard.v1.IAggregation|null);
+
+ /** TimeSeriesFilterRatio pickTimeSeriesFilter */
+ pickTimeSeriesFilter?: (google.monitoring.dashboard.v1.IPickTimeSeriesFilter|null);
+
+ /** TimeSeriesFilterRatio statisticalTimeSeriesFilter */
+ statisticalTimeSeriesFilter?: (google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter|null);
+ }
+
+ /** Represents a TimeSeriesFilterRatio. */
+ class TimeSeriesFilterRatio implements ITimeSeriesFilterRatio {
+
+ /**
+ * Constructs a new TimeSeriesFilterRatio.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.ITimeSeriesFilterRatio);
+
+ /** TimeSeriesFilterRatio numerator. */
+ public numerator?: (google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart|null);
+
+ /** TimeSeriesFilterRatio denominator. */
+ public denominator?: (google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart|null);
+
+ /** TimeSeriesFilterRatio secondaryAggregation. */
+ public secondaryAggregation?: (google.monitoring.dashboard.v1.IAggregation|null);
+
+ /** TimeSeriesFilterRatio pickTimeSeriesFilter. */
+ public pickTimeSeriesFilter?: (google.monitoring.dashboard.v1.IPickTimeSeriesFilter|null);
+
+ /** TimeSeriesFilterRatio statisticalTimeSeriesFilter. */
+ public statisticalTimeSeriesFilter?: (google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter|null);
+
+ /** TimeSeriesFilterRatio outputFilter. */
+ public outputFilter?: ("pickTimeSeriesFilter"|"statisticalTimeSeriesFilter");
+
+ /**
+ * Creates a new TimeSeriesFilterRatio instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns TimeSeriesFilterRatio instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.ITimeSeriesFilterRatio): google.monitoring.dashboard.v1.TimeSeriesFilterRatio;
+
+ /**
+ * Encodes the specified TimeSeriesFilterRatio message. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesFilterRatio.verify|verify} messages.
+ * @param message TimeSeriesFilterRatio message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.ITimeSeriesFilterRatio, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified TimeSeriesFilterRatio message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesFilterRatio.verify|verify} messages.
+ * @param message TimeSeriesFilterRatio message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.ITimeSeriesFilterRatio, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a TimeSeriesFilterRatio message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns TimeSeriesFilterRatio
+ * @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.monitoring.dashboard.v1.TimeSeriesFilterRatio;
+
+ /**
+ * Decodes a TimeSeriesFilterRatio message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns TimeSeriesFilterRatio
+ * @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.monitoring.dashboard.v1.TimeSeriesFilterRatio;
+
+ /**
+ * Verifies a TimeSeriesFilterRatio 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 TimeSeriesFilterRatio message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns TimeSeriesFilterRatio
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.TimeSeriesFilterRatio;
+
+ /**
+ * Creates a plain object from a TimeSeriesFilterRatio message. Also converts values to other types if specified.
+ * @param message TimeSeriesFilterRatio
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.TimeSeriesFilterRatio, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this TimeSeriesFilterRatio to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for TimeSeriesFilterRatio
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace TimeSeriesFilterRatio {
+
+ /** Properties of a RatioPart. */
+ interface IRatioPart {
+
+ /** RatioPart filter */
+ filter?: (string|null);
+
+ /** RatioPart aggregation */
+ aggregation?: (google.monitoring.dashboard.v1.IAggregation|null);
+ }
+
+ /** Represents a RatioPart. */
+ class RatioPart implements IRatioPart {
+
+ /**
+ * Constructs a new RatioPart.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart);
+
+ /** RatioPart filter. */
+ public filter: string;
+
+ /** RatioPart aggregation. */
+ public aggregation?: (google.monitoring.dashboard.v1.IAggregation|null);
+
+ /**
+ * Creates a new RatioPart instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns RatioPart instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart): google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart;
+
+ /**
+ * Encodes the specified RatioPart message. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.verify|verify} messages.
+ * @param message RatioPart message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified RatioPart message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.verify|verify} messages.
+ * @param message RatioPart message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a RatioPart message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns RatioPart
+ * @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.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart;
+
+ /**
+ * Decodes a RatioPart message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns RatioPart
+ * @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.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart;
+
+ /**
+ * Verifies a RatioPart 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 RatioPart message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns RatioPart
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart;
+
+ /**
+ * Creates a plain object from a RatioPart message. Also converts values to other types if specified.
+ * @param message RatioPart
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this RatioPart to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for RatioPart
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+ }
+
+ /** Properties of a Threshold. */
+ interface IThreshold {
+
+ /** Threshold label */
+ label?: (string|null);
+
+ /** Threshold value */
+ value?: (number|null);
+
+ /** Threshold color */
+ color?: (google.monitoring.dashboard.v1.Threshold.Color|keyof typeof google.monitoring.dashboard.v1.Threshold.Color|null);
+
+ /** Threshold direction */
+ direction?: (google.monitoring.dashboard.v1.Threshold.Direction|keyof typeof google.monitoring.dashboard.v1.Threshold.Direction|null);
+
+ /** Threshold targetAxis */
+ targetAxis?: (google.monitoring.dashboard.v1.Threshold.TargetAxis|keyof typeof google.monitoring.dashboard.v1.Threshold.TargetAxis|null);
+ }
+
+ /** Represents a Threshold. */
+ class Threshold implements IThreshold {
+
+ /**
+ * Constructs a new Threshold.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IThreshold);
+
+ /** Threshold label. */
+ public label: string;
+
+ /** Threshold value. */
+ public value: number;
+
+ /** Threshold color. */
+ public color: (google.monitoring.dashboard.v1.Threshold.Color|keyof typeof google.monitoring.dashboard.v1.Threshold.Color);
+
+ /** Threshold direction. */
+ public direction: (google.monitoring.dashboard.v1.Threshold.Direction|keyof typeof google.monitoring.dashboard.v1.Threshold.Direction);
+
+ /** Threshold targetAxis. */
+ public targetAxis: (google.monitoring.dashboard.v1.Threshold.TargetAxis|keyof typeof google.monitoring.dashboard.v1.Threshold.TargetAxis);
+
+ /**
+ * Creates a new Threshold instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Threshold instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IThreshold): google.monitoring.dashboard.v1.Threshold;
+
+ /**
+ * Encodes the specified Threshold message. Does not implicitly {@link google.monitoring.dashboard.v1.Threshold.verify|verify} messages.
+ * @param message Threshold message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IThreshold, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Threshold message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Threshold.verify|verify} messages.
+ * @param message Threshold message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IThreshold, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Threshold message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Threshold
+ * @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.monitoring.dashboard.v1.Threshold;
+
+ /**
+ * Decodes a Threshold message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Threshold
+ * @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.monitoring.dashboard.v1.Threshold;
+
+ /**
+ * Verifies a Threshold 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 Threshold message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Threshold
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.Threshold;
+
+ /**
+ * Creates a plain object from a Threshold message. Also converts values to other types if specified.
+ * @param message Threshold
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.Threshold, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Threshold to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Threshold
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace Threshold {
+
+ /** Color enum. */
+ enum Color {
+ COLOR_UNSPECIFIED = 0,
+ YELLOW = 4,
+ RED = 6
+ }
+
+ /** Direction enum. */
+ enum Direction {
+ DIRECTION_UNSPECIFIED = 0,
+ ABOVE = 1,
+ BELOW = 2
+ }
+
+ /** TargetAxis enum. */
+ enum TargetAxis {
+ TARGET_AXIS_UNSPECIFIED = 0,
+ Y1 = 1,
+ Y2 = 2
+ }
+ }
+
+ /** SparkChartType enum. */
+ enum SparkChartType {
+ SPARK_CHART_TYPE_UNSPECIFIED = 0,
+ SPARK_LINE = 1,
+ SPARK_BAR = 2
+ }
+
+ /** Properties of a TimeSeriesTable. */
+ interface ITimeSeriesTable {
+
+ /** TimeSeriesTable dataSets */
+ dataSets?: (google.monitoring.dashboard.v1.TimeSeriesTable.ITableDataSet[]|null);
+ }
+
+ /** Represents a TimeSeriesTable. */
+ class TimeSeriesTable implements ITimeSeriesTable {
+
+ /**
+ * Constructs a new TimeSeriesTable.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.ITimeSeriesTable);
+
+ /** TimeSeriesTable dataSets. */
+ public dataSets: google.monitoring.dashboard.v1.TimeSeriesTable.ITableDataSet[];
+
+ /**
+ * Creates a new TimeSeriesTable instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns TimeSeriesTable instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.ITimeSeriesTable): google.monitoring.dashboard.v1.TimeSeriesTable;
+
+ /**
+ * Encodes the specified TimeSeriesTable message. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesTable.verify|verify} messages.
+ * @param message TimeSeriesTable message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.ITimeSeriesTable, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified TimeSeriesTable message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesTable.verify|verify} messages.
+ * @param message TimeSeriesTable message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.ITimeSeriesTable, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a TimeSeriesTable message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns TimeSeriesTable
+ * @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.monitoring.dashboard.v1.TimeSeriesTable;
+
+ /**
+ * Decodes a TimeSeriesTable message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns TimeSeriesTable
+ * @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.monitoring.dashboard.v1.TimeSeriesTable;
+
+ /**
+ * Verifies a TimeSeriesTable 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 TimeSeriesTable message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns TimeSeriesTable
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.TimeSeriesTable;
+
+ /**
+ * Creates a plain object from a TimeSeriesTable message. Also converts values to other types if specified.
+ * @param message TimeSeriesTable
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.TimeSeriesTable, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this TimeSeriesTable to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for TimeSeriesTable
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace TimeSeriesTable {
+
+ /** Properties of a TableDataSet. */
+ interface ITableDataSet {
+
+ /** TableDataSet timeSeriesQuery */
+ timeSeriesQuery?: (google.monitoring.dashboard.v1.ITimeSeriesQuery|null);
+
+ /** TableDataSet tableTemplate */
+ tableTemplate?: (string|null);
+
+ /** TableDataSet minAlignmentPeriod */
+ minAlignmentPeriod?: (google.protobuf.IDuration|null);
+
+ /** TableDataSet tableDisplayOptions */
+ tableDisplayOptions?: (google.monitoring.dashboard.v1.ITableDisplayOptions|null);
+ }
+
+ /** Represents a TableDataSet. */
+ class TableDataSet implements ITableDataSet {
+
+ /**
+ * Constructs a new TableDataSet.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.TimeSeriesTable.ITableDataSet);
+
+ /** TableDataSet timeSeriesQuery. */
+ public timeSeriesQuery?: (google.monitoring.dashboard.v1.ITimeSeriesQuery|null);
+
+ /** TableDataSet tableTemplate. */
+ public tableTemplate: string;
+
+ /** TableDataSet minAlignmentPeriod. */
+ public minAlignmentPeriod?: (google.protobuf.IDuration|null);
+
+ /** TableDataSet tableDisplayOptions. */
+ public tableDisplayOptions?: (google.monitoring.dashboard.v1.ITableDisplayOptions|null);
+
+ /**
+ * Creates a new TableDataSet instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns TableDataSet instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.TimeSeriesTable.ITableDataSet): google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet;
+
+ /**
+ * Encodes the specified TableDataSet message. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet.verify|verify} messages.
+ * @param message TableDataSet message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.TimeSeriesTable.ITableDataSet, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified TableDataSet message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet.verify|verify} messages.
+ * @param message TableDataSet message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.TimeSeriesTable.ITableDataSet, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a TableDataSet message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns TableDataSet
+ * @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.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet;
+
+ /**
+ * Decodes a TableDataSet message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns TableDataSet
+ * @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.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet;
+
+ /**
+ * Verifies a TableDataSet 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 TableDataSet message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns TableDataSet
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet;
+
+ /**
+ * Creates a plain object from a TableDataSet message. Also converts values to other types if specified.
+ * @param message TableDataSet
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this TableDataSet to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for TableDataSet
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+ }
+
+ /** Properties of a TableDisplayOptions. */
+ interface ITableDisplayOptions {
+
+ /** TableDisplayOptions shownColumns */
+ shownColumns?: (string[]|null);
+ }
+
+ /** Represents a TableDisplayOptions. */
+ class TableDisplayOptions implements ITableDisplayOptions {
+
+ /**
+ * Constructs a new TableDisplayOptions.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.ITableDisplayOptions);
+
+ /** TableDisplayOptions shownColumns. */
+ public shownColumns: string[];
+
+ /**
+ * Creates a new TableDisplayOptions instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns TableDisplayOptions instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.ITableDisplayOptions): google.monitoring.dashboard.v1.TableDisplayOptions;
+
+ /**
+ * Encodes the specified TableDisplayOptions message. Does not implicitly {@link google.monitoring.dashboard.v1.TableDisplayOptions.verify|verify} messages.
+ * @param message TableDisplayOptions message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.ITableDisplayOptions, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified TableDisplayOptions message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TableDisplayOptions.verify|verify} messages.
+ * @param message TableDisplayOptions message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.ITableDisplayOptions, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a TableDisplayOptions message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns TableDisplayOptions
+ * @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.monitoring.dashboard.v1.TableDisplayOptions;
+
+ /**
+ * Decodes a TableDisplayOptions message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns TableDisplayOptions
+ * @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.monitoring.dashboard.v1.TableDisplayOptions;
+
+ /**
+ * Verifies a TableDisplayOptions 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 TableDisplayOptions message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns TableDisplayOptions
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.TableDisplayOptions;
+
+ /**
+ * Creates a plain object from a TableDisplayOptions message. Also converts values to other types if specified.
+ * @param message TableDisplayOptions
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.TableDisplayOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this TableDisplayOptions to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for TableDisplayOptions
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a Text. */
+ interface IText {
+
+ /** Text content */
+ content?: (string|null);
+
+ /** Text format */
+ format?: (google.monitoring.dashboard.v1.Text.Format|keyof typeof google.monitoring.dashboard.v1.Text.Format|null);
+ }
+
+ /** Represents a Text. */
+ class Text implements IText {
+
+ /**
+ * Constructs a new Text.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IText);
+
+ /** Text content. */
+ public content: string;
+
+ /** Text format. */
+ public format: (google.monitoring.dashboard.v1.Text.Format|keyof typeof google.monitoring.dashboard.v1.Text.Format);
+
+ /**
+ * Creates a new Text instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Text instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IText): google.monitoring.dashboard.v1.Text;
+
+ /**
+ * Encodes the specified Text message. Does not implicitly {@link google.monitoring.dashboard.v1.Text.verify|verify} messages.
+ * @param message Text message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IText, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Text message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Text.verify|verify} messages.
+ * @param message Text message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IText, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Text message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Text
+ * @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.monitoring.dashboard.v1.Text;
+
+ /**
+ * Decodes a Text message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Text
+ * @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.monitoring.dashboard.v1.Text;
+
+ /**
+ * Verifies a Text 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 Text message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Text
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.Text;
+
+ /**
+ * Creates a plain object from a Text message. Also converts values to other types if specified.
+ * @param message Text
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.Text, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Text to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Text
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace Text {
+
+ /** Format enum. */
+ enum Format {
+ FORMAT_UNSPECIFIED = 0,
+ MARKDOWN = 1,
+ RAW = 2
+ }
+ }
+
+ /** Properties of a XyChart. */
+ interface IXyChart {
+
+ /** XyChart dataSets */
+ dataSets?: (google.monitoring.dashboard.v1.XyChart.IDataSet[]|null);
+
+ /** XyChart timeshiftDuration */
+ timeshiftDuration?: (google.protobuf.IDuration|null);
+
+ /** XyChart thresholds */
+ thresholds?: (google.monitoring.dashboard.v1.IThreshold[]|null);
+
+ /** XyChart xAxis */
+ xAxis?: (google.monitoring.dashboard.v1.XyChart.IAxis|null);
+
+ /** XyChart yAxis */
+ yAxis?: (google.monitoring.dashboard.v1.XyChart.IAxis|null);
+
+ /** XyChart y2Axis */
+ y2Axis?: (google.monitoring.dashboard.v1.XyChart.IAxis|null);
+
+ /** XyChart chartOptions */
+ chartOptions?: (google.monitoring.dashboard.v1.IChartOptions|null);
+ }
+
+ /** Represents a XyChart. */
+ class XyChart implements IXyChart {
+
+ /**
+ * Constructs a new XyChart.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IXyChart);
+
+ /** XyChart dataSets. */
+ public dataSets: google.monitoring.dashboard.v1.XyChart.IDataSet[];
+
+ /** XyChart timeshiftDuration. */
+ public timeshiftDuration?: (google.protobuf.IDuration|null);
+
+ /** XyChart thresholds. */
+ public thresholds: google.monitoring.dashboard.v1.IThreshold[];
+
+ /** XyChart xAxis. */
+ public xAxis?: (google.monitoring.dashboard.v1.XyChart.IAxis|null);
+
+ /** XyChart yAxis. */
+ public yAxis?: (google.monitoring.dashboard.v1.XyChart.IAxis|null);
+
+ /** XyChart y2Axis. */
+ public y2Axis?: (google.monitoring.dashboard.v1.XyChart.IAxis|null);
+
+ /** XyChart chartOptions. */
+ public chartOptions?: (google.monitoring.dashboard.v1.IChartOptions|null);
+
+ /**
+ * Creates a new XyChart instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns XyChart instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IXyChart): google.monitoring.dashboard.v1.XyChart;
+
+ /**
+ * Encodes the specified XyChart message. Does not implicitly {@link google.monitoring.dashboard.v1.XyChart.verify|verify} messages.
+ * @param message XyChart message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IXyChart, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified XyChart message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.XyChart.verify|verify} messages.
+ * @param message XyChart message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IXyChart, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a XyChart message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns XyChart
+ * @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.monitoring.dashboard.v1.XyChart;
+
+ /**
+ * Decodes a XyChart message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns XyChart
+ * @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.monitoring.dashboard.v1.XyChart;
+
+ /**
+ * Verifies a XyChart 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 XyChart message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns XyChart
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.XyChart;
+
+ /**
+ * Creates a plain object from a XyChart message. Also converts values to other types if specified.
+ * @param message XyChart
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.XyChart, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this XyChart to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for XyChart
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace XyChart {
+
+ /** Properties of a DataSet. */
+ interface IDataSet {
+
+ /** DataSet timeSeriesQuery */
+ timeSeriesQuery?: (google.monitoring.dashboard.v1.ITimeSeriesQuery|null);
+
+ /** DataSet plotType */
+ plotType?: (google.monitoring.dashboard.v1.XyChart.DataSet.PlotType|keyof typeof google.monitoring.dashboard.v1.XyChart.DataSet.PlotType|null);
+
+ /** DataSet legendTemplate */
+ legendTemplate?: (string|null);
+
+ /** DataSet minAlignmentPeriod */
+ minAlignmentPeriod?: (google.protobuf.IDuration|null);
+
+ /** DataSet targetAxis */
+ targetAxis?: (google.monitoring.dashboard.v1.XyChart.DataSet.TargetAxis|keyof typeof google.monitoring.dashboard.v1.XyChart.DataSet.TargetAxis|null);
+ }
+
+ /** Represents a DataSet. */
+ class DataSet implements IDataSet {
+
+ /**
+ * Constructs a new DataSet.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.XyChart.IDataSet);
+
+ /** DataSet timeSeriesQuery. */
+ public timeSeriesQuery?: (google.monitoring.dashboard.v1.ITimeSeriesQuery|null);
+
+ /** DataSet plotType. */
+ public plotType: (google.monitoring.dashboard.v1.XyChart.DataSet.PlotType|keyof typeof google.monitoring.dashboard.v1.XyChart.DataSet.PlotType);
+
+ /** DataSet legendTemplate. */
+ public legendTemplate: string;
+
+ /** DataSet minAlignmentPeriod. */
+ public minAlignmentPeriod?: (google.protobuf.IDuration|null);
+
+ /** DataSet targetAxis. */
+ public targetAxis: (google.monitoring.dashboard.v1.XyChart.DataSet.TargetAxis|keyof typeof google.monitoring.dashboard.v1.XyChart.DataSet.TargetAxis);
+
+ /**
+ * Creates a new DataSet instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns DataSet instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.XyChart.IDataSet): google.monitoring.dashboard.v1.XyChart.DataSet;
+
+ /**
+ * Encodes the specified DataSet message. Does not implicitly {@link google.monitoring.dashboard.v1.XyChart.DataSet.verify|verify} messages.
+ * @param message DataSet message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.XyChart.IDataSet, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified DataSet message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.XyChart.DataSet.verify|verify} messages.
+ * @param message DataSet message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.XyChart.IDataSet, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a DataSet message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns DataSet
+ * @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.monitoring.dashboard.v1.XyChart.DataSet;
+
+ /**
+ * Decodes a DataSet message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns DataSet
+ * @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.monitoring.dashboard.v1.XyChart.DataSet;
+
+ /**
+ * Verifies a DataSet 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 DataSet message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns DataSet
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.XyChart.DataSet;
+
+ /**
+ * Creates a plain object from a DataSet message. Also converts values to other types if specified.
+ * @param message DataSet
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.XyChart.DataSet, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this DataSet to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for DataSet
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace DataSet {
+
+ /** PlotType enum. */
+ enum PlotType {
+ PLOT_TYPE_UNSPECIFIED = 0,
+ LINE = 1,
+ STACKED_AREA = 2,
+ STACKED_BAR = 3,
+ HEATMAP = 4
+ }
+
+ /** TargetAxis enum. */
+ enum TargetAxis {
+ TARGET_AXIS_UNSPECIFIED = 0,
+ Y1 = 1,
+ Y2 = 2
+ }
+ }
+
+ /** Properties of an Axis. */
+ interface IAxis {
+
+ /** Axis label */
+ label?: (string|null);
+
+ /** Axis scale */
+ scale?: (google.monitoring.dashboard.v1.XyChart.Axis.Scale|keyof typeof google.monitoring.dashboard.v1.XyChart.Axis.Scale|null);
+ }
+
+ /** Represents an Axis. */
+ class Axis implements IAxis {
+
+ /**
+ * Constructs a new Axis.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.XyChart.IAxis);
+
+ /** Axis label. */
+ public label: string;
+
+ /** Axis scale. */
+ public scale: (google.monitoring.dashboard.v1.XyChart.Axis.Scale|keyof typeof google.monitoring.dashboard.v1.XyChart.Axis.Scale);
+
+ /**
+ * Creates a new Axis instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Axis instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.XyChart.IAxis): google.monitoring.dashboard.v1.XyChart.Axis;
+
+ /**
+ * Encodes the specified Axis message. Does not implicitly {@link google.monitoring.dashboard.v1.XyChart.Axis.verify|verify} messages.
+ * @param message Axis message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.XyChart.IAxis, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Axis message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.XyChart.Axis.verify|verify} messages.
+ * @param message Axis message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.XyChart.IAxis, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an Axis message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Axis
+ * @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.monitoring.dashboard.v1.XyChart.Axis;
+
+ /**
+ * Decodes an Axis message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Axis
+ * @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.monitoring.dashboard.v1.XyChart.Axis;
+
+ /**
+ * Verifies an Axis 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 Axis message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Axis
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.XyChart.Axis;
+
+ /**
+ * Creates a plain object from an Axis message. Also converts values to other types if specified.
+ * @param message Axis
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.XyChart.Axis, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Axis to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Axis
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace Axis {
+
+ /** Scale enum. */
+ enum Scale {
+ SCALE_UNSPECIFIED = 0,
+ LINEAR = 1,
+ LOG10 = 2
+ }
+ }
+ }
+
+ /** Properties of a ChartOptions. */
+ interface IChartOptions {
+
+ /** ChartOptions mode */
+ mode?: (google.monitoring.dashboard.v1.ChartOptions.Mode|keyof typeof google.monitoring.dashboard.v1.ChartOptions.Mode|null);
+ }
+
+ /** Represents a ChartOptions. */
+ class ChartOptions implements IChartOptions {
+
+ /**
+ * Constructs a new ChartOptions.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IChartOptions);
+
+ /** ChartOptions mode. */
+ public mode: (google.monitoring.dashboard.v1.ChartOptions.Mode|keyof typeof google.monitoring.dashboard.v1.ChartOptions.Mode);
+
+ /**
+ * Creates a new ChartOptions instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ChartOptions instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IChartOptions): google.monitoring.dashboard.v1.ChartOptions;
+
+ /**
+ * Encodes the specified ChartOptions message. Does not implicitly {@link google.monitoring.dashboard.v1.ChartOptions.verify|verify} messages.
+ * @param message ChartOptions message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IChartOptions, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ChartOptions message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.ChartOptions.verify|verify} messages.
+ * @param message ChartOptions message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IChartOptions, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ChartOptions message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ChartOptions
+ * @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.monitoring.dashboard.v1.ChartOptions;
+
+ /**
+ * Decodes a ChartOptions message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ChartOptions
+ * @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.monitoring.dashboard.v1.ChartOptions;
+
+ /**
+ * Verifies a ChartOptions 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 ChartOptions message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ChartOptions
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.ChartOptions;
+
+ /**
+ * Creates a plain object from a ChartOptions message. Also converts values to other types if specified.
+ * @param message ChartOptions
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.ChartOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ChartOptions to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for ChartOptions
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ namespace ChartOptions {
+
+ /** Mode enum. */
+ enum Mode {
+ MODE_UNSPECIFIED = 0,
+ COLOR = 1,
+ X_RAY = 2,
+ STATS = 3
+ }
+ }
+
+ /** Represents a DashboardsService */
+ class DashboardsService extends $protobuf.rpc.Service {
+
+ /**
+ * Constructs a new DashboardsService 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 DashboardsService 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): DashboardsService;
+
+ /**
+ * Calls CreateDashboard.
+ * @param request CreateDashboardRequest message or plain object
+ * @param callback Node-style callback called with the error, if any, and Dashboard
+ */
+ public createDashboard(request: google.monitoring.dashboard.v1.ICreateDashboardRequest, callback: google.monitoring.dashboard.v1.DashboardsService.CreateDashboardCallback): void;
+
+ /**
+ * Calls CreateDashboard.
+ * @param request CreateDashboardRequest message or plain object
+ * @returns Promise
+ */
+ public createDashboard(request: google.monitoring.dashboard.v1.ICreateDashboardRequest): Promise;
+
+ /**
+ * Calls ListDashboards.
+ * @param request ListDashboardsRequest message or plain object
+ * @param callback Node-style callback called with the error, if any, and ListDashboardsResponse
+ */
+ public listDashboards(request: google.monitoring.dashboard.v1.IListDashboardsRequest, callback: google.monitoring.dashboard.v1.DashboardsService.ListDashboardsCallback): void;
+
+ /**
+ * Calls ListDashboards.
+ * @param request ListDashboardsRequest message or plain object
+ * @returns Promise
+ */
+ public listDashboards(request: google.monitoring.dashboard.v1.IListDashboardsRequest): Promise;
+
+ /**
+ * Calls GetDashboard.
+ * @param request GetDashboardRequest message or plain object
+ * @param callback Node-style callback called with the error, if any, and Dashboard
+ */
+ public getDashboard(request: google.monitoring.dashboard.v1.IGetDashboardRequest, callback: google.monitoring.dashboard.v1.DashboardsService.GetDashboardCallback): void;
+
+ /**
+ * Calls GetDashboard.
+ * @param request GetDashboardRequest message or plain object
+ * @returns Promise
+ */
+ public getDashboard(request: google.monitoring.dashboard.v1.IGetDashboardRequest): Promise;
+
+ /**
+ * Calls DeleteDashboard.
+ * @param request DeleteDashboardRequest message or plain object
+ * @param callback Node-style callback called with the error, if any, and Empty
+ */
+ public deleteDashboard(request: google.monitoring.dashboard.v1.IDeleteDashboardRequest, callback: google.monitoring.dashboard.v1.DashboardsService.DeleteDashboardCallback): void;
+
+ /**
+ * Calls DeleteDashboard.
+ * @param request DeleteDashboardRequest message or plain object
+ * @returns Promise
+ */
+ public deleteDashboard(request: google.monitoring.dashboard.v1.IDeleteDashboardRequest): Promise;
+
+ /**
+ * Calls UpdateDashboard.
+ * @param request UpdateDashboardRequest message or plain object
+ * @param callback Node-style callback called with the error, if any, and Dashboard
+ */
+ public updateDashboard(request: google.monitoring.dashboard.v1.IUpdateDashboardRequest, callback: google.monitoring.dashboard.v1.DashboardsService.UpdateDashboardCallback): void;
+
+ /**
+ * Calls UpdateDashboard.
+ * @param request UpdateDashboardRequest message or plain object
+ * @returns Promise
+ */
+ public updateDashboard(request: google.monitoring.dashboard.v1.IUpdateDashboardRequest): Promise;
+ }
+
+ namespace DashboardsService {
+
+ /**
+ * Callback as used by {@link google.monitoring.dashboard.v1.DashboardsService|createDashboard}.
+ * @param error Error, if any
+ * @param [response] Dashboard
+ */
+ type CreateDashboardCallback = (error: (Error|null), response?: google.monitoring.dashboard.v1.Dashboard) => void;
+
+ /**
+ * Callback as used by {@link google.monitoring.dashboard.v1.DashboardsService|listDashboards}.
+ * @param error Error, if any
+ * @param [response] ListDashboardsResponse
+ */
+ type ListDashboardsCallback = (error: (Error|null), response?: google.monitoring.dashboard.v1.ListDashboardsResponse) => void;
+
+ /**
+ * Callback as used by {@link google.monitoring.dashboard.v1.DashboardsService|getDashboard}.
+ * @param error Error, if any
+ * @param [response] Dashboard
+ */
+ type GetDashboardCallback = (error: (Error|null), response?: google.monitoring.dashboard.v1.Dashboard) => void;
+
+ /**
+ * Callback as used by {@link google.monitoring.dashboard.v1.DashboardsService|deleteDashboard}.
+ * @param error Error, if any
+ * @param [response] Empty
+ */
+ type DeleteDashboardCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;
+
+ /**
+ * Callback as used by {@link google.monitoring.dashboard.v1.DashboardsService|updateDashboard}.
+ * @param error Error, if any
+ * @param [response] Dashboard
+ */
+ type UpdateDashboardCallback = (error: (Error|null), response?: google.monitoring.dashboard.v1.Dashboard) => void;
+ }
+
+ /** Properties of a CreateDashboardRequest. */
+ interface ICreateDashboardRequest {
+
+ /** CreateDashboardRequest parent */
+ parent?: (string|null);
+
+ /** CreateDashboardRequest dashboard */
+ dashboard?: (google.monitoring.dashboard.v1.IDashboard|null);
+
+ /** CreateDashboardRequest validateOnly */
+ validateOnly?: (boolean|null);
+ }
+
+ /** Represents a CreateDashboardRequest. */
+ class CreateDashboardRequest implements ICreateDashboardRequest {
+
+ /**
+ * Constructs a new CreateDashboardRequest.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.ICreateDashboardRequest);
+
+ /** CreateDashboardRequest parent. */
+ public parent: string;
+
+ /** CreateDashboardRequest dashboard. */
+ public dashboard?: (google.monitoring.dashboard.v1.IDashboard|null);
+
+ /** CreateDashboardRequest validateOnly. */
+ public validateOnly: boolean;
+
+ /**
+ * Creates a new CreateDashboardRequest instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns CreateDashboardRequest instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.ICreateDashboardRequest): google.monitoring.dashboard.v1.CreateDashboardRequest;
+
+ /**
+ * Encodes the specified CreateDashboardRequest message. Does not implicitly {@link google.monitoring.dashboard.v1.CreateDashboardRequest.verify|verify} messages.
+ * @param message CreateDashboardRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.ICreateDashboardRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified CreateDashboardRequest message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.CreateDashboardRequest.verify|verify} messages.
+ * @param message CreateDashboardRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.ICreateDashboardRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a CreateDashboardRequest message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns CreateDashboardRequest
+ * @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.monitoring.dashboard.v1.CreateDashboardRequest;
+
+ /**
+ * Decodes a CreateDashboardRequest message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns CreateDashboardRequest
+ * @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.monitoring.dashboard.v1.CreateDashboardRequest;
+
+ /**
+ * Verifies a CreateDashboardRequest 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 CreateDashboardRequest message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns CreateDashboardRequest
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.CreateDashboardRequest;
+
+ /**
+ * Creates a plain object from a CreateDashboardRequest message. Also converts values to other types if specified.
+ * @param message CreateDashboardRequest
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.CreateDashboardRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this CreateDashboardRequest to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for CreateDashboardRequest
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a ListDashboardsRequest. */
+ interface IListDashboardsRequest {
+
+ /** ListDashboardsRequest parent */
+ parent?: (string|null);
+
+ /** ListDashboardsRequest pageSize */
+ pageSize?: (number|null);
+
+ /** ListDashboardsRequest pageToken */
+ pageToken?: (string|null);
+ }
+
+ /** Represents a ListDashboardsRequest. */
+ class ListDashboardsRequest implements IListDashboardsRequest {
+
+ /**
+ * Constructs a new ListDashboardsRequest.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IListDashboardsRequest);
+
+ /** ListDashboardsRequest parent. */
+ public parent: string;
+
+ /** ListDashboardsRequest pageSize. */
+ public pageSize: number;
+
+ /** ListDashboardsRequest pageToken. */
+ public pageToken: string;
+
+ /**
+ * Creates a new ListDashboardsRequest instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ListDashboardsRequest instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IListDashboardsRequest): google.monitoring.dashboard.v1.ListDashboardsRequest;
+
+ /**
+ * Encodes the specified ListDashboardsRequest message. Does not implicitly {@link google.monitoring.dashboard.v1.ListDashboardsRequest.verify|verify} messages.
+ * @param message ListDashboardsRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IListDashboardsRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ListDashboardsRequest message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.ListDashboardsRequest.verify|verify} messages.
+ * @param message ListDashboardsRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IListDashboardsRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ListDashboardsRequest message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ListDashboardsRequest
+ * @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.monitoring.dashboard.v1.ListDashboardsRequest;
+
+ /**
+ * Decodes a ListDashboardsRequest message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ListDashboardsRequest
+ * @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.monitoring.dashboard.v1.ListDashboardsRequest;
+
+ /**
+ * Verifies a ListDashboardsRequest 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 ListDashboardsRequest message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ListDashboardsRequest
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.ListDashboardsRequest;
+
+ /**
+ * Creates a plain object from a ListDashboardsRequest message. Also converts values to other types if specified.
+ * @param message ListDashboardsRequest
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.ListDashboardsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ListDashboardsRequest to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for ListDashboardsRequest
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a ListDashboardsResponse. */
+ interface IListDashboardsResponse {
+
+ /** ListDashboardsResponse dashboards */
+ dashboards?: (google.monitoring.dashboard.v1.IDashboard[]|null);
+
+ /** ListDashboardsResponse nextPageToken */
+ nextPageToken?: (string|null);
+ }
+
+ /** Represents a ListDashboardsResponse. */
+ class ListDashboardsResponse implements IListDashboardsResponse {
+
+ /**
+ * Constructs a new ListDashboardsResponse.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IListDashboardsResponse);
+
+ /** ListDashboardsResponse dashboards. */
+ public dashboards: google.monitoring.dashboard.v1.IDashboard[];
+
+ /** ListDashboardsResponse nextPageToken. */
+ public nextPageToken: string;
+
+ /**
+ * Creates a new ListDashboardsResponse instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ListDashboardsResponse instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IListDashboardsResponse): google.monitoring.dashboard.v1.ListDashboardsResponse;
+
+ /**
+ * Encodes the specified ListDashboardsResponse message. Does not implicitly {@link google.monitoring.dashboard.v1.ListDashboardsResponse.verify|verify} messages.
+ * @param message ListDashboardsResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IListDashboardsResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ListDashboardsResponse message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.ListDashboardsResponse.verify|verify} messages.
+ * @param message ListDashboardsResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IListDashboardsResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ListDashboardsResponse message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ListDashboardsResponse
+ * @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.monitoring.dashboard.v1.ListDashboardsResponse;
+
+ /**
+ * Decodes a ListDashboardsResponse message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ListDashboardsResponse
+ * @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.monitoring.dashboard.v1.ListDashboardsResponse;
+
+ /**
+ * Verifies a ListDashboardsResponse 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 ListDashboardsResponse message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ListDashboardsResponse
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.ListDashboardsResponse;
+
+ /**
+ * Creates a plain object from a ListDashboardsResponse message. Also converts values to other types if specified.
+ * @param message ListDashboardsResponse
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.ListDashboardsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ListDashboardsResponse to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for ListDashboardsResponse
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a GetDashboardRequest. */
+ interface IGetDashboardRequest {
+
+ /** GetDashboardRequest name */
+ name?: (string|null);
+ }
+
+ /** Represents a GetDashboardRequest. */
+ class GetDashboardRequest implements IGetDashboardRequest {
+
+ /**
+ * Constructs a new GetDashboardRequest.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IGetDashboardRequest);
+
+ /** GetDashboardRequest name. */
+ public name: string;
+
+ /**
+ * Creates a new GetDashboardRequest instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns GetDashboardRequest instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IGetDashboardRequest): google.monitoring.dashboard.v1.GetDashboardRequest;
+
+ /**
+ * Encodes the specified GetDashboardRequest message. Does not implicitly {@link google.monitoring.dashboard.v1.GetDashboardRequest.verify|verify} messages.
+ * @param message GetDashboardRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IGetDashboardRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified GetDashboardRequest message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.GetDashboardRequest.verify|verify} messages.
+ * @param message GetDashboardRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IGetDashboardRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a GetDashboardRequest message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns GetDashboardRequest
+ * @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.monitoring.dashboard.v1.GetDashboardRequest;
+
+ /**
+ * Decodes a GetDashboardRequest message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns GetDashboardRequest
+ * @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.monitoring.dashboard.v1.GetDashboardRequest;
+
+ /**
+ * Verifies a GetDashboardRequest 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 GetDashboardRequest message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns GetDashboardRequest
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.GetDashboardRequest;
+
+ /**
+ * Creates a plain object from a GetDashboardRequest message. Also converts values to other types if specified.
+ * @param message GetDashboardRequest
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.GetDashboardRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this GetDashboardRequest to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for GetDashboardRequest
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a DeleteDashboardRequest. */
+ interface IDeleteDashboardRequest {
+
+ /** DeleteDashboardRequest name */
+ name?: (string|null);
+ }
+
+ /** Represents a DeleteDashboardRequest. */
+ class DeleteDashboardRequest implements IDeleteDashboardRequest {
+
+ /**
+ * Constructs a new DeleteDashboardRequest.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IDeleteDashboardRequest);
+
+ /** DeleteDashboardRequest name. */
+ public name: string;
+
+ /**
+ * Creates a new DeleteDashboardRequest instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns DeleteDashboardRequest instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IDeleteDashboardRequest): google.monitoring.dashboard.v1.DeleteDashboardRequest;
+
+ /**
+ * Encodes the specified DeleteDashboardRequest message. Does not implicitly {@link google.monitoring.dashboard.v1.DeleteDashboardRequest.verify|verify} messages.
+ * @param message DeleteDashboardRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IDeleteDashboardRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified DeleteDashboardRequest message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.DeleteDashboardRequest.verify|verify} messages.
+ * @param message DeleteDashboardRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IDeleteDashboardRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a DeleteDashboardRequest message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns DeleteDashboardRequest
+ * @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.monitoring.dashboard.v1.DeleteDashboardRequest;
+
+ /**
+ * Decodes a DeleteDashboardRequest message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns DeleteDashboardRequest
+ * @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.monitoring.dashboard.v1.DeleteDashboardRequest;
+
+ /**
+ * Verifies a DeleteDashboardRequest 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 DeleteDashboardRequest message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns DeleteDashboardRequest
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.DeleteDashboardRequest;
+
+ /**
+ * Creates a plain object from a DeleteDashboardRequest message. Also converts values to other types if specified.
+ * @param message DeleteDashboardRequest
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.DeleteDashboardRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this DeleteDashboardRequest to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for DeleteDashboardRequest
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of an UpdateDashboardRequest. */
+ interface IUpdateDashboardRequest {
+
+ /** UpdateDashboardRequest dashboard */
+ dashboard?: (google.monitoring.dashboard.v1.IDashboard|null);
+
+ /** UpdateDashboardRequest validateOnly */
+ validateOnly?: (boolean|null);
+ }
+
+ /** Represents an UpdateDashboardRequest. */
+ class UpdateDashboardRequest implements IUpdateDashboardRequest {
+
+ /**
+ * Constructs a new UpdateDashboardRequest.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.monitoring.dashboard.v1.IUpdateDashboardRequest);
+
+ /** UpdateDashboardRequest dashboard. */
+ public dashboard?: (google.monitoring.dashboard.v1.IDashboard|null);
+
+ /** UpdateDashboardRequest validateOnly. */
+ public validateOnly: boolean;
+
+ /**
+ * Creates a new UpdateDashboardRequest instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns UpdateDashboardRequest instance
+ */
+ public static create(properties?: google.monitoring.dashboard.v1.IUpdateDashboardRequest): google.monitoring.dashboard.v1.UpdateDashboardRequest;
+
+ /**
+ * Encodes the specified UpdateDashboardRequest message. Does not implicitly {@link google.monitoring.dashboard.v1.UpdateDashboardRequest.verify|verify} messages.
+ * @param message UpdateDashboardRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.monitoring.dashboard.v1.IUpdateDashboardRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified UpdateDashboardRequest message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.UpdateDashboardRequest.verify|verify} messages.
+ * @param message UpdateDashboardRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.monitoring.dashboard.v1.IUpdateDashboardRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an UpdateDashboardRequest message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns UpdateDashboardRequest
+ * @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.monitoring.dashboard.v1.UpdateDashboardRequest;
+
+ /**
+ * Decodes an UpdateDashboardRequest message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns UpdateDashboardRequest
+ * @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.monitoring.dashboard.v1.UpdateDashboardRequest;
+
+ /**
+ * Verifies an UpdateDashboardRequest 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 UpdateDashboardRequest message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns UpdateDashboardRequest
+ */
+ public static fromObject(object: { [k: string]: any }): google.monitoring.dashboard.v1.UpdateDashboardRequest;
+
+ /**
+ * Creates a plain object from an UpdateDashboardRequest message. Also converts values to other types if specified.
+ * @param message UpdateDashboardRequest
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.monitoring.dashboard.v1.UpdateDashboardRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this UpdateDashboardRequest to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for UpdateDashboardRequest
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+ }
+ }
+ }
+
+ /** Namespace api. */
+ namespace api {
+
+ /** FieldBehavior enum. */
+ enum FieldBehavior {
+ FIELD_BEHAVIOR_UNSPECIFIED = 0,
+ OPTIONAL = 1,
+ REQUIRED = 2,
+ OUTPUT_ONLY = 3,
+ INPUT_ONLY = 4,
+ IMMUTABLE = 5,
+ UNORDERED_LIST = 6,
+ NON_EMPTY_DEFAULT = 7
+ }
+
+ /** 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|keyof typeof google.api.ResourceDescriptor.History|null);
+
+ /** ResourceDescriptor plural */
+ plural?: (string|null);
+
+ /** ResourceDescriptor singular */
+ singular?: (string|null);
+
+ /** ResourceDescriptor style */
+ style?: (google.api.ResourceDescriptor.Style[]|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|keyof typeof google.api.ResourceDescriptor.History);
+
+ /** ResourceDescriptor plural. */
+ public plural: string;
+
+ /** 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
+ * @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 };
+
+ /**
+ * 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 {
+
+ /** History enum. */
+ enum History {
+ HISTORY_UNSPECIFIED = 0,
+ ORIGINALLY_SINGLE_PATTERN = 1,
+ FUTURE_MULTI_PATTERN = 2
+ }
+
+ /** Style enum. */
+ enum Style {
+ STYLE_UNSPECIFIED = 0,
+ DECLARATIVE_FRIENDLY = 1
+ }
+ }
+
+ /** 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 };
+
+ /**
+ * 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. */
+ 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 };
+
+ /**
+ * 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. */
+ 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|null);
+
+ /** HttpRule put. */
+ public put?: (string|null);
+
+ /** HttpRule post. */
+ public post?: (string|null);
+
+ /** HttpRule delete. */
+ public delete?: (string|null);
+
+ /** HttpRule patch. */
+ public patch?: (string|null);
+
+ /** 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 };
+
+ /**
+ * 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. */
+ 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 };
+
+ /**
+ * 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;
+ }
+ }
+
+ /** 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 };
+
+ /**
+ * 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. */
+ 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);
+
+ /** FileDescriptorProto edition */
+ edition?: (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;
+
+ /** FileDescriptorProto edition. */
+ public edition: 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 };
+
+ /**
+ * 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. */
+ 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 };
+
+ /**
+ * 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 {
+
+ /** 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 };
+
+ /**
+ * 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. */
+ 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 };
+
+ /**
+ * 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;
+ }
+ }
+
+ /** 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 };
+
+ /**
+ * 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. */
+ interface IFieldDescriptorProto {
+
+ /** FieldDescriptorProto name */
+ name?: (string|null);
+
+ /** FieldDescriptorProto number */
+ number?: (number|null);
+
+ /** FieldDescriptorProto label */
+ label?: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label|null);
+
+ /** FieldDescriptorProto type */
+ type?: (google.protobuf.FieldDescriptorProto.Type|keyof typeof 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);
+
+ /** FieldDescriptorProto proto3Optional */
+ proto3Optional?: (boolean|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|keyof typeof google.protobuf.FieldDescriptorProto.Label);
+
+ /** FieldDescriptorProto type. */
+ public type: (google.protobuf.FieldDescriptorProto.Type|keyof typeof 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);
+
+ /** FieldDescriptorProto proto3Optional. */
+ public proto3Optional: boolean;
+
+ /**
+ * 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 };
+
+ /**
+ * 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 {
+
+ /** 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 };
+
+ /**
+ * 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. */
+ 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 };
+
+ /**
+ * 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 {
+
+ /** 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 };
+
+ /**
+ * 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;
+ }
+ }
+
+ /** 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 };
+
+ /**
+ * 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. */
+ 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 };
+
+ /**
+ * 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. */
+ 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 };
+
+ /**
+ * 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. */
+ 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|keyof typeof 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|keyof typeof 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 };
+
+ /**
+ * 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 {
+
+ /** 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 };
+
+ /**
+ * 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. */
+ interface IFieldOptions {
+
+ /** FieldOptions ctype */
+ ctype?: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType|null);
+
+ /** FieldOptions packed */
+ packed?: (boolean|null);
+
+ /** FieldOptions jstype */
+ jstype?: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType|null);
+
+ /** FieldOptions lazy */
+ lazy?: (boolean|null);
+
+ /** FieldOptions unverifiedLazy */
+ unverifiedLazy?: (boolean|null);
+
+ /** FieldOptions deprecated */
+ deprecated?: (boolean|null);
+
+ /** FieldOptions weak */
+ weak?: (boolean|null);
+
+ /** FieldOptions uninterpretedOption */
+ uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
+
+ /** FieldOptions .google.api.fieldBehavior */
+ ".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|null);
+
+ /** FieldOptions .google.api.resourceReference */
+ ".google.api.resourceReference"?: (google.api.IResourceReference|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|keyof typeof google.protobuf.FieldOptions.CType);
+
+ /** FieldOptions packed. */
+ public packed: boolean;
+
+ /** FieldOptions jstype. */
+ public jstype: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType);
+
+ /** FieldOptions lazy. */
+ public lazy: boolean;
+
+ /** FieldOptions unverifiedLazy. */
+ public unverifiedLazy: 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 };
+
+ /**
+ * 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 {
+
+ /** 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 };
+
+ /**
+ * 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. */
+ 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 };
+
+ /**
+ * 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. */
+ 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 };
+
+ /**
+ * 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. */
+ 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 };
+
+ /**
+ * 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. */
+ interface IMethodOptions {
+
+ /** MethodOptions deprecated */
+ deprecated?: (boolean|null);
+
+ /** MethodOptions idempotencyLevel */
+ idempotencyLevel?: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof 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|keyof typeof 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 };
+
+ /**
+ * 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 {
+
+ /** 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|string|null);
+
+ /** UninterpretedOption negativeIntValue */
+ negativeIntValue?: (number|Long|string|null);
+
+ /** UninterpretedOption doubleValue */
+ doubleValue?: (number|null);
+
+ /** UninterpretedOption stringValue */
+ stringValue?: (Uint8Array|string|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|string);
+
+ /** UninterpretedOption negativeIntValue. */
+ public negativeIntValue: (number|Long|string);
+
+ /** UninterpretedOption doubleValue. */
+ public doubleValue: number;
+
+ /** UninterpretedOption stringValue. */
+ public stringValue: (Uint8Array|string);
+
+ /** 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 };
+
+ /**
+ * 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 {
+
+ /** 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 };
+
+ /**
+ * 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;
+ }
+ }
+
+ /** 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 };
+
+ /**
+ * 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 {
+
+ /** 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 };
+
+ /**
+ * 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;
+ }
+ }
+
+ /** 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 };
+
+ /**
+ * 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 {
+
+ /** 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);
+
+ /** Annotation semantic */
+ semantic?: (google.protobuf.GeneratedCodeInfo.Annotation.Semantic|keyof typeof google.protobuf.GeneratedCodeInfo.Annotation.Semantic|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;
+
+ /** 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
+ * @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 };
+
+ /**
+ * 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
+ }
+ }
+ }
+
+ /** Properties of a Duration. */
+ interface IDuration {
+
+ /** Duration seconds */
+ seconds?: (number|Long|string|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|string);
+
+ /** 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 };
+
+ /**
+ * 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 an Empty. */
+ interface IEmpty {
+ }
+
+ /** Represents an Empty. */
+ class Empty implements IEmpty {
+
+ /**
+ * Constructs a new Empty.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.protobuf.IEmpty);
+
+ /**
+ * Creates a new Empty instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Empty instance
+ */
+ public static create(properties?: google.protobuf.IEmpty): google.protobuf.Empty;
+
+ /**
+ * Encodes the specified Empty message. Does not implicitly {@link google.protobuf.Empty.verify|verify} messages.
+ * @param message Empty message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.protobuf.IEmpty, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Empty message, length delimited. Does not implicitly {@link google.protobuf.Empty.verify|verify} messages.
+ * @param message Empty message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.protobuf.IEmpty, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an Empty message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Empty
+ * @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.Empty;
+
+ /**
+ * Decodes an Empty message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Empty
+ * @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.Empty;
+
+ /**
+ * Verifies an Empty 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 Empty message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Empty
+ */
+ public static fromObject(object: { [k: string]: any }): google.protobuf.Empty;
+
+ /**
+ * Creates a plain object from an Empty message. Also converts values to other types if specified.
+ * @param message Empty
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.protobuf.Empty, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Empty to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for Empty
+ * @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-monitoring-dashboard/protos/protos.js b/packages/google-monitoring-dashboard/protos/protos.js
new file mode 100644
index 00000000000..2549aa08c3b
--- /dev/null
+++ b/packages/google-monitoring-dashboard/protos/protos.js
@@ -0,0 +1,22790 @@
+// 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.
+// 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("google-gax/build/src/protobuf").protobufMinimal);
+
+})(this, function($protobuf) {
+ "use strict";
+
+ // Common aliases
+ var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
+
+ // Exported root namespace
+ var $root = $protobuf.roots._google_cloud_monitoring_dashboards_protos || ($protobuf.roots._google_cloud_monitoring_dashboards_protos = {});
+
+ $root.google = (function() {
+
+ /**
+ * Namespace google.
+ * @exports google
+ * @namespace
+ */
+ var google = {};
+
+ google.monitoring = (function() {
+
+ /**
+ * Namespace monitoring.
+ * @memberof google
+ * @namespace
+ */
+ var monitoring = {};
+
+ monitoring.dashboard = (function() {
+
+ /**
+ * Namespace dashboard.
+ * @memberof google.monitoring
+ * @namespace
+ */
+ var dashboard = {};
+
+ dashboard.v1 = (function() {
+
+ /**
+ * Namespace v1.
+ * @memberof google.monitoring.dashboard
+ * @namespace
+ */
+ var v1 = {};
+
+ v1.AlertChart = (function() {
+
+ /**
+ * Properties of an AlertChart.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IAlertChart
+ * @property {string|null} [name] AlertChart name
+ */
+
+ /**
+ * Constructs a new AlertChart.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents an AlertChart.
+ * @implements IAlertChart
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IAlertChart=} [properties] Properties to set
+ */
+ function AlertChart(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]];
+ }
+
+ /**
+ * AlertChart name.
+ * @member {string} name
+ * @memberof google.monitoring.dashboard.v1.AlertChart
+ * @instance
+ */
+ AlertChart.prototype.name = "";
+
+ /**
+ * Creates a new AlertChart instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.AlertChart
+ * @static
+ * @param {google.monitoring.dashboard.v1.IAlertChart=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.AlertChart} AlertChart instance
+ */
+ AlertChart.create = function create(properties) {
+ return new AlertChart(properties);
+ };
+
+ /**
+ * Encodes the specified AlertChart message. Does not implicitly {@link google.monitoring.dashboard.v1.AlertChart.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.AlertChart
+ * @static
+ * @param {google.monitoring.dashboard.v1.IAlertChart} message AlertChart message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ AlertChart.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 AlertChart message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.AlertChart.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.AlertChart
+ * @static
+ * @param {google.monitoring.dashboard.v1.IAlertChart} message AlertChart message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ AlertChart.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes an AlertChart message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.AlertChart
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.AlertChart} AlertChart
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ AlertChart.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.monitoring.dashboard.v1.AlertChart();
+ 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 an AlertChart message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.AlertChart
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.AlertChart} AlertChart
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ AlertChart.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies an AlertChart message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.AlertChart
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ AlertChart.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 an AlertChart message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.AlertChart
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.AlertChart} AlertChart
+ */
+ AlertChart.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.AlertChart)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.AlertChart();
+ if (object.name != null)
+ message.name = String(object.name);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from an AlertChart message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.AlertChart
+ * @static
+ * @param {google.monitoring.dashboard.v1.AlertChart} message AlertChart
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ AlertChart.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 AlertChart to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.AlertChart
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ AlertChart.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for AlertChart
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.AlertChart
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ AlertChart.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.AlertChart";
+ };
+
+ return AlertChart;
+ })();
+
+ v1.CollapsibleGroup = (function() {
+
+ /**
+ * Properties of a CollapsibleGroup.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface ICollapsibleGroup
+ * @property {boolean|null} [collapsed] CollapsibleGroup collapsed
+ */
+
+ /**
+ * Constructs a new CollapsibleGroup.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a CollapsibleGroup.
+ * @implements ICollapsibleGroup
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.ICollapsibleGroup=} [properties] Properties to set
+ */
+ function CollapsibleGroup(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]];
+ }
+
+ /**
+ * CollapsibleGroup collapsed.
+ * @member {boolean} collapsed
+ * @memberof google.monitoring.dashboard.v1.CollapsibleGroup
+ * @instance
+ */
+ CollapsibleGroup.prototype.collapsed = false;
+
+ /**
+ * Creates a new CollapsibleGroup instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.CollapsibleGroup
+ * @static
+ * @param {google.monitoring.dashboard.v1.ICollapsibleGroup=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.CollapsibleGroup} CollapsibleGroup instance
+ */
+ CollapsibleGroup.create = function create(properties) {
+ return new CollapsibleGroup(properties);
+ };
+
+ /**
+ * Encodes the specified CollapsibleGroup message. Does not implicitly {@link google.monitoring.dashboard.v1.CollapsibleGroup.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.CollapsibleGroup
+ * @static
+ * @param {google.monitoring.dashboard.v1.ICollapsibleGroup} message CollapsibleGroup message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ CollapsibleGroup.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.collapsed != null && Object.hasOwnProperty.call(message, "collapsed"))
+ writer.uint32(/* id 1, wireType 0 =*/8).bool(message.collapsed);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified CollapsibleGroup message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.CollapsibleGroup.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.CollapsibleGroup
+ * @static
+ * @param {google.monitoring.dashboard.v1.ICollapsibleGroup} message CollapsibleGroup message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ CollapsibleGroup.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a CollapsibleGroup message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.CollapsibleGroup
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.CollapsibleGroup} CollapsibleGroup
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ CollapsibleGroup.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.monitoring.dashboard.v1.CollapsibleGroup();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.collapsed = reader.bool();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a CollapsibleGroup message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.CollapsibleGroup
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.CollapsibleGroup} CollapsibleGroup
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ CollapsibleGroup.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a CollapsibleGroup message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.CollapsibleGroup
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ CollapsibleGroup.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.collapsed != null && message.hasOwnProperty("collapsed"))
+ if (typeof message.collapsed !== "boolean")
+ return "collapsed: boolean expected";
+ return null;
+ };
+
+ /**
+ * Creates a CollapsibleGroup message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.CollapsibleGroup
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.CollapsibleGroup} CollapsibleGroup
+ */
+ CollapsibleGroup.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.CollapsibleGroup)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.CollapsibleGroup();
+ if (object.collapsed != null)
+ message.collapsed = Boolean(object.collapsed);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a CollapsibleGroup message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.CollapsibleGroup
+ * @static
+ * @param {google.monitoring.dashboard.v1.CollapsibleGroup} message CollapsibleGroup
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ CollapsibleGroup.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.collapsed = false;
+ if (message.collapsed != null && message.hasOwnProperty("collapsed"))
+ object.collapsed = message.collapsed;
+ return object;
+ };
+
+ /**
+ * Converts this CollapsibleGroup to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.CollapsibleGroup
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ CollapsibleGroup.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for CollapsibleGroup
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.CollapsibleGroup
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ CollapsibleGroup.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.CollapsibleGroup";
+ };
+
+ return CollapsibleGroup;
+ })();
+
+ v1.Aggregation = (function() {
+
+ /**
+ * Properties of an Aggregation.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IAggregation
+ * @property {google.protobuf.IDuration|null} [alignmentPeriod] Aggregation alignmentPeriod
+ * @property {google.monitoring.dashboard.v1.Aggregation.Aligner|null} [perSeriesAligner] Aggregation perSeriesAligner
+ * @property {google.monitoring.dashboard.v1.Aggregation.Reducer|null} [crossSeriesReducer] Aggregation crossSeriesReducer
+ * @property {Array.|null} [groupByFields] Aggregation groupByFields
+ */
+
+ /**
+ * Constructs a new Aggregation.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents an Aggregation.
+ * @implements IAggregation
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IAggregation=} [properties] Properties to set
+ */
+ function Aggregation(properties) {
+ this.groupByFields = [];
+ 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]];
+ }
+
+ /**
+ * Aggregation alignmentPeriod.
+ * @member {google.protobuf.IDuration|null|undefined} alignmentPeriod
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @instance
+ */
+ Aggregation.prototype.alignmentPeriod = null;
+
+ /**
+ * Aggregation perSeriesAligner.
+ * @member {google.monitoring.dashboard.v1.Aggregation.Aligner} perSeriesAligner
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @instance
+ */
+ Aggregation.prototype.perSeriesAligner = 0;
+
+ /**
+ * Aggregation crossSeriesReducer.
+ * @member {google.monitoring.dashboard.v1.Aggregation.Reducer} crossSeriesReducer
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @instance
+ */
+ Aggregation.prototype.crossSeriesReducer = 0;
+
+ /**
+ * Aggregation groupByFields.
+ * @member {Array.} groupByFields
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @instance
+ */
+ Aggregation.prototype.groupByFields = $util.emptyArray;
+
+ /**
+ * Creates a new Aggregation instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @static
+ * @param {google.monitoring.dashboard.v1.IAggregation=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.Aggregation} Aggregation instance
+ */
+ Aggregation.create = function create(properties) {
+ return new Aggregation(properties);
+ };
+
+ /**
+ * Encodes the specified Aggregation message. Does not implicitly {@link google.monitoring.dashboard.v1.Aggregation.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @static
+ * @param {google.monitoring.dashboard.v1.IAggregation} message Aggregation message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Aggregation.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.alignmentPeriod != null && Object.hasOwnProperty.call(message, "alignmentPeriod"))
+ $root.google.protobuf.Duration.encode(message.alignmentPeriod, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.perSeriesAligner != null && Object.hasOwnProperty.call(message, "perSeriesAligner"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.perSeriesAligner);
+ if (message.crossSeriesReducer != null && Object.hasOwnProperty.call(message, "crossSeriesReducer"))
+ writer.uint32(/* id 4, wireType 0 =*/32).int32(message.crossSeriesReducer);
+ if (message.groupByFields != null && message.groupByFields.length)
+ for (var i = 0; i < message.groupByFields.length; ++i)
+ writer.uint32(/* id 5, wireType 2 =*/42).string(message.groupByFields[i]);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Aggregation message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Aggregation.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @static
+ * @param {google.monitoring.dashboard.v1.IAggregation} message Aggregation message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Aggregation.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes an Aggregation message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.Aggregation} Aggregation
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Aggregation.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.monitoring.dashboard.v1.Aggregation();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.alignmentPeriod = $root.google.protobuf.Duration.decode(reader, reader.uint32());
+ break;
+ }
+ case 2: {
+ message.perSeriesAligner = reader.int32();
+ break;
+ }
+ case 4: {
+ message.crossSeriesReducer = reader.int32();
+ break;
+ }
+ case 5: {
+ if (!(message.groupByFields && message.groupByFields.length))
+ message.groupByFields = [];
+ message.groupByFields.push(reader.string());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes an Aggregation message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.Aggregation} Aggregation
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Aggregation.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies an Aggregation message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Aggregation.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.alignmentPeriod != null && message.hasOwnProperty("alignmentPeriod")) {
+ var error = $root.google.protobuf.Duration.verify(message.alignmentPeriod);
+ if (error)
+ return "alignmentPeriod." + error;
+ }
+ if (message.perSeriesAligner != null && message.hasOwnProperty("perSeriesAligner"))
+ switch (message.perSeriesAligner) {
+ default:
+ return "perSeriesAligner: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ case 24:
+ case 17:
+ case 18:
+ case 19:
+ case 20:
+ case 21:
+ case 23:
+ break;
+ }
+ if (message.crossSeriesReducer != null && message.hasOwnProperty("crossSeriesReducer"))
+ switch (message.crossSeriesReducer) {
+ default:
+ return "crossSeriesReducer: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 15:
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ break;
+ }
+ if (message.groupByFields != null && message.hasOwnProperty("groupByFields")) {
+ if (!Array.isArray(message.groupByFields))
+ return "groupByFields: array expected";
+ for (var i = 0; i < message.groupByFields.length; ++i)
+ if (!$util.isString(message.groupByFields[i]))
+ return "groupByFields: string[] expected";
+ }
+ return null;
+ };
+
+ /**
+ * Creates an Aggregation message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.Aggregation} Aggregation
+ */
+ Aggregation.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.Aggregation)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.Aggregation();
+ if (object.alignmentPeriod != null) {
+ if (typeof object.alignmentPeriod !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Aggregation.alignmentPeriod: object expected");
+ message.alignmentPeriod = $root.google.protobuf.Duration.fromObject(object.alignmentPeriod);
+ }
+ switch (object.perSeriesAligner) {
+ case "ALIGN_NONE":
+ case 0:
+ message.perSeriesAligner = 0;
+ break;
+ case "ALIGN_DELTA":
+ case 1:
+ message.perSeriesAligner = 1;
+ break;
+ case "ALIGN_RATE":
+ case 2:
+ message.perSeriesAligner = 2;
+ break;
+ case "ALIGN_INTERPOLATE":
+ case 3:
+ message.perSeriesAligner = 3;
+ break;
+ case "ALIGN_NEXT_OLDER":
+ case 4:
+ message.perSeriesAligner = 4;
+ break;
+ case "ALIGN_MIN":
+ case 10:
+ message.perSeriesAligner = 10;
+ break;
+ case "ALIGN_MAX":
+ case 11:
+ message.perSeriesAligner = 11;
+ break;
+ case "ALIGN_MEAN":
+ case 12:
+ message.perSeriesAligner = 12;
+ break;
+ case "ALIGN_COUNT":
+ case 13:
+ message.perSeriesAligner = 13;
+ break;
+ case "ALIGN_SUM":
+ case 14:
+ message.perSeriesAligner = 14;
+ break;
+ case "ALIGN_STDDEV":
+ case 15:
+ message.perSeriesAligner = 15;
+ break;
+ case "ALIGN_COUNT_TRUE":
+ case 16:
+ message.perSeriesAligner = 16;
+ break;
+ case "ALIGN_COUNT_FALSE":
+ case 24:
+ message.perSeriesAligner = 24;
+ break;
+ case "ALIGN_FRACTION_TRUE":
+ case 17:
+ message.perSeriesAligner = 17;
+ break;
+ case "ALIGN_PERCENTILE_99":
+ case 18:
+ message.perSeriesAligner = 18;
+ break;
+ case "ALIGN_PERCENTILE_95":
+ case 19:
+ message.perSeriesAligner = 19;
+ break;
+ case "ALIGN_PERCENTILE_50":
+ case 20:
+ message.perSeriesAligner = 20;
+ break;
+ case "ALIGN_PERCENTILE_05":
+ case 21:
+ message.perSeriesAligner = 21;
+ break;
+ case "ALIGN_PERCENT_CHANGE":
+ case 23:
+ message.perSeriesAligner = 23;
+ break;
+ }
+ switch (object.crossSeriesReducer) {
+ case "REDUCE_NONE":
+ case 0:
+ message.crossSeriesReducer = 0;
+ break;
+ case "REDUCE_MEAN":
+ case 1:
+ message.crossSeriesReducer = 1;
+ break;
+ case "REDUCE_MIN":
+ case 2:
+ message.crossSeriesReducer = 2;
+ break;
+ case "REDUCE_MAX":
+ case 3:
+ message.crossSeriesReducer = 3;
+ break;
+ case "REDUCE_SUM":
+ case 4:
+ message.crossSeriesReducer = 4;
+ break;
+ case "REDUCE_STDDEV":
+ case 5:
+ message.crossSeriesReducer = 5;
+ break;
+ case "REDUCE_COUNT":
+ case 6:
+ message.crossSeriesReducer = 6;
+ break;
+ case "REDUCE_COUNT_TRUE":
+ case 7:
+ message.crossSeriesReducer = 7;
+ break;
+ case "REDUCE_COUNT_FALSE":
+ case 15:
+ message.crossSeriesReducer = 15;
+ break;
+ case "REDUCE_FRACTION_TRUE":
+ case 8:
+ message.crossSeriesReducer = 8;
+ break;
+ case "REDUCE_PERCENTILE_99":
+ case 9:
+ message.crossSeriesReducer = 9;
+ break;
+ case "REDUCE_PERCENTILE_95":
+ case 10:
+ message.crossSeriesReducer = 10;
+ break;
+ case "REDUCE_PERCENTILE_50":
+ case 11:
+ message.crossSeriesReducer = 11;
+ break;
+ case "REDUCE_PERCENTILE_05":
+ case 12:
+ message.crossSeriesReducer = 12;
+ break;
+ }
+ if (object.groupByFields) {
+ if (!Array.isArray(object.groupByFields))
+ throw TypeError(".google.monitoring.dashboard.v1.Aggregation.groupByFields: array expected");
+ message.groupByFields = [];
+ for (var i = 0; i < object.groupByFields.length; ++i)
+ message.groupByFields[i] = String(object.groupByFields[i]);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from an Aggregation message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @static
+ * @param {google.monitoring.dashboard.v1.Aggregation} message Aggregation
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Aggregation.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.groupByFields = [];
+ if (options.defaults) {
+ object.alignmentPeriod = null;
+ object.perSeriesAligner = options.enums === String ? "ALIGN_NONE" : 0;
+ object.crossSeriesReducer = options.enums === String ? "REDUCE_NONE" : 0;
+ }
+ if (message.alignmentPeriod != null && message.hasOwnProperty("alignmentPeriod"))
+ object.alignmentPeriod = $root.google.protobuf.Duration.toObject(message.alignmentPeriod, options);
+ if (message.perSeriesAligner != null && message.hasOwnProperty("perSeriesAligner"))
+ object.perSeriesAligner = options.enums === String ? $root.google.monitoring.dashboard.v1.Aggregation.Aligner[message.perSeriesAligner] : message.perSeriesAligner;
+ if (message.crossSeriesReducer != null && message.hasOwnProperty("crossSeriesReducer"))
+ object.crossSeriesReducer = options.enums === String ? $root.google.monitoring.dashboard.v1.Aggregation.Reducer[message.crossSeriesReducer] : message.crossSeriesReducer;
+ if (message.groupByFields && message.groupByFields.length) {
+ object.groupByFields = [];
+ for (var j = 0; j < message.groupByFields.length; ++j)
+ object.groupByFields[j] = message.groupByFields[j];
+ }
+ return object;
+ };
+
+ /**
+ * Converts this Aggregation to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Aggregation.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for Aggregation
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.Aggregation
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Aggregation.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.Aggregation";
+ };
+
+ /**
+ * Aligner enum.
+ * @name google.monitoring.dashboard.v1.Aggregation.Aligner
+ * @enum {number}
+ * @property {number} ALIGN_NONE=0 ALIGN_NONE value
+ * @property {number} ALIGN_DELTA=1 ALIGN_DELTA value
+ * @property {number} ALIGN_RATE=2 ALIGN_RATE value
+ * @property {number} ALIGN_INTERPOLATE=3 ALIGN_INTERPOLATE value
+ * @property {number} ALIGN_NEXT_OLDER=4 ALIGN_NEXT_OLDER value
+ * @property {number} ALIGN_MIN=10 ALIGN_MIN value
+ * @property {number} ALIGN_MAX=11 ALIGN_MAX value
+ * @property {number} ALIGN_MEAN=12 ALIGN_MEAN value
+ * @property {number} ALIGN_COUNT=13 ALIGN_COUNT value
+ * @property {number} ALIGN_SUM=14 ALIGN_SUM value
+ * @property {number} ALIGN_STDDEV=15 ALIGN_STDDEV value
+ * @property {number} ALIGN_COUNT_TRUE=16 ALIGN_COUNT_TRUE value
+ * @property {number} ALIGN_COUNT_FALSE=24 ALIGN_COUNT_FALSE value
+ * @property {number} ALIGN_FRACTION_TRUE=17 ALIGN_FRACTION_TRUE value
+ * @property {number} ALIGN_PERCENTILE_99=18 ALIGN_PERCENTILE_99 value
+ * @property {number} ALIGN_PERCENTILE_95=19 ALIGN_PERCENTILE_95 value
+ * @property {number} ALIGN_PERCENTILE_50=20 ALIGN_PERCENTILE_50 value
+ * @property {number} ALIGN_PERCENTILE_05=21 ALIGN_PERCENTILE_05 value
+ * @property {number} ALIGN_PERCENT_CHANGE=23 ALIGN_PERCENT_CHANGE value
+ */
+ Aggregation.Aligner = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "ALIGN_NONE"] = 0;
+ values[valuesById[1] = "ALIGN_DELTA"] = 1;
+ values[valuesById[2] = "ALIGN_RATE"] = 2;
+ values[valuesById[3] = "ALIGN_INTERPOLATE"] = 3;
+ values[valuesById[4] = "ALIGN_NEXT_OLDER"] = 4;
+ values[valuesById[10] = "ALIGN_MIN"] = 10;
+ values[valuesById[11] = "ALIGN_MAX"] = 11;
+ values[valuesById[12] = "ALIGN_MEAN"] = 12;
+ values[valuesById[13] = "ALIGN_COUNT"] = 13;
+ values[valuesById[14] = "ALIGN_SUM"] = 14;
+ values[valuesById[15] = "ALIGN_STDDEV"] = 15;
+ values[valuesById[16] = "ALIGN_COUNT_TRUE"] = 16;
+ values[valuesById[24] = "ALIGN_COUNT_FALSE"] = 24;
+ values[valuesById[17] = "ALIGN_FRACTION_TRUE"] = 17;
+ values[valuesById[18] = "ALIGN_PERCENTILE_99"] = 18;
+ values[valuesById[19] = "ALIGN_PERCENTILE_95"] = 19;
+ values[valuesById[20] = "ALIGN_PERCENTILE_50"] = 20;
+ values[valuesById[21] = "ALIGN_PERCENTILE_05"] = 21;
+ values[valuesById[23] = "ALIGN_PERCENT_CHANGE"] = 23;
+ return values;
+ })();
+
+ /**
+ * Reducer enum.
+ * @name google.monitoring.dashboard.v1.Aggregation.Reducer
+ * @enum {number}
+ * @property {number} REDUCE_NONE=0 REDUCE_NONE value
+ * @property {number} REDUCE_MEAN=1 REDUCE_MEAN value
+ * @property {number} REDUCE_MIN=2 REDUCE_MIN value
+ * @property {number} REDUCE_MAX=3 REDUCE_MAX value
+ * @property {number} REDUCE_SUM=4 REDUCE_SUM value
+ * @property {number} REDUCE_STDDEV=5 REDUCE_STDDEV value
+ * @property {number} REDUCE_COUNT=6 REDUCE_COUNT value
+ * @property {number} REDUCE_COUNT_TRUE=7 REDUCE_COUNT_TRUE value
+ * @property {number} REDUCE_COUNT_FALSE=15 REDUCE_COUNT_FALSE value
+ * @property {number} REDUCE_FRACTION_TRUE=8 REDUCE_FRACTION_TRUE value
+ * @property {number} REDUCE_PERCENTILE_99=9 REDUCE_PERCENTILE_99 value
+ * @property {number} REDUCE_PERCENTILE_95=10 REDUCE_PERCENTILE_95 value
+ * @property {number} REDUCE_PERCENTILE_50=11 REDUCE_PERCENTILE_50 value
+ * @property {number} REDUCE_PERCENTILE_05=12 REDUCE_PERCENTILE_05 value
+ */
+ Aggregation.Reducer = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "REDUCE_NONE"] = 0;
+ values[valuesById[1] = "REDUCE_MEAN"] = 1;
+ values[valuesById[2] = "REDUCE_MIN"] = 2;
+ values[valuesById[3] = "REDUCE_MAX"] = 3;
+ values[valuesById[4] = "REDUCE_SUM"] = 4;
+ values[valuesById[5] = "REDUCE_STDDEV"] = 5;
+ values[valuesById[6] = "REDUCE_COUNT"] = 6;
+ values[valuesById[7] = "REDUCE_COUNT_TRUE"] = 7;
+ values[valuesById[15] = "REDUCE_COUNT_FALSE"] = 15;
+ values[valuesById[8] = "REDUCE_FRACTION_TRUE"] = 8;
+ values[valuesById[9] = "REDUCE_PERCENTILE_99"] = 9;
+ values[valuesById[10] = "REDUCE_PERCENTILE_95"] = 10;
+ values[valuesById[11] = "REDUCE_PERCENTILE_50"] = 11;
+ values[valuesById[12] = "REDUCE_PERCENTILE_05"] = 12;
+ return values;
+ })();
+
+ return Aggregation;
+ })();
+
+ v1.PickTimeSeriesFilter = (function() {
+
+ /**
+ * Properties of a PickTimeSeriesFilter.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IPickTimeSeriesFilter
+ * @property {google.monitoring.dashboard.v1.PickTimeSeriesFilter.Method|null} [rankingMethod] PickTimeSeriesFilter rankingMethod
+ * @property {number|null} [numTimeSeries] PickTimeSeriesFilter numTimeSeries
+ * @property {google.monitoring.dashboard.v1.PickTimeSeriesFilter.Direction|null} [direction] PickTimeSeriesFilter direction
+ */
+
+ /**
+ * Constructs a new PickTimeSeriesFilter.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a PickTimeSeriesFilter.
+ * @implements IPickTimeSeriesFilter
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IPickTimeSeriesFilter=} [properties] Properties to set
+ */
+ function PickTimeSeriesFilter(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]];
+ }
+
+ /**
+ * PickTimeSeriesFilter rankingMethod.
+ * @member {google.monitoring.dashboard.v1.PickTimeSeriesFilter.Method} rankingMethod
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @instance
+ */
+ PickTimeSeriesFilter.prototype.rankingMethod = 0;
+
+ /**
+ * PickTimeSeriesFilter numTimeSeries.
+ * @member {number} numTimeSeries
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @instance
+ */
+ PickTimeSeriesFilter.prototype.numTimeSeries = 0;
+
+ /**
+ * PickTimeSeriesFilter direction.
+ * @member {google.monitoring.dashboard.v1.PickTimeSeriesFilter.Direction} direction
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @instance
+ */
+ PickTimeSeriesFilter.prototype.direction = 0;
+
+ /**
+ * Creates a new PickTimeSeriesFilter instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.IPickTimeSeriesFilter=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.PickTimeSeriesFilter} PickTimeSeriesFilter instance
+ */
+ PickTimeSeriesFilter.create = function create(properties) {
+ return new PickTimeSeriesFilter(properties);
+ };
+
+ /**
+ * Encodes the specified PickTimeSeriesFilter message. Does not implicitly {@link google.monitoring.dashboard.v1.PickTimeSeriesFilter.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.IPickTimeSeriesFilter} message PickTimeSeriesFilter message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ PickTimeSeriesFilter.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.rankingMethod != null && Object.hasOwnProperty.call(message, "rankingMethod"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.rankingMethod);
+ if (message.numTimeSeries != null && Object.hasOwnProperty.call(message, "numTimeSeries"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.numTimeSeries);
+ if (message.direction != null && Object.hasOwnProperty.call(message, "direction"))
+ writer.uint32(/* id 3, wireType 0 =*/24).int32(message.direction);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified PickTimeSeriesFilter message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.PickTimeSeriesFilter.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.IPickTimeSeriesFilter} message PickTimeSeriesFilter message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ PickTimeSeriesFilter.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a PickTimeSeriesFilter message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.PickTimeSeriesFilter} PickTimeSeriesFilter
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ PickTimeSeriesFilter.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.monitoring.dashboard.v1.PickTimeSeriesFilter();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.rankingMethod = reader.int32();
+ break;
+ }
+ case 2: {
+ message.numTimeSeries = reader.int32();
+ break;
+ }
+ case 3: {
+ message.direction = reader.int32();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a PickTimeSeriesFilter message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.PickTimeSeriesFilter} PickTimeSeriesFilter
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ PickTimeSeriesFilter.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a PickTimeSeriesFilter message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ PickTimeSeriesFilter.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.rankingMethod != null && message.hasOwnProperty("rankingMethod"))
+ switch (message.rankingMethod) {
+ default:
+ return "rankingMethod: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ break;
+ }
+ if (message.numTimeSeries != null && message.hasOwnProperty("numTimeSeries"))
+ if (!$util.isInteger(message.numTimeSeries))
+ return "numTimeSeries: integer expected";
+ if (message.direction != null && message.hasOwnProperty("direction"))
+ switch (message.direction) {
+ default:
+ return "direction: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a PickTimeSeriesFilter message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.PickTimeSeriesFilter} PickTimeSeriesFilter
+ */
+ PickTimeSeriesFilter.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter();
+ switch (object.rankingMethod) {
+ case "METHOD_UNSPECIFIED":
+ case 0:
+ message.rankingMethod = 0;
+ break;
+ case "METHOD_MEAN":
+ case 1:
+ message.rankingMethod = 1;
+ break;
+ case "METHOD_MAX":
+ case 2:
+ message.rankingMethod = 2;
+ break;
+ case "METHOD_MIN":
+ case 3:
+ message.rankingMethod = 3;
+ break;
+ case "METHOD_SUM":
+ case 4:
+ message.rankingMethod = 4;
+ break;
+ case "METHOD_LATEST":
+ case 5:
+ message.rankingMethod = 5;
+ break;
+ }
+ if (object.numTimeSeries != null)
+ message.numTimeSeries = object.numTimeSeries | 0;
+ switch (object.direction) {
+ case "DIRECTION_UNSPECIFIED":
+ case 0:
+ message.direction = 0;
+ break;
+ case "TOP":
+ case 1:
+ message.direction = 1;
+ break;
+ case "BOTTOM":
+ case 2:
+ message.direction = 2;
+ break;
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a PickTimeSeriesFilter message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.PickTimeSeriesFilter} message PickTimeSeriesFilter
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ PickTimeSeriesFilter.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.rankingMethod = options.enums === String ? "METHOD_UNSPECIFIED" : 0;
+ object.numTimeSeries = 0;
+ object.direction = options.enums === String ? "DIRECTION_UNSPECIFIED" : 0;
+ }
+ if (message.rankingMethod != null && message.hasOwnProperty("rankingMethod"))
+ object.rankingMethod = options.enums === String ? $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter.Method[message.rankingMethod] : message.rankingMethod;
+ if (message.numTimeSeries != null && message.hasOwnProperty("numTimeSeries"))
+ object.numTimeSeries = message.numTimeSeries;
+ if (message.direction != null && message.hasOwnProperty("direction"))
+ object.direction = options.enums === String ? $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter.Direction[message.direction] : message.direction;
+ return object;
+ };
+
+ /**
+ * Converts this PickTimeSeriesFilter to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ PickTimeSeriesFilter.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for PickTimeSeriesFilter
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.PickTimeSeriesFilter
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ PickTimeSeriesFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.PickTimeSeriesFilter";
+ };
+
+ /**
+ * Method enum.
+ * @name google.monitoring.dashboard.v1.PickTimeSeriesFilter.Method
+ * @enum {number}
+ * @property {number} METHOD_UNSPECIFIED=0 METHOD_UNSPECIFIED value
+ * @property {number} METHOD_MEAN=1 METHOD_MEAN value
+ * @property {number} METHOD_MAX=2 METHOD_MAX value
+ * @property {number} METHOD_MIN=3 METHOD_MIN value
+ * @property {number} METHOD_SUM=4 METHOD_SUM value
+ * @property {number} METHOD_LATEST=5 METHOD_LATEST value
+ */
+ PickTimeSeriesFilter.Method = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "METHOD_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "METHOD_MEAN"] = 1;
+ values[valuesById[2] = "METHOD_MAX"] = 2;
+ values[valuesById[3] = "METHOD_MIN"] = 3;
+ values[valuesById[4] = "METHOD_SUM"] = 4;
+ values[valuesById[5] = "METHOD_LATEST"] = 5;
+ return values;
+ })();
+
+ /**
+ * Direction enum.
+ * @name google.monitoring.dashboard.v1.PickTimeSeriesFilter.Direction
+ * @enum {number}
+ * @property {number} DIRECTION_UNSPECIFIED=0 DIRECTION_UNSPECIFIED value
+ * @property {number} TOP=1 TOP value
+ * @property {number} BOTTOM=2 BOTTOM value
+ */
+ PickTimeSeriesFilter.Direction = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "DIRECTION_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "TOP"] = 1;
+ values[valuesById[2] = "BOTTOM"] = 2;
+ return values;
+ })();
+
+ return PickTimeSeriesFilter;
+ })();
+
+ v1.StatisticalTimeSeriesFilter = (function() {
+
+ /**
+ * Properties of a StatisticalTimeSeriesFilter.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IStatisticalTimeSeriesFilter
+ * @property {google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.Method|null} [rankingMethod] StatisticalTimeSeriesFilter rankingMethod
+ * @property {number|null} [numTimeSeries] StatisticalTimeSeriesFilter numTimeSeries
+ */
+
+ /**
+ * Constructs a new StatisticalTimeSeriesFilter.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a StatisticalTimeSeriesFilter.
+ * @implements IStatisticalTimeSeriesFilter
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter=} [properties] Properties to set
+ */
+ function StatisticalTimeSeriesFilter(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]];
+ }
+
+ /**
+ * StatisticalTimeSeriesFilter rankingMethod.
+ * @member {google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.Method} rankingMethod
+ * @memberof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter
+ * @instance
+ */
+ StatisticalTimeSeriesFilter.prototype.rankingMethod = 0;
+
+ /**
+ * StatisticalTimeSeriesFilter numTimeSeries.
+ * @member {number} numTimeSeries
+ * @memberof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter
+ * @instance
+ */
+ StatisticalTimeSeriesFilter.prototype.numTimeSeries = 0;
+
+ /**
+ * Creates a new StatisticalTimeSeriesFilter instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter} StatisticalTimeSeriesFilter instance
+ */
+ StatisticalTimeSeriesFilter.create = function create(properties) {
+ return new StatisticalTimeSeriesFilter(properties);
+ };
+
+ /**
+ * Encodes the specified StatisticalTimeSeriesFilter message. Does not implicitly {@link google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter} message StatisticalTimeSeriesFilter message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ StatisticalTimeSeriesFilter.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.rankingMethod != null && Object.hasOwnProperty.call(message, "rankingMethod"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.rankingMethod);
+ if (message.numTimeSeries != null && Object.hasOwnProperty.call(message, "numTimeSeries"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.numTimeSeries);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified StatisticalTimeSeriesFilter message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter} message StatisticalTimeSeriesFilter message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ StatisticalTimeSeriesFilter.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a StatisticalTimeSeriesFilter message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter} StatisticalTimeSeriesFilter
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ StatisticalTimeSeriesFilter.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.monitoring.dashboard.v1.StatisticalTimeSeriesFilter();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.rankingMethod = reader.int32();
+ break;
+ }
+ case 2: {
+ message.numTimeSeries = reader.int32();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a StatisticalTimeSeriesFilter message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter} StatisticalTimeSeriesFilter
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ StatisticalTimeSeriesFilter.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a StatisticalTimeSeriesFilter message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ StatisticalTimeSeriesFilter.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.rankingMethod != null && message.hasOwnProperty("rankingMethod"))
+ switch (message.rankingMethod) {
+ default:
+ return "rankingMethod: enum value expected";
+ case 0:
+ case 1:
+ break;
+ }
+ if (message.numTimeSeries != null && message.hasOwnProperty("numTimeSeries"))
+ if (!$util.isInteger(message.numTimeSeries))
+ return "numTimeSeries: integer expected";
+ return null;
+ };
+
+ /**
+ * Creates a StatisticalTimeSeriesFilter message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter} StatisticalTimeSeriesFilter
+ */
+ StatisticalTimeSeriesFilter.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter();
+ switch (object.rankingMethod) {
+ case "METHOD_UNSPECIFIED":
+ case 0:
+ message.rankingMethod = 0;
+ break;
+ case "METHOD_CLUSTER_OUTLIER":
+ case 1:
+ message.rankingMethod = 1;
+ break;
+ }
+ if (object.numTimeSeries != null)
+ message.numTimeSeries = object.numTimeSeries | 0;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a StatisticalTimeSeriesFilter message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter} message StatisticalTimeSeriesFilter
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ StatisticalTimeSeriesFilter.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.rankingMethod = options.enums === String ? "METHOD_UNSPECIFIED" : 0;
+ object.numTimeSeries = 0;
+ }
+ if (message.rankingMethod != null && message.hasOwnProperty("rankingMethod"))
+ object.rankingMethod = options.enums === String ? $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.Method[message.rankingMethod] : message.rankingMethod;
+ if (message.numTimeSeries != null && message.hasOwnProperty("numTimeSeries"))
+ object.numTimeSeries = message.numTimeSeries;
+ return object;
+ };
+
+ /**
+ * Converts this StatisticalTimeSeriesFilter to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ StatisticalTimeSeriesFilter.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for StatisticalTimeSeriesFilter
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ StatisticalTimeSeriesFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter";
+ };
+
+ /**
+ * Method enum.
+ * @name google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.Method
+ * @enum {number}
+ * @property {number} METHOD_UNSPECIFIED=0 METHOD_UNSPECIFIED value
+ * @property {number} METHOD_CLUSTER_OUTLIER=1 METHOD_CLUSTER_OUTLIER value
+ */
+ StatisticalTimeSeriesFilter.Method = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "METHOD_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "METHOD_CLUSTER_OUTLIER"] = 1;
+ return values;
+ })();
+
+ return StatisticalTimeSeriesFilter;
+ })();
+
+ v1.Dashboard = (function() {
+
+ /**
+ * Properties of a Dashboard.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IDashboard
+ * @property {string|null} [name] Dashboard name
+ * @property {string|null} [displayName] Dashboard displayName
+ * @property {string|null} [etag] Dashboard etag
+ * @property {google.monitoring.dashboard.v1.IGridLayout|null} [gridLayout] Dashboard gridLayout
+ * @property {google.monitoring.dashboard.v1.IMosaicLayout|null} [mosaicLayout] Dashboard mosaicLayout
+ * @property {google.monitoring.dashboard.v1.IRowLayout|null} [rowLayout] Dashboard rowLayout
+ * @property {google.monitoring.dashboard.v1.IColumnLayout|null} [columnLayout] Dashboard columnLayout
+ * @property {Array.|null} [dashboardFilters] Dashboard dashboardFilters
+ * @property {Object.|null} [labels] Dashboard labels
+ */
+
+ /**
+ * Constructs a new Dashboard.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a Dashboard.
+ * @implements IDashboard
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IDashboard=} [properties] Properties to set
+ */
+ function Dashboard(properties) {
+ this.dashboardFilters = [];
+ this.labels = {};
+ 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]];
+ }
+
+ /**
+ * Dashboard name.
+ * @member {string} name
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @instance
+ */
+ Dashboard.prototype.name = "";
+
+ /**
+ * Dashboard displayName.
+ * @member {string} displayName
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @instance
+ */
+ Dashboard.prototype.displayName = "";
+
+ /**
+ * Dashboard etag.
+ * @member {string} etag
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @instance
+ */
+ Dashboard.prototype.etag = "";
+
+ /**
+ * Dashboard gridLayout.
+ * @member {google.monitoring.dashboard.v1.IGridLayout|null|undefined} gridLayout
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @instance
+ */
+ Dashboard.prototype.gridLayout = null;
+
+ /**
+ * Dashboard mosaicLayout.
+ * @member {google.monitoring.dashboard.v1.IMosaicLayout|null|undefined} mosaicLayout
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @instance
+ */
+ Dashboard.prototype.mosaicLayout = null;
+
+ /**
+ * Dashboard rowLayout.
+ * @member {google.monitoring.dashboard.v1.IRowLayout|null|undefined} rowLayout
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @instance
+ */
+ Dashboard.prototype.rowLayout = null;
+
+ /**
+ * Dashboard columnLayout.
+ * @member {google.monitoring.dashboard.v1.IColumnLayout|null|undefined} columnLayout
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @instance
+ */
+ Dashboard.prototype.columnLayout = null;
+
+ /**
+ * Dashboard dashboardFilters.
+ * @member {Array.} dashboardFilters
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @instance
+ */
+ Dashboard.prototype.dashboardFilters = $util.emptyArray;
+
+ /**
+ * Dashboard labels.
+ * @member {Object.} labels
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @instance
+ */
+ Dashboard.prototype.labels = $util.emptyObject;
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * Dashboard layout.
+ * @member {"gridLayout"|"mosaicLayout"|"rowLayout"|"columnLayout"|undefined} layout
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @instance
+ */
+ Object.defineProperty(Dashboard.prototype, "layout", {
+ get: $util.oneOfGetter($oneOfFields = ["gridLayout", "mosaicLayout", "rowLayout", "columnLayout"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new Dashboard instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @static
+ * @param {google.monitoring.dashboard.v1.IDashboard=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.Dashboard} Dashboard instance
+ */
+ Dashboard.create = function create(properties) {
+ return new Dashboard(properties);
+ };
+
+ /**
+ * Encodes the specified Dashboard message. Does not implicitly {@link google.monitoring.dashboard.v1.Dashboard.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @static
+ * @param {google.monitoring.dashboard.v1.IDashboard} message Dashboard message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Dashboard.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.displayName != null && Object.hasOwnProperty.call(message, "displayName"))
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.displayName);
+ if (message.etag != null && Object.hasOwnProperty.call(message, "etag"))
+ writer.uint32(/* id 4, wireType 2 =*/34).string(message.etag);
+ if (message.gridLayout != null && Object.hasOwnProperty.call(message, "gridLayout"))
+ $root.google.monitoring.dashboard.v1.GridLayout.encode(message.gridLayout, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
+ if (message.mosaicLayout != null && Object.hasOwnProperty.call(message, "mosaicLayout"))
+ $root.google.monitoring.dashboard.v1.MosaicLayout.encode(message.mosaicLayout, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();
+ if (message.rowLayout != null && Object.hasOwnProperty.call(message, "rowLayout"))
+ $root.google.monitoring.dashboard.v1.RowLayout.encode(message.rowLayout, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();
+ if (message.columnLayout != null && Object.hasOwnProperty.call(message, "columnLayout"))
+ $root.google.monitoring.dashboard.v1.ColumnLayout.encode(message.columnLayout, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();
+ if (message.dashboardFilters != null && message.dashboardFilters.length)
+ for (var i = 0; i < message.dashboardFilters.length; ++i)
+ $root.google.monitoring.dashboard.v1.DashboardFilter.encode(message.dashboardFilters[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();
+ if (message.labels != null && Object.hasOwnProperty.call(message, "labels"))
+ for (var keys = Object.keys(message.labels), i = 0; i < keys.length; ++i)
+ writer.uint32(/* id 12, wireType 2 =*/98).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.labels[keys[i]]).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Dashboard message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Dashboard.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @static
+ * @param {google.monitoring.dashboard.v1.IDashboard} message Dashboard message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Dashboard.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Dashboard message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.Dashboard} Dashboard
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Dashboard.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.monitoring.dashboard.v1.Dashboard(), key, value;
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.name = reader.string();
+ break;
+ }
+ case 2: {
+ message.displayName = reader.string();
+ break;
+ }
+ case 4: {
+ message.etag = reader.string();
+ break;
+ }
+ case 5: {
+ message.gridLayout = $root.google.monitoring.dashboard.v1.GridLayout.decode(reader, reader.uint32());
+ break;
+ }
+ case 6: {
+ message.mosaicLayout = $root.google.monitoring.dashboard.v1.MosaicLayout.decode(reader, reader.uint32());
+ break;
+ }
+ case 8: {
+ message.rowLayout = $root.google.monitoring.dashboard.v1.RowLayout.decode(reader, reader.uint32());
+ break;
+ }
+ case 9: {
+ message.columnLayout = $root.google.monitoring.dashboard.v1.ColumnLayout.decode(reader, reader.uint32());
+ break;
+ }
+ case 11: {
+ if (!(message.dashboardFilters && message.dashboardFilters.length))
+ message.dashboardFilters = [];
+ message.dashboardFilters.push($root.google.monitoring.dashboard.v1.DashboardFilter.decode(reader, reader.uint32()));
+ break;
+ }
+ case 12: {
+ if (message.labels === $util.emptyObject)
+ message.labels = {};
+ 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.labels[key] = value;
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Dashboard message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.Dashboard} Dashboard
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Dashboard.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Dashboard message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Dashboard.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.name != null && message.hasOwnProperty("name"))
+ if (!$util.isString(message.name))
+ return "name: string expected";
+ if (message.displayName != null && message.hasOwnProperty("displayName"))
+ if (!$util.isString(message.displayName))
+ return "displayName: string expected";
+ if (message.etag != null && message.hasOwnProperty("etag"))
+ if (!$util.isString(message.etag))
+ return "etag: string expected";
+ if (message.gridLayout != null && message.hasOwnProperty("gridLayout")) {
+ properties.layout = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.GridLayout.verify(message.gridLayout);
+ if (error)
+ return "gridLayout." + error;
+ }
+ }
+ if (message.mosaicLayout != null && message.hasOwnProperty("mosaicLayout")) {
+ if (properties.layout === 1)
+ return "layout: multiple values";
+ properties.layout = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.MosaicLayout.verify(message.mosaicLayout);
+ if (error)
+ return "mosaicLayout." + error;
+ }
+ }
+ if (message.rowLayout != null && message.hasOwnProperty("rowLayout")) {
+ if (properties.layout === 1)
+ return "layout: multiple values";
+ properties.layout = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.RowLayout.verify(message.rowLayout);
+ if (error)
+ return "rowLayout." + error;
+ }
+ }
+ if (message.columnLayout != null && message.hasOwnProperty("columnLayout")) {
+ if (properties.layout === 1)
+ return "layout: multiple values";
+ properties.layout = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.ColumnLayout.verify(message.columnLayout);
+ if (error)
+ return "columnLayout." + error;
+ }
+ }
+ if (message.dashboardFilters != null && message.hasOwnProperty("dashboardFilters")) {
+ if (!Array.isArray(message.dashboardFilters))
+ return "dashboardFilters: array expected";
+ for (var i = 0; i < message.dashboardFilters.length; ++i) {
+ var error = $root.google.monitoring.dashboard.v1.DashboardFilter.verify(message.dashboardFilters[i]);
+ if (error)
+ return "dashboardFilters." + error;
+ }
+ }
+ if (message.labels != null && message.hasOwnProperty("labels")) {
+ if (!$util.isObject(message.labels))
+ return "labels: object expected";
+ var key = Object.keys(message.labels);
+ for (var i = 0; i < key.length; ++i)
+ if (!$util.isString(message.labels[key[i]]))
+ return "labels: string{k:string} expected";
+ }
+ return null;
+ };
+
+ /**
+ * Creates a Dashboard message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.Dashboard} Dashboard
+ */
+ Dashboard.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.Dashboard)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.Dashboard();
+ if (object.name != null)
+ message.name = String(object.name);
+ if (object.displayName != null)
+ message.displayName = String(object.displayName);
+ if (object.etag != null)
+ message.etag = String(object.etag);
+ if (object.gridLayout != null) {
+ if (typeof object.gridLayout !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Dashboard.gridLayout: object expected");
+ message.gridLayout = $root.google.monitoring.dashboard.v1.GridLayout.fromObject(object.gridLayout);
+ }
+ if (object.mosaicLayout != null) {
+ if (typeof object.mosaicLayout !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Dashboard.mosaicLayout: object expected");
+ message.mosaicLayout = $root.google.monitoring.dashboard.v1.MosaicLayout.fromObject(object.mosaicLayout);
+ }
+ if (object.rowLayout != null) {
+ if (typeof object.rowLayout !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Dashboard.rowLayout: object expected");
+ message.rowLayout = $root.google.monitoring.dashboard.v1.RowLayout.fromObject(object.rowLayout);
+ }
+ if (object.columnLayout != null) {
+ if (typeof object.columnLayout !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Dashboard.columnLayout: object expected");
+ message.columnLayout = $root.google.monitoring.dashboard.v1.ColumnLayout.fromObject(object.columnLayout);
+ }
+ if (object.dashboardFilters) {
+ if (!Array.isArray(object.dashboardFilters))
+ throw TypeError(".google.monitoring.dashboard.v1.Dashboard.dashboardFilters: array expected");
+ message.dashboardFilters = [];
+ for (var i = 0; i < object.dashboardFilters.length; ++i) {
+ if (typeof object.dashboardFilters[i] !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Dashboard.dashboardFilters: object expected");
+ message.dashboardFilters[i] = $root.google.monitoring.dashboard.v1.DashboardFilter.fromObject(object.dashboardFilters[i]);
+ }
+ }
+ if (object.labels) {
+ if (typeof object.labels !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Dashboard.labels: object expected");
+ message.labels = {};
+ for (var keys = Object.keys(object.labels), i = 0; i < keys.length; ++i)
+ message.labels[keys[i]] = String(object.labels[keys[i]]);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Dashboard message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @static
+ * @param {google.monitoring.dashboard.v1.Dashboard} message Dashboard
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Dashboard.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.dashboardFilters = [];
+ if (options.objects || options.defaults)
+ object.labels = {};
+ if (options.defaults) {
+ object.name = "";
+ object.displayName = "";
+ object.etag = "";
+ }
+ if (message.name != null && message.hasOwnProperty("name"))
+ object.name = message.name;
+ if (message.displayName != null && message.hasOwnProperty("displayName"))
+ object.displayName = message.displayName;
+ if (message.etag != null && message.hasOwnProperty("etag"))
+ object.etag = message.etag;
+ if (message.gridLayout != null && message.hasOwnProperty("gridLayout")) {
+ object.gridLayout = $root.google.monitoring.dashboard.v1.GridLayout.toObject(message.gridLayout, options);
+ if (options.oneofs)
+ object.layout = "gridLayout";
+ }
+ if (message.mosaicLayout != null && message.hasOwnProperty("mosaicLayout")) {
+ object.mosaicLayout = $root.google.monitoring.dashboard.v1.MosaicLayout.toObject(message.mosaicLayout, options);
+ if (options.oneofs)
+ object.layout = "mosaicLayout";
+ }
+ if (message.rowLayout != null && message.hasOwnProperty("rowLayout")) {
+ object.rowLayout = $root.google.monitoring.dashboard.v1.RowLayout.toObject(message.rowLayout, options);
+ if (options.oneofs)
+ object.layout = "rowLayout";
+ }
+ if (message.columnLayout != null && message.hasOwnProperty("columnLayout")) {
+ object.columnLayout = $root.google.monitoring.dashboard.v1.ColumnLayout.toObject(message.columnLayout, options);
+ if (options.oneofs)
+ object.layout = "columnLayout";
+ }
+ if (message.dashboardFilters && message.dashboardFilters.length) {
+ object.dashboardFilters = [];
+ for (var j = 0; j < message.dashboardFilters.length; ++j)
+ object.dashboardFilters[j] = $root.google.monitoring.dashboard.v1.DashboardFilter.toObject(message.dashboardFilters[j], options);
+ }
+ var keys2;
+ if (message.labels && (keys2 = Object.keys(message.labels)).length) {
+ object.labels = {};
+ for (var j = 0; j < keys2.length; ++j)
+ object.labels[keys2[j]] = message.labels[keys2[j]];
+ }
+ return object;
+ };
+
+ /**
+ * Converts this Dashboard to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Dashboard.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for Dashboard
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.Dashboard
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Dashboard.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.Dashboard";
+ };
+
+ return Dashboard;
+ })();
+
+ v1.DashboardFilter = (function() {
+
+ /**
+ * Properties of a DashboardFilter.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IDashboardFilter
+ * @property {string|null} [labelKey] DashboardFilter labelKey
+ * @property {string|null} [templateVariable] DashboardFilter templateVariable
+ * @property {string|null} [stringValue] DashboardFilter stringValue
+ * @property {google.monitoring.dashboard.v1.DashboardFilter.FilterType|null} [filterType] DashboardFilter filterType
+ */
+
+ /**
+ * Constructs a new DashboardFilter.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a DashboardFilter.
+ * @implements IDashboardFilter
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IDashboardFilter=} [properties] Properties to set
+ */
+ function DashboardFilter(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]];
+ }
+
+ /**
+ * DashboardFilter labelKey.
+ * @member {string} labelKey
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @instance
+ */
+ DashboardFilter.prototype.labelKey = "";
+
+ /**
+ * DashboardFilter templateVariable.
+ * @member {string} templateVariable
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @instance
+ */
+ DashboardFilter.prototype.templateVariable = "";
+
+ /**
+ * DashboardFilter stringValue.
+ * @member {string|null|undefined} stringValue
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @instance
+ */
+ DashboardFilter.prototype.stringValue = null;
+
+ /**
+ * DashboardFilter filterType.
+ * @member {google.monitoring.dashboard.v1.DashboardFilter.FilterType} filterType
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @instance
+ */
+ DashboardFilter.prototype.filterType = 0;
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * DashboardFilter defaultValue.
+ * @member {"stringValue"|undefined} defaultValue
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @instance
+ */
+ Object.defineProperty(DashboardFilter.prototype, "defaultValue", {
+ get: $util.oneOfGetter($oneOfFields = ["stringValue"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new DashboardFilter instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.IDashboardFilter=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.DashboardFilter} DashboardFilter instance
+ */
+ DashboardFilter.create = function create(properties) {
+ return new DashboardFilter(properties);
+ };
+
+ /**
+ * Encodes the specified DashboardFilter message. Does not implicitly {@link google.monitoring.dashboard.v1.DashboardFilter.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.IDashboardFilter} message DashboardFilter message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ DashboardFilter.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.labelKey != null && Object.hasOwnProperty.call(message, "labelKey"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.labelKey);
+ if (message.templateVariable != null && Object.hasOwnProperty.call(message, "templateVariable"))
+ writer.uint32(/* id 3, wireType 2 =*/26).string(message.templateVariable);
+ if (message.stringValue != null && Object.hasOwnProperty.call(message, "stringValue"))
+ writer.uint32(/* id 4, wireType 2 =*/34).string(message.stringValue);
+ if (message.filterType != null && Object.hasOwnProperty.call(message, "filterType"))
+ writer.uint32(/* id 5, wireType 0 =*/40).int32(message.filterType);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified DashboardFilter message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.DashboardFilter.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.IDashboardFilter} message DashboardFilter message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ DashboardFilter.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a DashboardFilter message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.DashboardFilter} DashboardFilter
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ DashboardFilter.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.monitoring.dashboard.v1.DashboardFilter();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.labelKey = reader.string();
+ break;
+ }
+ case 3: {
+ message.templateVariable = reader.string();
+ break;
+ }
+ case 4: {
+ message.stringValue = reader.string();
+ break;
+ }
+ case 5: {
+ message.filterType = reader.int32();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a DashboardFilter message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.DashboardFilter} DashboardFilter
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ DashboardFilter.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a DashboardFilter message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ DashboardFilter.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.labelKey != null && message.hasOwnProperty("labelKey"))
+ if (!$util.isString(message.labelKey))
+ return "labelKey: string expected";
+ if (message.templateVariable != null && message.hasOwnProperty("templateVariable"))
+ if (!$util.isString(message.templateVariable))
+ return "templateVariable: string expected";
+ if (message.stringValue != null && message.hasOwnProperty("stringValue")) {
+ properties.defaultValue = 1;
+ if (!$util.isString(message.stringValue))
+ return "stringValue: string expected";
+ }
+ if (message.filterType != null && message.hasOwnProperty("filterType"))
+ switch (message.filterType) {
+ default:
+ return "filterType: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ break;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a DashboardFilter message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.DashboardFilter} DashboardFilter
+ */
+ DashboardFilter.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.DashboardFilter)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.DashboardFilter();
+ if (object.labelKey != null)
+ message.labelKey = String(object.labelKey);
+ if (object.templateVariable != null)
+ message.templateVariable = String(object.templateVariable);
+ if (object.stringValue != null)
+ message.stringValue = String(object.stringValue);
+ switch (object.filterType) {
+ case "FILTER_TYPE_UNSPECIFIED":
+ case 0:
+ message.filterType = 0;
+ break;
+ case "RESOURCE_LABEL":
+ case 1:
+ message.filterType = 1;
+ break;
+ case "METRIC_LABEL":
+ case 2:
+ message.filterType = 2;
+ break;
+ case "USER_METADATA_LABEL":
+ case 3:
+ message.filterType = 3;
+ break;
+ case "SYSTEM_METADATA_LABEL":
+ case 4:
+ message.filterType = 4;
+ break;
+ case "GROUP":
+ case 5:
+ message.filterType = 5;
+ break;
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a DashboardFilter message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.DashboardFilter} message DashboardFilter
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ DashboardFilter.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.labelKey = "";
+ object.templateVariable = "";
+ object.filterType = options.enums === String ? "FILTER_TYPE_UNSPECIFIED" : 0;
+ }
+ if (message.labelKey != null && message.hasOwnProperty("labelKey"))
+ object.labelKey = message.labelKey;
+ if (message.templateVariable != null && message.hasOwnProperty("templateVariable"))
+ object.templateVariable = message.templateVariable;
+ if (message.stringValue != null && message.hasOwnProperty("stringValue")) {
+ object.stringValue = message.stringValue;
+ if (options.oneofs)
+ object.defaultValue = "stringValue";
+ }
+ if (message.filterType != null && message.hasOwnProperty("filterType"))
+ object.filterType = options.enums === String ? $root.google.monitoring.dashboard.v1.DashboardFilter.FilterType[message.filterType] : message.filterType;
+ return object;
+ };
+
+ /**
+ * Converts this DashboardFilter to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ DashboardFilter.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for DashboardFilter
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.DashboardFilter
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ DashboardFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.DashboardFilter";
+ };
+
+ /**
+ * FilterType enum.
+ * @name google.monitoring.dashboard.v1.DashboardFilter.FilterType
+ * @enum {number}
+ * @property {number} FILTER_TYPE_UNSPECIFIED=0 FILTER_TYPE_UNSPECIFIED value
+ * @property {number} RESOURCE_LABEL=1 RESOURCE_LABEL value
+ * @property {number} METRIC_LABEL=2 METRIC_LABEL value
+ * @property {number} USER_METADATA_LABEL=3 USER_METADATA_LABEL value
+ * @property {number} SYSTEM_METADATA_LABEL=4 SYSTEM_METADATA_LABEL value
+ * @property {number} GROUP=5 GROUP value
+ */
+ DashboardFilter.FilterType = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "FILTER_TYPE_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "RESOURCE_LABEL"] = 1;
+ values[valuesById[2] = "METRIC_LABEL"] = 2;
+ values[valuesById[3] = "USER_METADATA_LABEL"] = 3;
+ values[valuesById[4] = "SYSTEM_METADATA_LABEL"] = 4;
+ values[valuesById[5] = "GROUP"] = 5;
+ return values;
+ })();
+
+ return DashboardFilter;
+ })();
+
+ v1.GridLayout = (function() {
+
+ /**
+ * Properties of a GridLayout.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IGridLayout
+ * @property {number|Long|null} [columns] GridLayout columns
+ * @property {Array.|null} [widgets] GridLayout widgets
+ */
+
+ /**
+ * Constructs a new GridLayout.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a GridLayout.
+ * @implements IGridLayout
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IGridLayout=} [properties] Properties to set
+ */
+ function GridLayout(properties) {
+ this.widgets = [];
+ 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]];
+ }
+
+ /**
+ * GridLayout columns.
+ * @member {number|Long} columns
+ * @memberof google.monitoring.dashboard.v1.GridLayout
+ * @instance
+ */
+ GridLayout.prototype.columns = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * GridLayout widgets.
+ * @member {Array.} widgets
+ * @memberof google.monitoring.dashboard.v1.GridLayout
+ * @instance
+ */
+ GridLayout.prototype.widgets = $util.emptyArray;
+
+ /**
+ * Creates a new GridLayout instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.GridLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.IGridLayout=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.GridLayout} GridLayout instance
+ */
+ GridLayout.create = function create(properties) {
+ return new GridLayout(properties);
+ };
+
+ /**
+ * Encodes the specified GridLayout message. Does not implicitly {@link google.monitoring.dashboard.v1.GridLayout.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.GridLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.IGridLayout} message GridLayout message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GridLayout.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.columns != null && Object.hasOwnProperty.call(message, "columns"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int64(message.columns);
+ if (message.widgets != null && message.widgets.length)
+ for (var i = 0; i < message.widgets.length; ++i)
+ $root.google.monitoring.dashboard.v1.Widget.encode(message.widgets[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified GridLayout message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.GridLayout.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.GridLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.IGridLayout} message GridLayout message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GridLayout.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a GridLayout message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.GridLayout
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.GridLayout} GridLayout
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GridLayout.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.monitoring.dashboard.v1.GridLayout();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.columns = reader.int64();
+ break;
+ }
+ case 2: {
+ if (!(message.widgets && message.widgets.length))
+ message.widgets = [];
+ message.widgets.push($root.google.monitoring.dashboard.v1.Widget.decode(reader, reader.uint32()));
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a GridLayout message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.GridLayout
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.GridLayout} GridLayout
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GridLayout.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a GridLayout message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.GridLayout
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ GridLayout.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.columns != null && message.hasOwnProperty("columns"))
+ if (!$util.isInteger(message.columns) && !(message.columns && $util.isInteger(message.columns.low) && $util.isInteger(message.columns.high)))
+ return "columns: integer|Long expected";
+ if (message.widgets != null && message.hasOwnProperty("widgets")) {
+ if (!Array.isArray(message.widgets))
+ return "widgets: array expected";
+ for (var i = 0; i < message.widgets.length; ++i) {
+ var error = $root.google.monitoring.dashboard.v1.Widget.verify(message.widgets[i]);
+ if (error)
+ return "widgets." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a GridLayout message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.GridLayout
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.GridLayout} GridLayout
+ */
+ GridLayout.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.GridLayout)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.GridLayout();
+ if (object.columns != null)
+ if ($util.Long)
+ (message.columns = $util.Long.fromValue(object.columns)).unsigned = false;
+ else if (typeof object.columns === "string")
+ message.columns = parseInt(object.columns, 10);
+ else if (typeof object.columns === "number")
+ message.columns = object.columns;
+ else if (typeof object.columns === "object")
+ message.columns = new $util.LongBits(object.columns.low >>> 0, object.columns.high >>> 0).toNumber();
+ if (object.widgets) {
+ if (!Array.isArray(object.widgets))
+ throw TypeError(".google.monitoring.dashboard.v1.GridLayout.widgets: array expected");
+ message.widgets = [];
+ for (var i = 0; i < object.widgets.length; ++i) {
+ if (typeof object.widgets[i] !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.GridLayout.widgets: object expected");
+ message.widgets[i] = $root.google.monitoring.dashboard.v1.Widget.fromObject(object.widgets[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a GridLayout message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.GridLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.GridLayout} message GridLayout
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ GridLayout.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.widgets = [];
+ if (options.defaults)
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, false);
+ object.columns = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.columns = options.longs === String ? "0" : 0;
+ if (message.columns != null && message.hasOwnProperty("columns"))
+ if (typeof message.columns === "number")
+ object.columns = options.longs === String ? String(message.columns) : message.columns;
+ else
+ object.columns = options.longs === String ? $util.Long.prototype.toString.call(message.columns) : options.longs === Number ? new $util.LongBits(message.columns.low >>> 0, message.columns.high >>> 0).toNumber() : message.columns;
+ if (message.widgets && message.widgets.length) {
+ object.widgets = [];
+ for (var j = 0; j < message.widgets.length; ++j)
+ object.widgets[j] = $root.google.monitoring.dashboard.v1.Widget.toObject(message.widgets[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this GridLayout to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.GridLayout
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ GridLayout.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for GridLayout
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.GridLayout
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ GridLayout.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.GridLayout";
+ };
+
+ return GridLayout;
+ })();
+
+ v1.MosaicLayout = (function() {
+
+ /**
+ * Properties of a MosaicLayout.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IMosaicLayout
+ * @property {number|null} [columns] MosaicLayout columns
+ * @property {Array.|null} [tiles] MosaicLayout tiles
+ */
+
+ /**
+ * Constructs a new MosaicLayout.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a MosaicLayout.
+ * @implements IMosaicLayout
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IMosaicLayout=} [properties] Properties to set
+ */
+ function MosaicLayout(properties) {
+ this.tiles = [];
+ 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]];
+ }
+
+ /**
+ * MosaicLayout columns.
+ * @member {number} columns
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @instance
+ */
+ MosaicLayout.prototype.columns = 0;
+
+ /**
+ * MosaicLayout tiles.
+ * @member {Array.} tiles
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @instance
+ */
+ MosaicLayout.prototype.tiles = $util.emptyArray;
+
+ /**
+ * Creates a new MosaicLayout instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.IMosaicLayout=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.MosaicLayout} MosaicLayout instance
+ */
+ MosaicLayout.create = function create(properties) {
+ return new MosaicLayout(properties);
+ };
+
+ /**
+ * Encodes the specified MosaicLayout message. Does not implicitly {@link google.monitoring.dashboard.v1.MosaicLayout.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.IMosaicLayout} message MosaicLayout message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ MosaicLayout.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.columns != null && Object.hasOwnProperty.call(message, "columns"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.columns);
+ if (message.tiles != null && message.tiles.length)
+ for (var i = 0; i < message.tiles.length; ++i)
+ $root.google.monitoring.dashboard.v1.MosaicLayout.Tile.encode(message.tiles[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified MosaicLayout message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.MosaicLayout.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.IMosaicLayout} message MosaicLayout message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ MosaicLayout.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a MosaicLayout message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.MosaicLayout} MosaicLayout
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ MosaicLayout.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.monitoring.dashboard.v1.MosaicLayout();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.columns = reader.int32();
+ break;
+ }
+ case 3: {
+ if (!(message.tiles && message.tiles.length))
+ message.tiles = [];
+ message.tiles.push($root.google.monitoring.dashboard.v1.MosaicLayout.Tile.decode(reader, reader.uint32()));
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a MosaicLayout message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.MosaicLayout} MosaicLayout
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ MosaicLayout.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a MosaicLayout message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ MosaicLayout.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.columns != null && message.hasOwnProperty("columns"))
+ if (!$util.isInteger(message.columns))
+ return "columns: integer expected";
+ if (message.tiles != null && message.hasOwnProperty("tiles")) {
+ if (!Array.isArray(message.tiles))
+ return "tiles: array expected";
+ for (var i = 0; i < message.tiles.length; ++i) {
+ var error = $root.google.monitoring.dashboard.v1.MosaicLayout.Tile.verify(message.tiles[i]);
+ if (error)
+ return "tiles." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a MosaicLayout message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.MosaicLayout} MosaicLayout
+ */
+ MosaicLayout.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.MosaicLayout)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.MosaicLayout();
+ if (object.columns != null)
+ message.columns = object.columns | 0;
+ if (object.tiles) {
+ if (!Array.isArray(object.tiles))
+ throw TypeError(".google.monitoring.dashboard.v1.MosaicLayout.tiles: array expected");
+ message.tiles = [];
+ for (var i = 0; i < object.tiles.length; ++i) {
+ if (typeof object.tiles[i] !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.MosaicLayout.tiles: object expected");
+ message.tiles[i] = $root.google.monitoring.dashboard.v1.MosaicLayout.Tile.fromObject(object.tiles[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a MosaicLayout message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.MosaicLayout} message MosaicLayout
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ MosaicLayout.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.tiles = [];
+ if (options.defaults)
+ object.columns = 0;
+ if (message.columns != null && message.hasOwnProperty("columns"))
+ object.columns = message.columns;
+ if (message.tiles && message.tiles.length) {
+ object.tiles = [];
+ for (var j = 0; j < message.tiles.length; ++j)
+ object.tiles[j] = $root.google.monitoring.dashboard.v1.MosaicLayout.Tile.toObject(message.tiles[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this MosaicLayout to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ MosaicLayout.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for MosaicLayout
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ MosaicLayout.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.MosaicLayout";
+ };
+
+ MosaicLayout.Tile = (function() {
+
+ /**
+ * Properties of a Tile.
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @interface ITile
+ * @property {number|null} [xPos] Tile xPos
+ * @property {number|null} [yPos] Tile yPos
+ * @property {number|null} [width] Tile width
+ * @property {number|null} [height] Tile height
+ * @property {google.monitoring.dashboard.v1.IWidget|null} [widget] Tile widget
+ */
+
+ /**
+ * Constructs a new Tile.
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout
+ * @classdesc Represents a Tile.
+ * @implements ITile
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.MosaicLayout.ITile=} [properties] Properties to set
+ */
+ function Tile(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]];
+ }
+
+ /**
+ * Tile xPos.
+ * @member {number} xPos
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @instance
+ */
+ Tile.prototype.xPos = 0;
+
+ /**
+ * Tile yPos.
+ * @member {number} yPos
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @instance
+ */
+ Tile.prototype.yPos = 0;
+
+ /**
+ * Tile width.
+ * @member {number} width
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @instance
+ */
+ Tile.prototype.width = 0;
+
+ /**
+ * Tile height.
+ * @member {number} height
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @instance
+ */
+ Tile.prototype.height = 0;
+
+ /**
+ * Tile widget.
+ * @member {google.monitoring.dashboard.v1.IWidget|null|undefined} widget
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @instance
+ */
+ Tile.prototype.widget = null;
+
+ /**
+ * Creates a new Tile instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @static
+ * @param {google.monitoring.dashboard.v1.MosaicLayout.ITile=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.MosaicLayout.Tile} Tile instance
+ */
+ Tile.create = function create(properties) {
+ return new Tile(properties);
+ };
+
+ /**
+ * Encodes the specified Tile message. Does not implicitly {@link google.monitoring.dashboard.v1.MosaicLayout.Tile.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @static
+ * @param {google.monitoring.dashboard.v1.MosaicLayout.ITile} message Tile message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Tile.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.xPos != null && Object.hasOwnProperty.call(message, "xPos"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.xPos);
+ if (message.yPos != null && Object.hasOwnProperty.call(message, "yPos"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.yPos);
+ if (message.width != null && Object.hasOwnProperty.call(message, "width"))
+ writer.uint32(/* id 3, wireType 0 =*/24).int32(message.width);
+ if (message.height != null && Object.hasOwnProperty.call(message, "height"))
+ writer.uint32(/* id 4, wireType 0 =*/32).int32(message.height);
+ if (message.widget != null && Object.hasOwnProperty.call(message, "widget"))
+ $root.google.monitoring.dashboard.v1.Widget.encode(message.widget, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Tile message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.MosaicLayout.Tile.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @static
+ * @param {google.monitoring.dashboard.v1.MosaicLayout.ITile} message Tile message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Tile.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Tile message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.MosaicLayout.Tile} Tile
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Tile.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.monitoring.dashboard.v1.MosaicLayout.Tile();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.xPos = reader.int32();
+ break;
+ }
+ case 2: {
+ message.yPos = reader.int32();
+ break;
+ }
+ case 3: {
+ message.width = reader.int32();
+ break;
+ }
+ case 4: {
+ message.height = reader.int32();
+ break;
+ }
+ case 5: {
+ message.widget = $root.google.monitoring.dashboard.v1.Widget.decode(reader, reader.uint32());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Tile message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.MosaicLayout.Tile} Tile
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Tile.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Tile message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Tile.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.xPos != null && message.hasOwnProperty("xPos"))
+ if (!$util.isInteger(message.xPos))
+ return "xPos: integer expected";
+ if (message.yPos != null && message.hasOwnProperty("yPos"))
+ if (!$util.isInteger(message.yPos))
+ return "yPos: integer expected";
+ if (message.width != null && message.hasOwnProperty("width"))
+ if (!$util.isInteger(message.width))
+ return "width: integer expected";
+ if (message.height != null && message.hasOwnProperty("height"))
+ if (!$util.isInteger(message.height))
+ return "height: integer expected";
+ if (message.widget != null && message.hasOwnProperty("widget")) {
+ var error = $root.google.monitoring.dashboard.v1.Widget.verify(message.widget);
+ if (error)
+ return "widget." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a Tile message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.MosaicLayout.Tile} Tile
+ */
+ Tile.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.MosaicLayout.Tile)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.MosaicLayout.Tile();
+ if (object.xPos != null)
+ message.xPos = object.xPos | 0;
+ if (object.yPos != null)
+ message.yPos = object.yPos | 0;
+ if (object.width != null)
+ message.width = object.width | 0;
+ if (object.height != null)
+ message.height = object.height | 0;
+ if (object.widget != null) {
+ if (typeof object.widget !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.MosaicLayout.Tile.widget: object expected");
+ message.widget = $root.google.monitoring.dashboard.v1.Widget.fromObject(object.widget);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Tile message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @static
+ * @param {google.monitoring.dashboard.v1.MosaicLayout.Tile} message Tile
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Tile.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.xPos = 0;
+ object.yPos = 0;
+ object.width = 0;
+ object.height = 0;
+ object.widget = null;
+ }
+ if (message.xPos != null && message.hasOwnProperty("xPos"))
+ object.xPos = message.xPos;
+ if (message.yPos != null && message.hasOwnProperty("yPos"))
+ object.yPos = message.yPos;
+ if (message.width != null && message.hasOwnProperty("width"))
+ object.width = message.width;
+ if (message.height != null && message.hasOwnProperty("height"))
+ object.height = message.height;
+ if (message.widget != null && message.hasOwnProperty("widget"))
+ object.widget = $root.google.monitoring.dashboard.v1.Widget.toObject(message.widget, options);
+ return object;
+ };
+
+ /**
+ * Converts this Tile to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Tile.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for Tile
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.MosaicLayout.Tile
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Tile.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.MosaicLayout.Tile";
+ };
+
+ return Tile;
+ })();
+
+ return MosaicLayout;
+ })();
+
+ v1.RowLayout = (function() {
+
+ /**
+ * Properties of a RowLayout.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IRowLayout
+ * @property {Array.|null} [rows] RowLayout rows
+ */
+
+ /**
+ * Constructs a new RowLayout.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a RowLayout.
+ * @implements IRowLayout
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IRowLayout=} [properties] Properties to set
+ */
+ function RowLayout(properties) {
+ this.rows = [];
+ 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]];
+ }
+
+ /**
+ * RowLayout rows.
+ * @member {Array.} rows
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @instance
+ */
+ RowLayout.prototype.rows = $util.emptyArray;
+
+ /**
+ * Creates a new RowLayout instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.IRowLayout=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.RowLayout} RowLayout instance
+ */
+ RowLayout.create = function create(properties) {
+ return new RowLayout(properties);
+ };
+
+ /**
+ * Encodes the specified RowLayout message. Does not implicitly {@link google.monitoring.dashboard.v1.RowLayout.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.IRowLayout} message RowLayout message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ RowLayout.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.rows != null && message.rows.length)
+ for (var i = 0; i < message.rows.length; ++i)
+ $root.google.monitoring.dashboard.v1.RowLayout.Row.encode(message.rows[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified RowLayout message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.RowLayout.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.IRowLayout} message RowLayout message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ RowLayout.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a RowLayout message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.RowLayout} RowLayout
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ RowLayout.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.monitoring.dashboard.v1.RowLayout();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ if (!(message.rows && message.rows.length))
+ message.rows = [];
+ message.rows.push($root.google.monitoring.dashboard.v1.RowLayout.Row.decode(reader, reader.uint32()));
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a RowLayout message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.RowLayout} RowLayout
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ RowLayout.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a RowLayout message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ RowLayout.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.rows != null && message.hasOwnProperty("rows")) {
+ if (!Array.isArray(message.rows))
+ return "rows: array expected";
+ for (var i = 0; i < message.rows.length; ++i) {
+ var error = $root.google.monitoring.dashboard.v1.RowLayout.Row.verify(message.rows[i]);
+ if (error)
+ return "rows." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a RowLayout message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.RowLayout} RowLayout
+ */
+ RowLayout.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.RowLayout)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.RowLayout();
+ if (object.rows) {
+ if (!Array.isArray(object.rows))
+ throw TypeError(".google.monitoring.dashboard.v1.RowLayout.rows: array expected");
+ message.rows = [];
+ for (var i = 0; i < object.rows.length; ++i) {
+ if (typeof object.rows[i] !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.RowLayout.rows: object expected");
+ message.rows[i] = $root.google.monitoring.dashboard.v1.RowLayout.Row.fromObject(object.rows[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a RowLayout message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.RowLayout} message RowLayout
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ RowLayout.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.rows = [];
+ if (message.rows && message.rows.length) {
+ object.rows = [];
+ for (var j = 0; j < message.rows.length; ++j)
+ object.rows[j] = $root.google.monitoring.dashboard.v1.RowLayout.Row.toObject(message.rows[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this RowLayout to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ RowLayout.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for RowLayout
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ RowLayout.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.RowLayout";
+ };
+
+ RowLayout.Row = (function() {
+
+ /**
+ * Properties of a Row.
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @interface IRow
+ * @property {number|Long|null} [weight] Row weight
+ * @property {Array.|null} [widgets] Row widgets
+ */
+
+ /**
+ * Constructs a new Row.
+ * @memberof google.monitoring.dashboard.v1.RowLayout
+ * @classdesc Represents a Row.
+ * @implements IRow
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.RowLayout.IRow=} [properties] Properties to set
+ */
+ function Row(properties) {
+ this.widgets = [];
+ 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]];
+ }
+
+ /**
+ * Row weight.
+ * @member {number|Long} weight
+ * @memberof google.monitoring.dashboard.v1.RowLayout.Row
+ * @instance
+ */
+ Row.prototype.weight = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * Row widgets.
+ * @member {Array.} widgets
+ * @memberof google.monitoring.dashboard.v1.RowLayout.Row
+ * @instance
+ */
+ Row.prototype.widgets = $util.emptyArray;
+
+ /**
+ * Creates a new Row instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.RowLayout.Row
+ * @static
+ * @param {google.monitoring.dashboard.v1.RowLayout.IRow=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.RowLayout.Row} Row instance
+ */
+ Row.create = function create(properties) {
+ return new Row(properties);
+ };
+
+ /**
+ * Encodes the specified Row message. Does not implicitly {@link google.monitoring.dashboard.v1.RowLayout.Row.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.RowLayout.Row
+ * @static
+ * @param {google.monitoring.dashboard.v1.RowLayout.IRow} message Row message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Row.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.weight != null && Object.hasOwnProperty.call(message, "weight"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int64(message.weight);
+ if (message.widgets != null && message.widgets.length)
+ for (var i = 0; i < message.widgets.length; ++i)
+ $root.google.monitoring.dashboard.v1.Widget.encode(message.widgets[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Row message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.RowLayout.Row.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.RowLayout.Row
+ * @static
+ * @param {google.monitoring.dashboard.v1.RowLayout.IRow} message Row message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Row.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Row message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.RowLayout.Row
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.RowLayout.Row} Row
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Row.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.monitoring.dashboard.v1.RowLayout.Row();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.weight = reader.int64();
+ break;
+ }
+ case 2: {
+ if (!(message.widgets && message.widgets.length))
+ message.widgets = [];
+ message.widgets.push($root.google.monitoring.dashboard.v1.Widget.decode(reader, reader.uint32()));
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Row message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.RowLayout.Row
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.RowLayout.Row} Row
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Row.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Row message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.RowLayout.Row
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Row.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.weight != null && message.hasOwnProperty("weight"))
+ if (!$util.isInteger(message.weight) && !(message.weight && $util.isInteger(message.weight.low) && $util.isInteger(message.weight.high)))
+ return "weight: integer|Long expected";
+ if (message.widgets != null && message.hasOwnProperty("widgets")) {
+ if (!Array.isArray(message.widgets))
+ return "widgets: array expected";
+ for (var i = 0; i < message.widgets.length; ++i) {
+ var error = $root.google.monitoring.dashboard.v1.Widget.verify(message.widgets[i]);
+ if (error)
+ return "widgets." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a Row message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.RowLayout.Row
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.RowLayout.Row} Row
+ */
+ Row.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.RowLayout.Row)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.RowLayout.Row();
+ if (object.weight != null)
+ if ($util.Long)
+ (message.weight = $util.Long.fromValue(object.weight)).unsigned = false;
+ else if (typeof object.weight === "string")
+ message.weight = parseInt(object.weight, 10);
+ else if (typeof object.weight === "number")
+ message.weight = object.weight;
+ else if (typeof object.weight === "object")
+ message.weight = new $util.LongBits(object.weight.low >>> 0, object.weight.high >>> 0).toNumber();
+ if (object.widgets) {
+ if (!Array.isArray(object.widgets))
+ throw TypeError(".google.monitoring.dashboard.v1.RowLayout.Row.widgets: array expected");
+ message.widgets = [];
+ for (var i = 0; i < object.widgets.length; ++i) {
+ if (typeof object.widgets[i] !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.RowLayout.Row.widgets: object expected");
+ message.widgets[i] = $root.google.monitoring.dashboard.v1.Widget.fromObject(object.widgets[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Row message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.RowLayout.Row
+ * @static
+ * @param {google.monitoring.dashboard.v1.RowLayout.Row} message Row
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Row.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.widgets = [];
+ if (options.defaults)
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, false);
+ object.weight = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.weight = options.longs === String ? "0" : 0;
+ if (message.weight != null && message.hasOwnProperty("weight"))
+ if (typeof message.weight === "number")
+ object.weight = options.longs === String ? String(message.weight) : message.weight;
+ else
+ object.weight = options.longs === String ? $util.Long.prototype.toString.call(message.weight) : options.longs === Number ? new $util.LongBits(message.weight.low >>> 0, message.weight.high >>> 0).toNumber() : message.weight;
+ if (message.widgets && message.widgets.length) {
+ object.widgets = [];
+ for (var j = 0; j < message.widgets.length; ++j)
+ object.widgets[j] = $root.google.monitoring.dashboard.v1.Widget.toObject(message.widgets[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this Row to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.RowLayout.Row
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Row.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for Row
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.RowLayout.Row
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Row.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.RowLayout.Row";
+ };
+
+ return Row;
+ })();
+
+ return RowLayout;
+ })();
+
+ v1.ColumnLayout = (function() {
+
+ /**
+ * Properties of a ColumnLayout.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IColumnLayout
+ * @property {Array.|null} [columns] ColumnLayout columns
+ */
+
+ /**
+ * Constructs a new ColumnLayout.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a ColumnLayout.
+ * @implements IColumnLayout
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IColumnLayout=} [properties] Properties to set
+ */
+ function ColumnLayout(properties) {
+ this.columns = [];
+ 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]];
+ }
+
+ /**
+ * ColumnLayout columns.
+ * @member {Array.} columns
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @instance
+ */
+ ColumnLayout.prototype.columns = $util.emptyArray;
+
+ /**
+ * Creates a new ColumnLayout instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.IColumnLayout=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.ColumnLayout} ColumnLayout instance
+ */
+ ColumnLayout.create = function create(properties) {
+ return new ColumnLayout(properties);
+ };
+
+ /**
+ * Encodes the specified ColumnLayout message. Does not implicitly {@link google.monitoring.dashboard.v1.ColumnLayout.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.IColumnLayout} message ColumnLayout message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ColumnLayout.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.columns != null && message.columns.length)
+ for (var i = 0; i < message.columns.length; ++i)
+ $root.google.monitoring.dashboard.v1.ColumnLayout.Column.encode(message.columns[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ColumnLayout message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.ColumnLayout.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.IColumnLayout} message ColumnLayout message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ColumnLayout.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ColumnLayout message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.ColumnLayout} ColumnLayout
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ColumnLayout.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.monitoring.dashboard.v1.ColumnLayout();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ if (!(message.columns && message.columns.length))
+ message.columns = [];
+ message.columns.push($root.google.monitoring.dashboard.v1.ColumnLayout.Column.decode(reader, reader.uint32()));
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ColumnLayout message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.ColumnLayout} ColumnLayout
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ColumnLayout.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ColumnLayout message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ColumnLayout.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.columns != null && message.hasOwnProperty("columns")) {
+ if (!Array.isArray(message.columns))
+ return "columns: array expected";
+ for (var i = 0; i < message.columns.length; ++i) {
+ var error = $root.google.monitoring.dashboard.v1.ColumnLayout.Column.verify(message.columns[i]);
+ if (error)
+ return "columns." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a ColumnLayout message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.ColumnLayout} ColumnLayout
+ */
+ ColumnLayout.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.ColumnLayout)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.ColumnLayout();
+ if (object.columns) {
+ if (!Array.isArray(object.columns))
+ throw TypeError(".google.monitoring.dashboard.v1.ColumnLayout.columns: array expected");
+ message.columns = [];
+ for (var i = 0; i < object.columns.length; ++i) {
+ if (typeof object.columns[i] !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.ColumnLayout.columns: object expected");
+ message.columns[i] = $root.google.monitoring.dashboard.v1.ColumnLayout.Column.fromObject(object.columns[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ColumnLayout message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @static
+ * @param {google.monitoring.dashboard.v1.ColumnLayout} message ColumnLayout
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ColumnLayout.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.columns = [];
+ if (message.columns && message.columns.length) {
+ object.columns = [];
+ for (var j = 0; j < message.columns.length; ++j)
+ object.columns[j] = $root.google.monitoring.dashboard.v1.ColumnLayout.Column.toObject(message.columns[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this ColumnLayout to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ColumnLayout.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for ColumnLayout
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ ColumnLayout.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.ColumnLayout";
+ };
+
+ ColumnLayout.Column = (function() {
+
+ /**
+ * Properties of a Column.
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @interface IColumn
+ * @property {number|Long|null} [weight] Column weight
+ * @property {Array.|null} [widgets] Column widgets
+ */
+
+ /**
+ * Constructs a new Column.
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout
+ * @classdesc Represents a Column.
+ * @implements IColumn
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.ColumnLayout.IColumn=} [properties] Properties to set
+ */
+ function Column(properties) {
+ this.widgets = [];
+ 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]];
+ }
+
+ /**
+ * Column weight.
+ * @member {number|Long} weight
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout.Column
+ * @instance
+ */
+ Column.prototype.weight = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * Column widgets.
+ * @member {Array.} widgets
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout.Column
+ * @instance
+ */
+ Column.prototype.widgets = $util.emptyArray;
+
+ /**
+ * Creates a new Column instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout.Column
+ * @static
+ * @param {google.monitoring.dashboard.v1.ColumnLayout.IColumn=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.ColumnLayout.Column} Column instance
+ */
+ Column.create = function create(properties) {
+ return new Column(properties);
+ };
+
+ /**
+ * Encodes the specified Column message. Does not implicitly {@link google.monitoring.dashboard.v1.ColumnLayout.Column.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout.Column
+ * @static
+ * @param {google.monitoring.dashboard.v1.ColumnLayout.IColumn} message Column message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Column.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.weight != null && Object.hasOwnProperty.call(message, "weight"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int64(message.weight);
+ if (message.widgets != null && message.widgets.length)
+ for (var i = 0; i < message.widgets.length; ++i)
+ $root.google.monitoring.dashboard.v1.Widget.encode(message.widgets[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Column message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.ColumnLayout.Column.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout.Column
+ * @static
+ * @param {google.monitoring.dashboard.v1.ColumnLayout.IColumn} message Column message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Column.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Column message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout.Column
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.ColumnLayout.Column} Column
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Column.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.monitoring.dashboard.v1.ColumnLayout.Column();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.weight = reader.int64();
+ break;
+ }
+ case 2: {
+ if (!(message.widgets && message.widgets.length))
+ message.widgets = [];
+ message.widgets.push($root.google.monitoring.dashboard.v1.Widget.decode(reader, reader.uint32()));
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Column message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout.Column
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.ColumnLayout.Column} Column
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Column.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Column message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout.Column
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Column.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.weight != null && message.hasOwnProperty("weight"))
+ if (!$util.isInteger(message.weight) && !(message.weight && $util.isInteger(message.weight.low) && $util.isInteger(message.weight.high)))
+ return "weight: integer|Long expected";
+ if (message.widgets != null && message.hasOwnProperty("widgets")) {
+ if (!Array.isArray(message.widgets))
+ return "widgets: array expected";
+ for (var i = 0; i < message.widgets.length; ++i) {
+ var error = $root.google.monitoring.dashboard.v1.Widget.verify(message.widgets[i]);
+ if (error)
+ return "widgets." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a Column message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout.Column
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.ColumnLayout.Column} Column
+ */
+ Column.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.ColumnLayout.Column)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.ColumnLayout.Column();
+ if (object.weight != null)
+ if ($util.Long)
+ (message.weight = $util.Long.fromValue(object.weight)).unsigned = false;
+ else if (typeof object.weight === "string")
+ message.weight = parseInt(object.weight, 10);
+ else if (typeof object.weight === "number")
+ message.weight = object.weight;
+ else if (typeof object.weight === "object")
+ message.weight = new $util.LongBits(object.weight.low >>> 0, object.weight.high >>> 0).toNumber();
+ if (object.widgets) {
+ if (!Array.isArray(object.widgets))
+ throw TypeError(".google.monitoring.dashboard.v1.ColumnLayout.Column.widgets: array expected");
+ message.widgets = [];
+ for (var i = 0; i < object.widgets.length; ++i) {
+ if (typeof object.widgets[i] !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.ColumnLayout.Column.widgets: object expected");
+ message.widgets[i] = $root.google.monitoring.dashboard.v1.Widget.fromObject(object.widgets[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Column message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout.Column
+ * @static
+ * @param {google.monitoring.dashboard.v1.ColumnLayout.Column} message Column
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Column.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.widgets = [];
+ if (options.defaults)
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, false);
+ object.weight = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.weight = options.longs === String ? "0" : 0;
+ if (message.weight != null && message.hasOwnProperty("weight"))
+ if (typeof message.weight === "number")
+ object.weight = options.longs === String ? String(message.weight) : message.weight;
+ else
+ object.weight = options.longs === String ? $util.Long.prototype.toString.call(message.weight) : options.longs === Number ? new $util.LongBits(message.weight.low >>> 0, message.weight.high >>> 0).toNumber() : message.weight;
+ if (message.widgets && message.widgets.length) {
+ object.widgets = [];
+ for (var j = 0; j < message.widgets.length; ++j)
+ object.widgets[j] = $root.google.monitoring.dashboard.v1.Widget.toObject(message.widgets[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this Column to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout.Column
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Column.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for Column
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.ColumnLayout.Column
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Column.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.ColumnLayout.Column";
+ };
+
+ return Column;
+ })();
+
+ return ColumnLayout;
+ })();
+
+ v1.Widget = (function() {
+
+ /**
+ * Properties of a Widget.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IWidget
+ * @property {string|null} [title] Widget title
+ * @property {google.monitoring.dashboard.v1.IXyChart|null} [xyChart] Widget xyChart
+ * @property {google.monitoring.dashboard.v1.IScorecard|null} [scorecard] Widget scorecard
+ * @property {google.monitoring.dashboard.v1.IText|null} [text] Widget text
+ * @property {google.protobuf.IEmpty|null} [blank] Widget blank
+ * @property {google.monitoring.dashboard.v1.IAlertChart|null} [alertChart] Widget alertChart
+ * @property {google.monitoring.dashboard.v1.ITimeSeriesTable|null} [timeSeriesTable] Widget timeSeriesTable
+ * @property {google.monitoring.dashboard.v1.ICollapsibleGroup|null} [collapsibleGroup] Widget collapsibleGroup
+ * @property {google.monitoring.dashboard.v1.ILogsPanel|null} [logsPanel] Widget logsPanel
+ */
+
+ /**
+ * Constructs a new Widget.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a Widget.
+ * @implements IWidget
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IWidget=} [properties] Properties to set
+ */
+ function Widget(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]];
+ }
+
+ /**
+ * Widget title.
+ * @member {string} title
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @instance
+ */
+ Widget.prototype.title = "";
+
+ /**
+ * Widget xyChart.
+ * @member {google.monitoring.dashboard.v1.IXyChart|null|undefined} xyChart
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @instance
+ */
+ Widget.prototype.xyChart = null;
+
+ /**
+ * Widget scorecard.
+ * @member {google.monitoring.dashboard.v1.IScorecard|null|undefined} scorecard
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @instance
+ */
+ Widget.prototype.scorecard = null;
+
+ /**
+ * Widget text.
+ * @member {google.monitoring.dashboard.v1.IText|null|undefined} text
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @instance
+ */
+ Widget.prototype.text = null;
+
+ /**
+ * Widget blank.
+ * @member {google.protobuf.IEmpty|null|undefined} blank
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @instance
+ */
+ Widget.prototype.blank = null;
+
+ /**
+ * Widget alertChart.
+ * @member {google.monitoring.dashboard.v1.IAlertChart|null|undefined} alertChart
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @instance
+ */
+ Widget.prototype.alertChart = null;
+
+ /**
+ * Widget timeSeriesTable.
+ * @member {google.monitoring.dashboard.v1.ITimeSeriesTable|null|undefined} timeSeriesTable
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @instance
+ */
+ Widget.prototype.timeSeriesTable = null;
+
+ /**
+ * Widget collapsibleGroup.
+ * @member {google.monitoring.dashboard.v1.ICollapsibleGroup|null|undefined} collapsibleGroup
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @instance
+ */
+ Widget.prototype.collapsibleGroup = null;
+
+ /**
+ * Widget logsPanel.
+ * @member {google.monitoring.dashboard.v1.ILogsPanel|null|undefined} logsPanel
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @instance
+ */
+ Widget.prototype.logsPanel = null;
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * Widget content.
+ * @member {"xyChart"|"scorecard"|"text"|"blank"|"alertChart"|"timeSeriesTable"|"collapsibleGroup"|"logsPanel"|undefined} content
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @instance
+ */
+ Object.defineProperty(Widget.prototype, "content", {
+ get: $util.oneOfGetter($oneOfFields = ["xyChart", "scorecard", "text", "blank", "alertChart", "timeSeriesTable", "collapsibleGroup", "logsPanel"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new Widget instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @static
+ * @param {google.monitoring.dashboard.v1.IWidget=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.Widget} Widget instance
+ */
+ Widget.create = function create(properties) {
+ return new Widget(properties);
+ };
+
+ /**
+ * Encodes the specified Widget message. Does not implicitly {@link google.monitoring.dashboard.v1.Widget.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @static
+ * @param {google.monitoring.dashboard.v1.IWidget} message Widget message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Widget.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.title != null && Object.hasOwnProperty.call(message, "title"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.title);
+ if (message.xyChart != null && Object.hasOwnProperty.call(message, "xyChart"))
+ $root.google.monitoring.dashboard.v1.XyChart.encode(message.xyChart, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.scorecard != null && Object.hasOwnProperty.call(message, "scorecard"))
+ $root.google.monitoring.dashboard.v1.Scorecard.encode(message.scorecard, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.text != null && Object.hasOwnProperty.call(message, "text"))
+ $root.google.monitoring.dashboard.v1.Text.encode(message.text, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ if (message.blank != null && Object.hasOwnProperty.call(message, "blank"))
+ $root.google.protobuf.Empty.encode(message.blank, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
+ if (message.alertChart != null && Object.hasOwnProperty.call(message, "alertChart"))
+ $root.google.monitoring.dashboard.v1.AlertChart.encode(message.alertChart, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();
+ if (message.timeSeriesTable != null && Object.hasOwnProperty.call(message, "timeSeriesTable"))
+ $root.google.monitoring.dashboard.v1.TimeSeriesTable.encode(message.timeSeriesTable, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();
+ if (message.collapsibleGroup != null && Object.hasOwnProperty.call(message, "collapsibleGroup"))
+ $root.google.monitoring.dashboard.v1.CollapsibleGroup.encode(message.collapsibleGroup, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();
+ if (message.logsPanel != null && Object.hasOwnProperty.call(message, "logsPanel"))
+ $root.google.monitoring.dashboard.v1.LogsPanel.encode(message.logsPanel, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Widget message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Widget.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @static
+ * @param {google.monitoring.dashboard.v1.IWidget} message Widget message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Widget.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Widget message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.Widget} Widget
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Widget.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.monitoring.dashboard.v1.Widget();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.title = reader.string();
+ break;
+ }
+ case 2: {
+ message.xyChart = $root.google.monitoring.dashboard.v1.XyChart.decode(reader, reader.uint32());
+ break;
+ }
+ case 3: {
+ message.scorecard = $root.google.monitoring.dashboard.v1.Scorecard.decode(reader, reader.uint32());
+ break;
+ }
+ case 4: {
+ message.text = $root.google.monitoring.dashboard.v1.Text.decode(reader, reader.uint32());
+ break;
+ }
+ case 5: {
+ message.blank = $root.google.protobuf.Empty.decode(reader, reader.uint32());
+ break;
+ }
+ case 7: {
+ message.alertChart = $root.google.monitoring.dashboard.v1.AlertChart.decode(reader, reader.uint32());
+ break;
+ }
+ case 8: {
+ message.timeSeriesTable = $root.google.monitoring.dashboard.v1.TimeSeriesTable.decode(reader, reader.uint32());
+ break;
+ }
+ case 9: {
+ message.collapsibleGroup = $root.google.monitoring.dashboard.v1.CollapsibleGroup.decode(reader, reader.uint32());
+ break;
+ }
+ case 10: {
+ message.logsPanel = $root.google.monitoring.dashboard.v1.LogsPanel.decode(reader, reader.uint32());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Widget message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.Widget} Widget
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Widget.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Widget message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Widget.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.title != null && message.hasOwnProperty("title"))
+ if (!$util.isString(message.title))
+ return "title: string expected";
+ if (message.xyChart != null && message.hasOwnProperty("xyChart")) {
+ properties.content = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.XyChart.verify(message.xyChart);
+ if (error)
+ return "xyChart." + error;
+ }
+ }
+ if (message.scorecard != null && message.hasOwnProperty("scorecard")) {
+ if (properties.content === 1)
+ return "content: multiple values";
+ properties.content = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.Scorecard.verify(message.scorecard);
+ if (error)
+ return "scorecard." + error;
+ }
+ }
+ if (message.text != null && message.hasOwnProperty("text")) {
+ if (properties.content === 1)
+ return "content: multiple values";
+ properties.content = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.Text.verify(message.text);
+ if (error)
+ return "text." + error;
+ }
+ }
+ if (message.blank != null && message.hasOwnProperty("blank")) {
+ if (properties.content === 1)
+ return "content: multiple values";
+ properties.content = 1;
+ {
+ var error = $root.google.protobuf.Empty.verify(message.blank);
+ if (error)
+ return "blank." + error;
+ }
+ }
+ if (message.alertChart != null && message.hasOwnProperty("alertChart")) {
+ if (properties.content === 1)
+ return "content: multiple values";
+ properties.content = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.AlertChart.verify(message.alertChart);
+ if (error)
+ return "alertChart." + error;
+ }
+ }
+ if (message.timeSeriesTable != null && message.hasOwnProperty("timeSeriesTable")) {
+ if (properties.content === 1)
+ return "content: multiple values";
+ properties.content = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.TimeSeriesTable.verify(message.timeSeriesTable);
+ if (error)
+ return "timeSeriesTable." + error;
+ }
+ }
+ if (message.collapsibleGroup != null && message.hasOwnProperty("collapsibleGroup")) {
+ if (properties.content === 1)
+ return "content: multiple values";
+ properties.content = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.CollapsibleGroup.verify(message.collapsibleGroup);
+ if (error)
+ return "collapsibleGroup." + error;
+ }
+ }
+ if (message.logsPanel != null && message.hasOwnProperty("logsPanel")) {
+ if (properties.content === 1)
+ return "content: multiple values";
+ properties.content = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.LogsPanel.verify(message.logsPanel);
+ if (error)
+ return "logsPanel." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a Widget message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.Widget} Widget
+ */
+ Widget.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.Widget)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.Widget();
+ if (object.title != null)
+ message.title = String(object.title);
+ if (object.xyChart != null) {
+ if (typeof object.xyChart !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Widget.xyChart: object expected");
+ message.xyChart = $root.google.monitoring.dashboard.v1.XyChart.fromObject(object.xyChart);
+ }
+ if (object.scorecard != null) {
+ if (typeof object.scorecard !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Widget.scorecard: object expected");
+ message.scorecard = $root.google.monitoring.dashboard.v1.Scorecard.fromObject(object.scorecard);
+ }
+ if (object.text != null) {
+ if (typeof object.text !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Widget.text: object expected");
+ message.text = $root.google.monitoring.dashboard.v1.Text.fromObject(object.text);
+ }
+ if (object.blank != null) {
+ if (typeof object.blank !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Widget.blank: object expected");
+ message.blank = $root.google.protobuf.Empty.fromObject(object.blank);
+ }
+ if (object.alertChart != null) {
+ if (typeof object.alertChart !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Widget.alertChart: object expected");
+ message.alertChart = $root.google.monitoring.dashboard.v1.AlertChart.fromObject(object.alertChart);
+ }
+ if (object.timeSeriesTable != null) {
+ if (typeof object.timeSeriesTable !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Widget.timeSeriesTable: object expected");
+ message.timeSeriesTable = $root.google.monitoring.dashboard.v1.TimeSeriesTable.fromObject(object.timeSeriesTable);
+ }
+ if (object.collapsibleGroup != null) {
+ if (typeof object.collapsibleGroup !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Widget.collapsibleGroup: object expected");
+ message.collapsibleGroup = $root.google.monitoring.dashboard.v1.CollapsibleGroup.fromObject(object.collapsibleGroup);
+ }
+ if (object.logsPanel != null) {
+ if (typeof object.logsPanel !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Widget.logsPanel: object expected");
+ message.logsPanel = $root.google.monitoring.dashboard.v1.LogsPanel.fromObject(object.logsPanel);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Widget message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @static
+ * @param {google.monitoring.dashboard.v1.Widget} message Widget
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Widget.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.title = "";
+ if (message.title != null && message.hasOwnProperty("title"))
+ object.title = message.title;
+ if (message.xyChart != null && message.hasOwnProperty("xyChart")) {
+ object.xyChart = $root.google.monitoring.dashboard.v1.XyChart.toObject(message.xyChart, options);
+ if (options.oneofs)
+ object.content = "xyChart";
+ }
+ if (message.scorecard != null && message.hasOwnProperty("scorecard")) {
+ object.scorecard = $root.google.monitoring.dashboard.v1.Scorecard.toObject(message.scorecard, options);
+ if (options.oneofs)
+ object.content = "scorecard";
+ }
+ if (message.text != null && message.hasOwnProperty("text")) {
+ object.text = $root.google.monitoring.dashboard.v1.Text.toObject(message.text, options);
+ if (options.oneofs)
+ object.content = "text";
+ }
+ if (message.blank != null && message.hasOwnProperty("blank")) {
+ object.blank = $root.google.protobuf.Empty.toObject(message.blank, options);
+ if (options.oneofs)
+ object.content = "blank";
+ }
+ if (message.alertChart != null && message.hasOwnProperty("alertChart")) {
+ object.alertChart = $root.google.monitoring.dashboard.v1.AlertChart.toObject(message.alertChart, options);
+ if (options.oneofs)
+ object.content = "alertChart";
+ }
+ if (message.timeSeriesTable != null && message.hasOwnProperty("timeSeriesTable")) {
+ object.timeSeriesTable = $root.google.monitoring.dashboard.v1.TimeSeriesTable.toObject(message.timeSeriesTable, options);
+ if (options.oneofs)
+ object.content = "timeSeriesTable";
+ }
+ if (message.collapsibleGroup != null && message.hasOwnProperty("collapsibleGroup")) {
+ object.collapsibleGroup = $root.google.monitoring.dashboard.v1.CollapsibleGroup.toObject(message.collapsibleGroup, options);
+ if (options.oneofs)
+ object.content = "collapsibleGroup";
+ }
+ if (message.logsPanel != null && message.hasOwnProperty("logsPanel")) {
+ object.logsPanel = $root.google.monitoring.dashboard.v1.LogsPanel.toObject(message.logsPanel, options);
+ if (options.oneofs)
+ object.content = "logsPanel";
+ }
+ return object;
+ };
+
+ /**
+ * Converts this Widget to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Widget.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for Widget
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.Widget
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Widget.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.Widget";
+ };
+
+ return Widget;
+ })();
+
+ v1.LogsPanel = (function() {
+
+ /**
+ * Properties of a LogsPanel.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface ILogsPanel
+ * @property {string|null} [filter] LogsPanel filter
+ * @property {Array.|null} [resourceNames] LogsPanel resourceNames
+ */
+
+ /**
+ * Constructs a new LogsPanel.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a LogsPanel.
+ * @implements ILogsPanel
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.ILogsPanel=} [properties] Properties to set
+ */
+ function LogsPanel(properties) {
+ this.resourceNames = [];
+ 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]];
+ }
+
+ /**
+ * LogsPanel filter.
+ * @member {string} filter
+ * @memberof google.monitoring.dashboard.v1.LogsPanel
+ * @instance
+ */
+ LogsPanel.prototype.filter = "";
+
+ /**
+ * LogsPanel resourceNames.
+ * @member {Array.} resourceNames
+ * @memberof google.monitoring.dashboard.v1.LogsPanel
+ * @instance
+ */
+ LogsPanel.prototype.resourceNames = $util.emptyArray;
+
+ /**
+ * Creates a new LogsPanel instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.LogsPanel
+ * @static
+ * @param {google.monitoring.dashboard.v1.ILogsPanel=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.LogsPanel} LogsPanel instance
+ */
+ LogsPanel.create = function create(properties) {
+ return new LogsPanel(properties);
+ };
+
+ /**
+ * Encodes the specified LogsPanel message. Does not implicitly {@link google.monitoring.dashboard.v1.LogsPanel.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.LogsPanel
+ * @static
+ * @param {google.monitoring.dashboard.v1.ILogsPanel} message LogsPanel message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ LogsPanel.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.filter != null && Object.hasOwnProperty.call(message, "filter"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.filter);
+ if (message.resourceNames != null && message.resourceNames.length)
+ for (var i = 0; i < message.resourceNames.length; ++i)
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.resourceNames[i]);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified LogsPanel message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.LogsPanel.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.LogsPanel
+ * @static
+ * @param {google.monitoring.dashboard.v1.ILogsPanel} message LogsPanel message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ LogsPanel.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a LogsPanel message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.LogsPanel
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.LogsPanel} LogsPanel
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ LogsPanel.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.monitoring.dashboard.v1.LogsPanel();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.filter = reader.string();
+ break;
+ }
+ case 2: {
+ if (!(message.resourceNames && message.resourceNames.length))
+ message.resourceNames = [];
+ message.resourceNames.push(reader.string());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a LogsPanel message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.LogsPanel
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.LogsPanel} LogsPanel
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ LogsPanel.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a LogsPanel message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.LogsPanel
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ LogsPanel.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.filter != null && message.hasOwnProperty("filter"))
+ if (!$util.isString(message.filter))
+ return "filter: string expected";
+ if (message.resourceNames != null && message.hasOwnProperty("resourceNames")) {
+ if (!Array.isArray(message.resourceNames))
+ return "resourceNames: array expected";
+ for (var i = 0; i < message.resourceNames.length; ++i)
+ if (!$util.isString(message.resourceNames[i]))
+ return "resourceNames: string[] expected";
+ }
+ return null;
+ };
+
+ /**
+ * Creates a LogsPanel message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.LogsPanel
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.LogsPanel} LogsPanel
+ */
+ LogsPanel.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.LogsPanel)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.LogsPanel();
+ if (object.filter != null)
+ message.filter = String(object.filter);
+ if (object.resourceNames) {
+ if (!Array.isArray(object.resourceNames))
+ throw TypeError(".google.monitoring.dashboard.v1.LogsPanel.resourceNames: array expected");
+ message.resourceNames = [];
+ for (var i = 0; i < object.resourceNames.length; ++i)
+ message.resourceNames[i] = String(object.resourceNames[i]);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a LogsPanel message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.LogsPanel
+ * @static
+ * @param {google.monitoring.dashboard.v1.LogsPanel} message LogsPanel
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ LogsPanel.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.resourceNames = [];
+ if (options.defaults)
+ object.filter = "";
+ if (message.filter != null && message.hasOwnProperty("filter"))
+ object.filter = message.filter;
+ if (message.resourceNames && message.resourceNames.length) {
+ object.resourceNames = [];
+ for (var j = 0; j < message.resourceNames.length; ++j)
+ object.resourceNames[j] = message.resourceNames[j];
+ }
+ return object;
+ };
+
+ /**
+ * Converts this LogsPanel to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.LogsPanel
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ LogsPanel.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for LogsPanel
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.LogsPanel
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ LogsPanel.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.LogsPanel";
+ };
+
+ return LogsPanel;
+ })();
+
+ v1.Scorecard = (function() {
+
+ /**
+ * Properties of a Scorecard.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IScorecard
+ * @property {google.monitoring.dashboard.v1.ITimeSeriesQuery|null} [timeSeriesQuery] Scorecard timeSeriesQuery
+ * @property {google.monitoring.dashboard.v1.Scorecard.IGaugeView|null} [gaugeView] Scorecard gaugeView
+ * @property {google.monitoring.dashboard.v1.Scorecard.ISparkChartView|null} [sparkChartView] Scorecard sparkChartView
+ * @property {Array.|null} [thresholds] Scorecard thresholds
+ */
+
+ /**
+ * Constructs a new Scorecard.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a Scorecard.
+ * @implements IScorecard
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IScorecard=} [properties] Properties to set
+ */
+ function Scorecard(properties) {
+ this.thresholds = [];
+ 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]];
+ }
+
+ /**
+ * Scorecard timeSeriesQuery.
+ * @member {google.monitoring.dashboard.v1.ITimeSeriesQuery|null|undefined} timeSeriesQuery
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @instance
+ */
+ Scorecard.prototype.timeSeriesQuery = null;
+
+ /**
+ * Scorecard gaugeView.
+ * @member {google.monitoring.dashboard.v1.Scorecard.IGaugeView|null|undefined} gaugeView
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @instance
+ */
+ Scorecard.prototype.gaugeView = null;
+
+ /**
+ * Scorecard sparkChartView.
+ * @member {google.monitoring.dashboard.v1.Scorecard.ISparkChartView|null|undefined} sparkChartView
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @instance
+ */
+ Scorecard.prototype.sparkChartView = null;
+
+ /**
+ * Scorecard thresholds.
+ * @member {Array.} thresholds
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @instance
+ */
+ Scorecard.prototype.thresholds = $util.emptyArray;
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * Scorecard dataView.
+ * @member {"gaugeView"|"sparkChartView"|undefined} dataView
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @instance
+ */
+ Object.defineProperty(Scorecard.prototype, "dataView", {
+ get: $util.oneOfGetter($oneOfFields = ["gaugeView", "sparkChartView"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new Scorecard instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @static
+ * @param {google.monitoring.dashboard.v1.IScorecard=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.Scorecard} Scorecard instance
+ */
+ Scorecard.create = function create(properties) {
+ return new Scorecard(properties);
+ };
+
+ /**
+ * Encodes the specified Scorecard message. Does not implicitly {@link google.monitoring.dashboard.v1.Scorecard.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @static
+ * @param {google.monitoring.dashboard.v1.IScorecard} message Scorecard message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Scorecard.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.timeSeriesQuery != null && Object.hasOwnProperty.call(message, "timeSeriesQuery"))
+ $root.google.monitoring.dashboard.v1.TimeSeriesQuery.encode(message.timeSeriesQuery, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.gaugeView != null && Object.hasOwnProperty.call(message, "gaugeView"))
+ $root.google.monitoring.dashboard.v1.Scorecard.GaugeView.encode(message.gaugeView, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ if (message.sparkChartView != null && Object.hasOwnProperty.call(message, "sparkChartView"))
+ $root.google.monitoring.dashboard.v1.Scorecard.SparkChartView.encode(message.sparkChartView, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
+ if (message.thresholds != null && message.thresholds.length)
+ for (var i = 0; i < message.thresholds.length; ++i)
+ $root.google.monitoring.dashboard.v1.Threshold.encode(message.thresholds[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Scorecard message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Scorecard.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @static
+ * @param {google.monitoring.dashboard.v1.IScorecard} message Scorecard message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Scorecard.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Scorecard message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.Scorecard} Scorecard
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Scorecard.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.monitoring.dashboard.v1.Scorecard();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.timeSeriesQuery = $root.google.monitoring.dashboard.v1.TimeSeriesQuery.decode(reader, reader.uint32());
+ break;
+ }
+ case 4: {
+ message.gaugeView = $root.google.monitoring.dashboard.v1.Scorecard.GaugeView.decode(reader, reader.uint32());
+ break;
+ }
+ case 5: {
+ message.sparkChartView = $root.google.monitoring.dashboard.v1.Scorecard.SparkChartView.decode(reader, reader.uint32());
+ break;
+ }
+ case 6: {
+ if (!(message.thresholds && message.thresholds.length))
+ message.thresholds = [];
+ message.thresholds.push($root.google.monitoring.dashboard.v1.Threshold.decode(reader, reader.uint32()));
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Scorecard message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.Scorecard} Scorecard
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Scorecard.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Scorecard message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Scorecard.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.timeSeriesQuery != null && message.hasOwnProperty("timeSeriesQuery")) {
+ var error = $root.google.monitoring.dashboard.v1.TimeSeriesQuery.verify(message.timeSeriesQuery);
+ if (error)
+ return "timeSeriesQuery." + error;
+ }
+ if (message.gaugeView != null && message.hasOwnProperty("gaugeView")) {
+ properties.dataView = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.Scorecard.GaugeView.verify(message.gaugeView);
+ if (error)
+ return "gaugeView." + error;
+ }
+ }
+ if (message.sparkChartView != null && message.hasOwnProperty("sparkChartView")) {
+ if (properties.dataView === 1)
+ return "dataView: multiple values";
+ properties.dataView = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.Scorecard.SparkChartView.verify(message.sparkChartView);
+ if (error)
+ return "sparkChartView." + error;
+ }
+ }
+ if (message.thresholds != null && message.hasOwnProperty("thresholds")) {
+ if (!Array.isArray(message.thresholds))
+ return "thresholds: array expected";
+ for (var i = 0; i < message.thresholds.length; ++i) {
+ var error = $root.google.monitoring.dashboard.v1.Threshold.verify(message.thresholds[i]);
+ if (error)
+ return "thresholds." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a Scorecard message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.Scorecard} Scorecard
+ */
+ Scorecard.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.Scorecard)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.Scorecard();
+ if (object.timeSeriesQuery != null) {
+ if (typeof object.timeSeriesQuery !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Scorecard.timeSeriesQuery: object expected");
+ message.timeSeriesQuery = $root.google.monitoring.dashboard.v1.TimeSeriesQuery.fromObject(object.timeSeriesQuery);
+ }
+ if (object.gaugeView != null) {
+ if (typeof object.gaugeView !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Scorecard.gaugeView: object expected");
+ message.gaugeView = $root.google.monitoring.dashboard.v1.Scorecard.GaugeView.fromObject(object.gaugeView);
+ }
+ if (object.sparkChartView != null) {
+ if (typeof object.sparkChartView !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Scorecard.sparkChartView: object expected");
+ message.sparkChartView = $root.google.monitoring.dashboard.v1.Scorecard.SparkChartView.fromObject(object.sparkChartView);
+ }
+ if (object.thresholds) {
+ if (!Array.isArray(object.thresholds))
+ throw TypeError(".google.monitoring.dashboard.v1.Scorecard.thresholds: array expected");
+ message.thresholds = [];
+ for (var i = 0; i < object.thresholds.length; ++i) {
+ if (typeof object.thresholds[i] !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Scorecard.thresholds: object expected");
+ message.thresholds[i] = $root.google.monitoring.dashboard.v1.Threshold.fromObject(object.thresholds[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Scorecard message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @static
+ * @param {google.monitoring.dashboard.v1.Scorecard} message Scorecard
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Scorecard.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.thresholds = [];
+ if (options.defaults)
+ object.timeSeriesQuery = null;
+ if (message.timeSeriesQuery != null && message.hasOwnProperty("timeSeriesQuery"))
+ object.timeSeriesQuery = $root.google.monitoring.dashboard.v1.TimeSeriesQuery.toObject(message.timeSeriesQuery, options);
+ if (message.gaugeView != null && message.hasOwnProperty("gaugeView")) {
+ object.gaugeView = $root.google.monitoring.dashboard.v1.Scorecard.GaugeView.toObject(message.gaugeView, options);
+ if (options.oneofs)
+ object.dataView = "gaugeView";
+ }
+ if (message.sparkChartView != null && message.hasOwnProperty("sparkChartView")) {
+ object.sparkChartView = $root.google.monitoring.dashboard.v1.Scorecard.SparkChartView.toObject(message.sparkChartView, options);
+ if (options.oneofs)
+ object.dataView = "sparkChartView";
+ }
+ if (message.thresholds && message.thresholds.length) {
+ object.thresholds = [];
+ for (var j = 0; j < message.thresholds.length; ++j)
+ object.thresholds[j] = $root.google.monitoring.dashboard.v1.Threshold.toObject(message.thresholds[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this Scorecard to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Scorecard.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for Scorecard
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Scorecard.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.Scorecard";
+ };
+
+ Scorecard.GaugeView = (function() {
+
+ /**
+ * Properties of a GaugeView.
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @interface IGaugeView
+ * @property {number|null} [lowerBound] GaugeView lowerBound
+ * @property {number|null} [upperBound] GaugeView upperBound
+ */
+
+ /**
+ * Constructs a new GaugeView.
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @classdesc Represents a GaugeView.
+ * @implements IGaugeView
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.Scorecard.IGaugeView=} [properties] Properties to set
+ */
+ function GaugeView(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]];
+ }
+
+ /**
+ * GaugeView lowerBound.
+ * @member {number} lowerBound
+ * @memberof google.monitoring.dashboard.v1.Scorecard.GaugeView
+ * @instance
+ */
+ GaugeView.prototype.lowerBound = 0;
+
+ /**
+ * GaugeView upperBound.
+ * @member {number} upperBound
+ * @memberof google.monitoring.dashboard.v1.Scorecard.GaugeView
+ * @instance
+ */
+ GaugeView.prototype.upperBound = 0;
+
+ /**
+ * Creates a new GaugeView instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.Scorecard.GaugeView
+ * @static
+ * @param {google.monitoring.dashboard.v1.Scorecard.IGaugeView=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.Scorecard.GaugeView} GaugeView instance
+ */
+ GaugeView.create = function create(properties) {
+ return new GaugeView(properties);
+ };
+
+ /**
+ * Encodes the specified GaugeView message. Does not implicitly {@link google.monitoring.dashboard.v1.Scorecard.GaugeView.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.Scorecard.GaugeView
+ * @static
+ * @param {google.monitoring.dashboard.v1.Scorecard.IGaugeView} message GaugeView message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GaugeView.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.lowerBound != null && Object.hasOwnProperty.call(message, "lowerBound"))
+ writer.uint32(/* id 1, wireType 1 =*/9).double(message.lowerBound);
+ if (message.upperBound != null && Object.hasOwnProperty.call(message, "upperBound"))
+ writer.uint32(/* id 2, wireType 1 =*/17).double(message.upperBound);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified GaugeView message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Scorecard.GaugeView.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Scorecard.GaugeView
+ * @static
+ * @param {google.monitoring.dashboard.v1.Scorecard.IGaugeView} message GaugeView message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GaugeView.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a GaugeView message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.Scorecard.GaugeView
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.Scorecard.GaugeView} GaugeView
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GaugeView.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.monitoring.dashboard.v1.Scorecard.GaugeView();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.lowerBound = reader.double();
+ break;
+ }
+ case 2: {
+ message.upperBound = reader.double();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a GaugeView message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Scorecard.GaugeView
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.Scorecard.GaugeView} GaugeView
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GaugeView.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a GaugeView message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.Scorecard.GaugeView
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ GaugeView.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.lowerBound != null && message.hasOwnProperty("lowerBound"))
+ if (typeof message.lowerBound !== "number")
+ return "lowerBound: number expected";
+ if (message.upperBound != null && message.hasOwnProperty("upperBound"))
+ if (typeof message.upperBound !== "number")
+ return "upperBound: number expected";
+ return null;
+ };
+
+ /**
+ * Creates a GaugeView message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.Scorecard.GaugeView
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.Scorecard.GaugeView} GaugeView
+ */
+ GaugeView.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.Scorecard.GaugeView)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.Scorecard.GaugeView();
+ if (object.lowerBound != null)
+ message.lowerBound = Number(object.lowerBound);
+ if (object.upperBound != null)
+ message.upperBound = Number(object.upperBound);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a GaugeView message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.Scorecard.GaugeView
+ * @static
+ * @param {google.monitoring.dashboard.v1.Scorecard.GaugeView} message GaugeView
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ GaugeView.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.lowerBound = 0;
+ object.upperBound = 0;
+ }
+ if (message.lowerBound != null && message.hasOwnProperty("lowerBound"))
+ object.lowerBound = options.json && !isFinite(message.lowerBound) ? String(message.lowerBound) : message.lowerBound;
+ if (message.upperBound != null && message.hasOwnProperty("upperBound"))
+ object.upperBound = options.json && !isFinite(message.upperBound) ? String(message.upperBound) : message.upperBound;
+ return object;
+ };
+
+ /**
+ * Converts this GaugeView to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.Scorecard.GaugeView
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ GaugeView.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for GaugeView
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.Scorecard.GaugeView
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ GaugeView.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.Scorecard.GaugeView";
+ };
+
+ return GaugeView;
+ })();
+
+ Scorecard.SparkChartView = (function() {
+
+ /**
+ * Properties of a SparkChartView.
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @interface ISparkChartView
+ * @property {google.monitoring.dashboard.v1.SparkChartType|null} [sparkChartType] SparkChartView sparkChartType
+ * @property {google.protobuf.IDuration|null} [minAlignmentPeriod] SparkChartView minAlignmentPeriod
+ */
+
+ /**
+ * Constructs a new SparkChartView.
+ * @memberof google.monitoring.dashboard.v1.Scorecard
+ * @classdesc Represents a SparkChartView.
+ * @implements ISparkChartView
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.Scorecard.ISparkChartView=} [properties] Properties to set
+ */
+ function SparkChartView(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]];
+ }
+
+ /**
+ * SparkChartView sparkChartType.
+ * @member {google.monitoring.dashboard.v1.SparkChartType} sparkChartType
+ * @memberof google.monitoring.dashboard.v1.Scorecard.SparkChartView
+ * @instance
+ */
+ SparkChartView.prototype.sparkChartType = 0;
+
+ /**
+ * SparkChartView minAlignmentPeriod.
+ * @member {google.protobuf.IDuration|null|undefined} minAlignmentPeriod
+ * @memberof google.monitoring.dashboard.v1.Scorecard.SparkChartView
+ * @instance
+ */
+ SparkChartView.prototype.minAlignmentPeriod = null;
+
+ /**
+ * Creates a new SparkChartView instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.Scorecard.SparkChartView
+ * @static
+ * @param {google.monitoring.dashboard.v1.Scorecard.ISparkChartView=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.Scorecard.SparkChartView} SparkChartView instance
+ */
+ SparkChartView.create = function create(properties) {
+ return new SparkChartView(properties);
+ };
+
+ /**
+ * Encodes the specified SparkChartView message. Does not implicitly {@link google.monitoring.dashboard.v1.Scorecard.SparkChartView.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.Scorecard.SparkChartView
+ * @static
+ * @param {google.monitoring.dashboard.v1.Scorecard.ISparkChartView} message SparkChartView message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ SparkChartView.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.sparkChartType != null && Object.hasOwnProperty.call(message, "sparkChartType"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.sparkChartType);
+ if (message.minAlignmentPeriod != null && Object.hasOwnProperty.call(message, "minAlignmentPeriod"))
+ $root.google.protobuf.Duration.encode(message.minAlignmentPeriod, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified SparkChartView message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Scorecard.SparkChartView.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Scorecard.SparkChartView
+ * @static
+ * @param {google.monitoring.dashboard.v1.Scorecard.ISparkChartView} message SparkChartView message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ SparkChartView.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a SparkChartView message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.Scorecard.SparkChartView
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.Scorecard.SparkChartView} SparkChartView
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ SparkChartView.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.monitoring.dashboard.v1.Scorecard.SparkChartView();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.sparkChartType = reader.int32();
+ break;
+ }
+ case 2: {
+ message.minAlignmentPeriod = $root.google.protobuf.Duration.decode(reader, reader.uint32());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a SparkChartView message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Scorecard.SparkChartView
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.Scorecard.SparkChartView} SparkChartView
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ SparkChartView.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a SparkChartView message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.Scorecard.SparkChartView
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ SparkChartView.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.sparkChartType != null && message.hasOwnProperty("sparkChartType"))
+ switch (message.sparkChartType) {
+ default:
+ return "sparkChartType: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
+ if (message.minAlignmentPeriod != null && message.hasOwnProperty("minAlignmentPeriod")) {
+ var error = $root.google.protobuf.Duration.verify(message.minAlignmentPeriod);
+ if (error)
+ return "minAlignmentPeriod." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a SparkChartView message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.Scorecard.SparkChartView
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.Scorecard.SparkChartView} SparkChartView
+ */
+ SparkChartView.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.Scorecard.SparkChartView)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.Scorecard.SparkChartView();
+ switch (object.sparkChartType) {
+ case "SPARK_CHART_TYPE_UNSPECIFIED":
+ case 0:
+ message.sparkChartType = 0;
+ break;
+ case "SPARK_LINE":
+ case 1:
+ message.sparkChartType = 1;
+ break;
+ case "SPARK_BAR":
+ case 2:
+ message.sparkChartType = 2;
+ break;
+ }
+ if (object.minAlignmentPeriod != null) {
+ if (typeof object.minAlignmentPeriod !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.Scorecard.SparkChartView.minAlignmentPeriod: object expected");
+ message.minAlignmentPeriod = $root.google.protobuf.Duration.fromObject(object.minAlignmentPeriod);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a SparkChartView message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.Scorecard.SparkChartView
+ * @static
+ * @param {google.monitoring.dashboard.v1.Scorecard.SparkChartView} message SparkChartView
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ SparkChartView.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.sparkChartType = options.enums === String ? "SPARK_CHART_TYPE_UNSPECIFIED" : 0;
+ object.minAlignmentPeriod = null;
+ }
+ if (message.sparkChartType != null && message.hasOwnProperty("sparkChartType"))
+ object.sparkChartType = options.enums === String ? $root.google.monitoring.dashboard.v1.SparkChartType[message.sparkChartType] : message.sparkChartType;
+ if (message.minAlignmentPeriod != null && message.hasOwnProperty("minAlignmentPeriod"))
+ object.minAlignmentPeriod = $root.google.protobuf.Duration.toObject(message.minAlignmentPeriod, options);
+ return object;
+ };
+
+ /**
+ * Converts this SparkChartView to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.Scorecard.SparkChartView
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ SparkChartView.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for SparkChartView
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.Scorecard.SparkChartView
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ SparkChartView.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.Scorecard.SparkChartView";
+ };
+
+ return SparkChartView;
+ })();
+
+ return Scorecard;
+ })();
+
+ v1.TimeSeriesQuery = (function() {
+
+ /**
+ * Properties of a TimeSeriesQuery.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface ITimeSeriesQuery
+ * @property {google.monitoring.dashboard.v1.ITimeSeriesFilter|null} [timeSeriesFilter] TimeSeriesQuery timeSeriesFilter
+ * @property {google.monitoring.dashboard.v1.ITimeSeriesFilterRatio|null} [timeSeriesFilterRatio] TimeSeriesQuery timeSeriesFilterRatio
+ * @property {string|null} [timeSeriesQueryLanguage] TimeSeriesQuery timeSeriesQueryLanguage
+ * @property {string|null} [unitOverride] TimeSeriesQuery unitOverride
+ */
+
+ /**
+ * Constructs a new TimeSeriesQuery.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a TimeSeriesQuery.
+ * @implements ITimeSeriesQuery
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesQuery=} [properties] Properties to set
+ */
+ function TimeSeriesQuery(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]];
+ }
+
+ /**
+ * TimeSeriesQuery timeSeriesFilter.
+ * @member {google.monitoring.dashboard.v1.ITimeSeriesFilter|null|undefined} timeSeriesFilter
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @instance
+ */
+ TimeSeriesQuery.prototype.timeSeriesFilter = null;
+
+ /**
+ * TimeSeriesQuery timeSeriesFilterRatio.
+ * @member {google.monitoring.dashboard.v1.ITimeSeriesFilterRatio|null|undefined} timeSeriesFilterRatio
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @instance
+ */
+ TimeSeriesQuery.prototype.timeSeriesFilterRatio = null;
+
+ /**
+ * TimeSeriesQuery timeSeriesQueryLanguage.
+ * @member {string|null|undefined} timeSeriesQueryLanguage
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @instance
+ */
+ TimeSeriesQuery.prototype.timeSeriesQueryLanguage = null;
+
+ /**
+ * TimeSeriesQuery unitOverride.
+ * @member {string} unitOverride
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @instance
+ */
+ TimeSeriesQuery.prototype.unitOverride = "";
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * TimeSeriesQuery source.
+ * @member {"timeSeriesFilter"|"timeSeriesFilterRatio"|"timeSeriesQueryLanguage"|undefined} source
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @instance
+ */
+ Object.defineProperty(TimeSeriesQuery.prototype, "source", {
+ get: $util.oneOfGetter($oneOfFields = ["timeSeriesFilter", "timeSeriesFilterRatio", "timeSeriesQueryLanguage"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new TimeSeriesQuery instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesQuery=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesQuery} TimeSeriesQuery instance
+ */
+ TimeSeriesQuery.create = function create(properties) {
+ return new TimeSeriesQuery(properties);
+ };
+
+ /**
+ * Encodes the specified TimeSeriesQuery message. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesQuery.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesQuery} message TimeSeriesQuery message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TimeSeriesQuery.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.timeSeriesFilter != null && Object.hasOwnProperty.call(message, "timeSeriesFilter"))
+ $root.google.monitoring.dashboard.v1.TimeSeriesFilter.encode(message.timeSeriesFilter, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.timeSeriesFilterRatio != null && Object.hasOwnProperty.call(message, "timeSeriesFilterRatio"))
+ $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.encode(message.timeSeriesFilterRatio, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.timeSeriesQueryLanguage != null && Object.hasOwnProperty.call(message, "timeSeriesQueryLanguage"))
+ writer.uint32(/* id 3, wireType 2 =*/26).string(message.timeSeriesQueryLanguage);
+ if (message.unitOverride != null && Object.hasOwnProperty.call(message, "unitOverride"))
+ writer.uint32(/* id 5, wireType 2 =*/42).string(message.unitOverride);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified TimeSeriesQuery message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesQuery.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesQuery} message TimeSeriesQuery message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TimeSeriesQuery.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a TimeSeriesQuery message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesQuery} TimeSeriesQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ TimeSeriesQuery.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.monitoring.dashboard.v1.TimeSeriesQuery();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.timeSeriesFilter = $root.google.monitoring.dashboard.v1.TimeSeriesFilter.decode(reader, reader.uint32());
+ break;
+ }
+ case 2: {
+ message.timeSeriesFilterRatio = $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.decode(reader, reader.uint32());
+ break;
+ }
+ case 3: {
+ message.timeSeriesQueryLanguage = reader.string();
+ break;
+ }
+ case 5: {
+ message.unitOverride = reader.string();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a TimeSeriesQuery message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesQuery} TimeSeriesQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ TimeSeriesQuery.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a TimeSeriesQuery message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ TimeSeriesQuery.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.timeSeriesFilter != null && message.hasOwnProperty("timeSeriesFilter")) {
+ properties.source = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.TimeSeriesFilter.verify(message.timeSeriesFilter);
+ if (error)
+ return "timeSeriesFilter." + error;
+ }
+ }
+ if (message.timeSeriesFilterRatio != null && message.hasOwnProperty("timeSeriesFilterRatio")) {
+ if (properties.source === 1)
+ return "source: multiple values";
+ properties.source = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.verify(message.timeSeriesFilterRatio);
+ if (error)
+ return "timeSeriesFilterRatio." + error;
+ }
+ }
+ if (message.timeSeriesQueryLanguage != null && message.hasOwnProperty("timeSeriesQueryLanguage")) {
+ if (properties.source === 1)
+ return "source: multiple values";
+ properties.source = 1;
+ if (!$util.isString(message.timeSeriesQueryLanguage))
+ return "timeSeriesQueryLanguage: string expected";
+ }
+ if (message.unitOverride != null && message.hasOwnProperty("unitOverride"))
+ if (!$util.isString(message.unitOverride))
+ return "unitOverride: string expected";
+ return null;
+ };
+
+ /**
+ * Creates a TimeSeriesQuery message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesQuery} TimeSeriesQuery
+ */
+ TimeSeriesQuery.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.TimeSeriesQuery)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.TimeSeriesQuery();
+ if (object.timeSeriesFilter != null) {
+ if (typeof object.timeSeriesFilter !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesQuery.timeSeriesFilter: object expected");
+ message.timeSeriesFilter = $root.google.monitoring.dashboard.v1.TimeSeriesFilter.fromObject(object.timeSeriesFilter);
+ }
+ if (object.timeSeriesFilterRatio != null) {
+ if (typeof object.timeSeriesFilterRatio !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesQuery.timeSeriesFilterRatio: object expected");
+ message.timeSeriesFilterRatio = $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.fromObject(object.timeSeriesFilterRatio);
+ }
+ if (object.timeSeriesQueryLanguage != null)
+ message.timeSeriesQueryLanguage = String(object.timeSeriesQueryLanguage);
+ if (object.unitOverride != null)
+ message.unitOverride = String(object.unitOverride);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a TimeSeriesQuery message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @static
+ * @param {google.monitoring.dashboard.v1.TimeSeriesQuery} message TimeSeriesQuery
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ TimeSeriesQuery.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.unitOverride = "";
+ if (message.timeSeriesFilter != null && message.hasOwnProperty("timeSeriesFilter")) {
+ object.timeSeriesFilter = $root.google.monitoring.dashboard.v1.TimeSeriesFilter.toObject(message.timeSeriesFilter, options);
+ if (options.oneofs)
+ object.source = "timeSeriesFilter";
+ }
+ if (message.timeSeriesFilterRatio != null && message.hasOwnProperty("timeSeriesFilterRatio")) {
+ object.timeSeriesFilterRatio = $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.toObject(message.timeSeriesFilterRatio, options);
+ if (options.oneofs)
+ object.source = "timeSeriesFilterRatio";
+ }
+ if (message.timeSeriesQueryLanguage != null && message.hasOwnProperty("timeSeriesQueryLanguage")) {
+ object.timeSeriesQueryLanguage = message.timeSeriesQueryLanguage;
+ if (options.oneofs)
+ object.source = "timeSeriesQueryLanguage";
+ }
+ if (message.unitOverride != null && message.hasOwnProperty("unitOverride"))
+ object.unitOverride = message.unitOverride;
+ return object;
+ };
+
+ /**
+ * Converts this TimeSeriesQuery to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ TimeSeriesQuery.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for TimeSeriesQuery
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesQuery
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ TimeSeriesQuery.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.TimeSeriesQuery";
+ };
+
+ return TimeSeriesQuery;
+ })();
+
+ v1.TimeSeriesFilter = (function() {
+
+ /**
+ * Properties of a TimeSeriesFilter.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface ITimeSeriesFilter
+ * @property {string|null} [filter] TimeSeriesFilter filter
+ * @property {google.monitoring.dashboard.v1.IAggregation|null} [aggregation] TimeSeriesFilter aggregation
+ * @property {google.monitoring.dashboard.v1.IAggregation|null} [secondaryAggregation] TimeSeriesFilter secondaryAggregation
+ * @property {google.monitoring.dashboard.v1.IPickTimeSeriesFilter|null} [pickTimeSeriesFilter] TimeSeriesFilter pickTimeSeriesFilter
+ * @property {google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter|null} [statisticalTimeSeriesFilter] TimeSeriesFilter statisticalTimeSeriesFilter
+ */
+
+ /**
+ * Constructs a new TimeSeriesFilter.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a TimeSeriesFilter.
+ * @implements ITimeSeriesFilter
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesFilter=} [properties] Properties to set
+ */
+ function TimeSeriesFilter(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]];
+ }
+
+ /**
+ * TimeSeriesFilter filter.
+ * @member {string} filter
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @instance
+ */
+ TimeSeriesFilter.prototype.filter = "";
+
+ /**
+ * TimeSeriesFilter aggregation.
+ * @member {google.monitoring.dashboard.v1.IAggregation|null|undefined} aggregation
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @instance
+ */
+ TimeSeriesFilter.prototype.aggregation = null;
+
+ /**
+ * TimeSeriesFilter secondaryAggregation.
+ * @member {google.monitoring.dashboard.v1.IAggregation|null|undefined} secondaryAggregation
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @instance
+ */
+ TimeSeriesFilter.prototype.secondaryAggregation = null;
+
+ /**
+ * TimeSeriesFilter pickTimeSeriesFilter.
+ * @member {google.monitoring.dashboard.v1.IPickTimeSeriesFilter|null|undefined} pickTimeSeriesFilter
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @instance
+ */
+ TimeSeriesFilter.prototype.pickTimeSeriesFilter = null;
+
+ /**
+ * TimeSeriesFilter statisticalTimeSeriesFilter.
+ * @member {google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter|null|undefined} statisticalTimeSeriesFilter
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @instance
+ */
+ TimeSeriesFilter.prototype.statisticalTimeSeriesFilter = null;
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * TimeSeriesFilter outputFilter.
+ * @member {"pickTimeSeriesFilter"|"statisticalTimeSeriesFilter"|undefined} outputFilter
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @instance
+ */
+ Object.defineProperty(TimeSeriesFilter.prototype, "outputFilter", {
+ get: $util.oneOfGetter($oneOfFields = ["pickTimeSeriesFilter", "statisticalTimeSeriesFilter"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new TimeSeriesFilter instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesFilter=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesFilter} TimeSeriesFilter instance
+ */
+ TimeSeriesFilter.create = function create(properties) {
+ return new TimeSeriesFilter(properties);
+ };
+
+ /**
+ * Encodes the specified TimeSeriesFilter message. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesFilter.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesFilter} message TimeSeriesFilter message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TimeSeriesFilter.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.filter != null && Object.hasOwnProperty.call(message, "filter"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.filter);
+ if (message.aggregation != null && Object.hasOwnProperty.call(message, "aggregation"))
+ $root.google.monitoring.dashboard.v1.Aggregation.encode(message.aggregation, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.secondaryAggregation != null && Object.hasOwnProperty.call(message, "secondaryAggregation"))
+ $root.google.monitoring.dashboard.v1.Aggregation.encode(message.secondaryAggregation, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.pickTimeSeriesFilter != null && Object.hasOwnProperty.call(message, "pickTimeSeriesFilter"))
+ $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter.encode(message.pickTimeSeriesFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ if (message.statisticalTimeSeriesFilter != null && Object.hasOwnProperty.call(message, "statisticalTimeSeriesFilter"))
+ $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.encode(message.statisticalTimeSeriesFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified TimeSeriesFilter message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesFilter.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesFilter} message TimeSeriesFilter message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TimeSeriesFilter.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a TimeSeriesFilter message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesFilter} TimeSeriesFilter
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ TimeSeriesFilter.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.monitoring.dashboard.v1.TimeSeriesFilter();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.filter = reader.string();
+ break;
+ }
+ case 2: {
+ message.aggregation = $root.google.monitoring.dashboard.v1.Aggregation.decode(reader, reader.uint32());
+ break;
+ }
+ case 3: {
+ message.secondaryAggregation = $root.google.monitoring.dashboard.v1.Aggregation.decode(reader, reader.uint32());
+ break;
+ }
+ case 4: {
+ message.pickTimeSeriesFilter = $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter.decode(reader, reader.uint32());
+ break;
+ }
+ case 5: {
+ message.statisticalTimeSeriesFilter = $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.decode(reader, reader.uint32());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a TimeSeriesFilter message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesFilter} TimeSeriesFilter
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ TimeSeriesFilter.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a TimeSeriesFilter message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ TimeSeriesFilter.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.filter != null && message.hasOwnProperty("filter"))
+ if (!$util.isString(message.filter))
+ return "filter: string expected";
+ if (message.aggregation != null && message.hasOwnProperty("aggregation")) {
+ var error = $root.google.monitoring.dashboard.v1.Aggregation.verify(message.aggregation);
+ if (error)
+ return "aggregation." + error;
+ }
+ if (message.secondaryAggregation != null && message.hasOwnProperty("secondaryAggregation")) {
+ var error = $root.google.monitoring.dashboard.v1.Aggregation.verify(message.secondaryAggregation);
+ if (error)
+ return "secondaryAggregation." + error;
+ }
+ if (message.pickTimeSeriesFilter != null && message.hasOwnProperty("pickTimeSeriesFilter")) {
+ properties.outputFilter = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter.verify(message.pickTimeSeriesFilter);
+ if (error)
+ return "pickTimeSeriesFilter." + error;
+ }
+ }
+ if (message.statisticalTimeSeriesFilter != null && message.hasOwnProperty("statisticalTimeSeriesFilter")) {
+ if (properties.outputFilter === 1)
+ return "outputFilter: multiple values";
+ properties.outputFilter = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.verify(message.statisticalTimeSeriesFilter);
+ if (error)
+ return "statisticalTimeSeriesFilter." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a TimeSeriesFilter message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesFilter} TimeSeriesFilter
+ */
+ TimeSeriesFilter.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.TimeSeriesFilter)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.TimeSeriesFilter();
+ if (object.filter != null)
+ message.filter = String(object.filter);
+ if (object.aggregation != null) {
+ if (typeof object.aggregation !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesFilter.aggregation: object expected");
+ message.aggregation = $root.google.monitoring.dashboard.v1.Aggregation.fromObject(object.aggregation);
+ }
+ if (object.secondaryAggregation != null) {
+ if (typeof object.secondaryAggregation !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesFilter.secondaryAggregation: object expected");
+ message.secondaryAggregation = $root.google.monitoring.dashboard.v1.Aggregation.fromObject(object.secondaryAggregation);
+ }
+ if (object.pickTimeSeriesFilter != null) {
+ if (typeof object.pickTimeSeriesFilter !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesFilter.pickTimeSeriesFilter: object expected");
+ message.pickTimeSeriesFilter = $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter.fromObject(object.pickTimeSeriesFilter);
+ }
+ if (object.statisticalTimeSeriesFilter != null) {
+ if (typeof object.statisticalTimeSeriesFilter !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesFilter.statisticalTimeSeriesFilter: object expected");
+ message.statisticalTimeSeriesFilter = $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.fromObject(object.statisticalTimeSeriesFilter);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a TimeSeriesFilter message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @static
+ * @param {google.monitoring.dashboard.v1.TimeSeriesFilter} message TimeSeriesFilter
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ TimeSeriesFilter.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.filter = "";
+ object.aggregation = null;
+ object.secondaryAggregation = null;
+ }
+ if (message.filter != null && message.hasOwnProperty("filter"))
+ object.filter = message.filter;
+ if (message.aggregation != null && message.hasOwnProperty("aggregation"))
+ object.aggregation = $root.google.monitoring.dashboard.v1.Aggregation.toObject(message.aggregation, options);
+ if (message.secondaryAggregation != null && message.hasOwnProperty("secondaryAggregation"))
+ object.secondaryAggregation = $root.google.monitoring.dashboard.v1.Aggregation.toObject(message.secondaryAggregation, options);
+ if (message.pickTimeSeriesFilter != null && message.hasOwnProperty("pickTimeSeriesFilter")) {
+ object.pickTimeSeriesFilter = $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter.toObject(message.pickTimeSeriesFilter, options);
+ if (options.oneofs)
+ object.outputFilter = "pickTimeSeriesFilter";
+ }
+ if (message.statisticalTimeSeriesFilter != null && message.hasOwnProperty("statisticalTimeSeriesFilter")) {
+ object.statisticalTimeSeriesFilter = $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.toObject(message.statisticalTimeSeriesFilter, options);
+ if (options.oneofs)
+ object.outputFilter = "statisticalTimeSeriesFilter";
+ }
+ return object;
+ };
+
+ /**
+ * Converts this TimeSeriesFilter to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ TimeSeriesFilter.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for TimeSeriesFilter
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilter
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ TimeSeriesFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.TimeSeriesFilter";
+ };
+
+ return TimeSeriesFilter;
+ })();
+
+ v1.TimeSeriesFilterRatio = (function() {
+
+ /**
+ * Properties of a TimeSeriesFilterRatio.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface ITimeSeriesFilterRatio
+ * @property {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart|null} [numerator] TimeSeriesFilterRatio numerator
+ * @property {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart|null} [denominator] TimeSeriesFilterRatio denominator
+ * @property {google.monitoring.dashboard.v1.IAggregation|null} [secondaryAggregation] TimeSeriesFilterRatio secondaryAggregation
+ * @property {google.monitoring.dashboard.v1.IPickTimeSeriesFilter|null} [pickTimeSeriesFilter] TimeSeriesFilterRatio pickTimeSeriesFilter
+ * @property {google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter|null} [statisticalTimeSeriesFilter] TimeSeriesFilterRatio statisticalTimeSeriesFilter
+ */
+
+ /**
+ * Constructs a new TimeSeriesFilterRatio.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a TimeSeriesFilterRatio.
+ * @implements ITimeSeriesFilterRatio
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesFilterRatio=} [properties] Properties to set
+ */
+ function TimeSeriesFilterRatio(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]];
+ }
+
+ /**
+ * TimeSeriesFilterRatio numerator.
+ * @member {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart|null|undefined} numerator
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @instance
+ */
+ TimeSeriesFilterRatio.prototype.numerator = null;
+
+ /**
+ * TimeSeriesFilterRatio denominator.
+ * @member {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart|null|undefined} denominator
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @instance
+ */
+ TimeSeriesFilterRatio.prototype.denominator = null;
+
+ /**
+ * TimeSeriesFilterRatio secondaryAggregation.
+ * @member {google.monitoring.dashboard.v1.IAggregation|null|undefined} secondaryAggregation
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @instance
+ */
+ TimeSeriesFilterRatio.prototype.secondaryAggregation = null;
+
+ /**
+ * TimeSeriesFilterRatio pickTimeSeriesFilter.
+ * @member {google.monitoring.dashboard.v1.IPickTimeSeriesFilter|null|undefined} pickTimeSeriesFilter
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @instance
+ */
+ TimeSeriesFilterRatio.prototype.pickTimeSeriesFilter = null;
+
+ /**
+ * TimeSeriesFilterRatio statisticalTimeSeriesFilter.
+ * @member {google.monitoring.dashboard.v1.IStatisticalTimeSeriesFilter|null|undefined} statisticalTimeSeriesFilter
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @instance
+ */
+ TimeSeriesFilterRatio.prototype.statisticalTimeSeriesFilter = null;
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * TimeSeriesFilterRatio outputFilter.
+ * @member {"pickTimeSeriesFilter"|"statisticalTimeSeriesFilter"|undefined} outputFilter
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @instance
+ */
+ Object.defineProperty(TimeSeriesFilterRatio.prototype, "outputFilter", {
+ get: $util.oneOfGetter($oneOfFields = ["pickTimeSeriesFilter", "statisticalTimeSeriesFilter"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new TimeSeriesFilterRatio instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesFilterRatio=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesFilterRatio} TimeSeriesFilterRatio instance
+ */
+ TimeSeriesFilterRatio.create = function create(properties) {
+ return new TimeSeriesFilterRatio(properties);
+ };
+
+ /**
+ * Encodes the specified TimeSeriesFilterRatio message. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesFilterRatio.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesFilterRatio} message TimeSeriesFilterRatio message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TimeSeriesFilterRatio.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.numerator != null && Object.hasOwnProperty.call(message, "numerator"))
+ $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.encode(message.numerator, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.denominator != null && Object.hasOwnProperty.call(message, "denominator"))
+ $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.encode(message.denominator, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.secondaryAggregation != null && Object.hasOwnProperty.call(message, "secondaryAggregation"))
+ $root.google.monitoring.dashboard.v1.Aggregation.encode(message.secondaryAggregation, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.pickTimeSeriesFilter != null && Object.hasOwnProperty.call(message, "pickTimeSeriesFilter"))
+ $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter.encode(message.pickTimeSeriesFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ if (message.statisticalTimeSeriesFilter != null && Object.hasOwnProperty.call(message, "statisticalTimeSeriesFilter"))
+ $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.encode(message.statisticalTimeSeriesFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified TimeSeriesFilterRatio message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesFilterRatio.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesFilterRatio} message TimeSeriesFilterRatio message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TimeSeriesFilterRatio.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a TimeSeriesFilterRatio message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesFilterRatio} TimeSeriesFilterRatio
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ TimeSeriesFilterRatio.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.monitoring.dashboard.v1.TimeSeriesFilterRatio();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.numerator = $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.decode(reader, reader.uint32());
+ break;
+ }
+ case 2: {
+ message.denominator = $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.decode(reader, reader.uint32());
+ break;
+ }
+ case 3: {
+ message.secondaryAggregation = $root.google.monitoring.dashboard.v1.Aggregation.decode(reader, reader.uint32());
+ break;
+ }
+ case 4: {
+ message.pickTimeSeriesFilter = $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter.decode(reader, reader.uint32());
+ break;
+ }
+ case 5: {
+ message.statisticalTimeSeriesFilter = $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.decode(reader, reader.uint32());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a TimeSeriesFilterRatio message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesFilterRatio} TimeSeriesFilterRatio
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ TimeSeriesFilterRatio.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a TimeSeriesFilterRatio message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ TimeSeriesFilterRatio.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.numerator != null && message.hasOwnProperty("numerator")) {
+ var error = $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.verify(message.numerator);
+ if (error)
+ return "numerator." + error;
+ }
+ if (message.denominator != null && message.hasOwnProperty("denominator")) {
+ var error = $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.verify(message.denominator);
+ if (error)
+ return "denominator." + error;
+ }
+ if (message.secondaryAggregation != null && message.hasOwnProperty("secondaryAggregation")) {
+ var error = $root.google.monitoring.dashboard.v1.Aggregation.verify(message.secondaryAggregation);
+ if (error)
+ return "secondaryAggregation." + error;
+ }
+ if (message.pickTimeSeriesFilter != null && message.hasOwnProperty("pickTimeSeriesFilter")) {
+ properties.outputFilter = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter.verify(message.pickTimeSeriesFilter);
+ if (error)
+ return "pickTimeSeriesFilter." + error;
+ }
+ }
+ if (message.statisticalTimeSeriesFilter != null && message.hasOwnProperty("statisticalTimeSeriesFilter")) {
+ if (properties.outputFilter === 1)
+ return "outputFilter: multiple values";
+ properties.outputFilter = 1;
+ {
+ var error = $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.verify(message.statisticalTimeSeriesFilter);
+ if (error)
+ return "statisticalTimeSeriesFilter." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a TimeSeriesFilterRatio message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesFilterRatio} TimeSeriesFilterRatio
+ */
+ TimeSeriesFilterRatio.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio();
+ if (object.numerator != null) {
+ if (typeof object.numerator !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesFilterRatio.numerator: object expected");
+ message.numerator = $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.fromObject(object.numerator);
+ }
+ if (object.denominator != null) {
+ if (typeof object.denominator !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesFilterRatio.denominator: object expected");
+ message.denominator = $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.fromObject(object.denominator);
+ }
+ if (object.secondaryAggregation != null) {
+ if (typeof object.secondaryAggregation !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesFilterRatio.secondaryAggregation: object expected");
+ message.secondaryAggregation = $root.google.monitoring.dashboard.v1.Aggregation.fromObject(object.secondaryAggregation);
+ }
+ if (object.pickTimeSeriesFilter != null) {
+ if (typeof object.pickTimeSeriesFilter !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesFilterRatio.pickTimeSeriesFilter: object expected");
+ message.pickTimeSeriesFilter = $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter.fromObject(object.pickTimeSeriesFilter);
+ }
+ if (object.statisticalTimeSeriesFilter != null) {
+ if (typeof object.statisticalTimeSeriesFilter !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesFilterRatio.statisticalTimeSeriesFilter: object expected");
+ message.statisticalTimeSeriesFilter = $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.fromObject(object.statisticalTimeSeriesFilter);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a TimeSeriesFilterRatio message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @static
+ * @param {google.monitoring.dashboard.v1.TimeSeriesFilterRatio} message TimeSeriesFilterRatio
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ TimeSeriesFilterRatio.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.numerator = null;
+ object.denominator = null;
+ object.secondaryAggregation = null;
+ }
+ if (message.numerator != null && message.hasOwnProperty("numerator"))
+ object.numerator = $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.toObject(message.numerator, options);
+ if (message.denominator != null && message.hasOwnProperty("denominator"))
+ object.denominator = $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.toObject(message.denominator, options);
+ if (message.secondaryAggregation != null && message.hasOwnProperty("secondaryAggregation"))
+ object.secondaryAggregation = $root.google.monitoring.dashboard.v1.Aggregation.toObject(message.secondaryAggregation, options);
+ if (message.pickTimeSeriesFilter != null && message.hasOwnProperty("pickTimeSeriesFilter")) {
+ object.pickTimeSeriesFilter = $root.google.monitoring.dashboard.v1.PickTimeSeriesFilter.toObject(message.pickTimeSeriesFilter, options);
+ if (options.oneofs)
+ object.outputFilter = "pickTimeSeriesFilter";
+ }
+ if (message.statisticalTimeSeriesFilter != null && message.hasOwnProperty("statisticalTimeSeriesFilter")) {
+ object.statisticalTimeSeriesFilter = $root.google.monitoring.dashboard.v1.StatisticalTimeSeriesFilter.toObject(message.statisticalTimeSeriesFilter, options);
+ if (options.oneofs)
+ object.outputFilter = "statisticalTimeSeriesFilter";
+ }
+ return object;
+ };
+
+ /**
+ * Converts this TimeSeriesFilterRatio to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ TimeSeriesFilterRatio.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for TimeSeriesFilterRatio
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ TimeSeriesFilterRatio.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.TimeSeriesFilterRatio";
+ };
+
+ TimeSeriesFilterRatio.RatioPart = (function() {
+
+ /**
+ * Properties of a RatioPart.
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @interface IRatioPart
+ * @property {string|null} [filter] RatioPart filter
+ * @property {google.monitoring.dashboard.v1.IAggregation|null} [aggregation] RatioPart aggregation
+ */
+
+ /**
+ * Constructs a new RatioPart.
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio
+ * @classdesc Represents a RatioPart.
+ * @implements IRatioPart
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart=} [properties] Properties to set
+ */
+ function RatioPart(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]];
+ }
+
+ /**
+ * RatioPart filter.
+ * @member {string} filter
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart
+ * @instance
+ */
+ RatioPart.prototype.filter = "";
+
+ /**
+ * RatioPart aggregation.
+ * @member {google.monitoring.dashboard.v1.IAggregation|null|undefined} aggregation
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart
+ * @instance
+ */
+ RatioPart.prototype.aggregation = null;
+
+ /**
+ * Creates a new RatioPart instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart
+ * @static
+ * @param {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart} RatioPart instance
+ */
+ RatioPart.create = function create(properties) {
+ return new RatioPart(properties);
+ };
+
+ /**
+ * Encodes the specified RatioPart message. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart
+ * @static
+ * @param {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart} message RatioPart message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ RatioPart.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.filter != null && Object.hasOwnProperty.call(message, "filter"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.filter);
+ if (message.aggregation != null && Object.hasOwnProperty.call(message, "aggregation"))
+ $root.google.monitoring.dashboard.v1.Aggregation.encode(message.aggregation, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified RatioPart message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart
+ * @static
+ * @param {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.IRatioPart} message RatioPart message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ RatioPart.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a RatioPart message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart} RatioPart
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ RatioPart.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.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.filter = reader.string();
+ break;
+ }
+ case 2: {
+ message.aggregation = $root.google.monitoring.dashboard.v1.Aggregation.decode(reader, reader.uint32());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a RatioPart message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart} RatioPart
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ RatioPart.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a RatioPart message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ RatioPart.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.filter != null && message.hasOwnProperty("filter"))
+ if (!$util.isString(message.filter))
+ return "filter: string expected";
+ if (message.aggregation != null && message.hasOwnProperty("aggregation")) {
+ var error = $root.google.monitoring.dashboard.v1.Aggregation.verify(message.aggregation);
+ if (error)
+ return "aggregation." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a RatioPart message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart} RatioPart
+ */
+ RatioPart.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart();
+ if (object.filter != null)
+ message.filter = String(object.filter);
+ if (object.aggregation != null) {
+ if (typeof object.aggregation !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart.aggregation: object expected");
+ message.aggregation = $root.google.monitoring.dashboard.v1.Aggregation.fromObject(object.aggregation);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a RatioPart message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart
+ * @static
+ * @param {google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart} message RatioPart
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ RatioPart.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.filter = "";
+ object.aggregation = null;
+ }
+ if (message.filter != null && message.hasOwnProperty("filter"))
+ object.filter = message.filter;
+ if (message.aggregation != null && message.hasOwnProperty("aggregation"))
+ object.aggregation = $root.google.monitoring.dashboard.v1.Aggregation.toObject(message.aggregation, options);
+ return object;
+ };
+
+ /**
+ * Converts this RatioPart to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ RatioPart.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for RatioPart
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ RatioPart.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.TimeSeriesFilterRatio.RatioPart";
+ };
+
+ return RatioPart;
+ })();
+
+ return TimeSeriesFilterRatio;
+ })();
+
+ v1.Threshold = (function() {
+
+ /**
+ * Properties of a Threshold.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IThreshold
+ * @property {string|null} [label] Threshold label
+ * @property {number|null} [value] Threshold value
+ * @property {google.monitoring.dashboard.v1.Threshold.Color|null} [color] Threshold color
+ * @property {google.monitoring.dashboard.v1.Threshold.Direction|null} [direction] Threshold direction
+ * @property {google.monitoring.dashboard.v1.Threshold.TargetAxis|null} [targetAxis] Threshold targetAxis
+ */
+
+ /**
+ * Constructs a new Threshold.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a Threshold.
+ * @implements IThreshold
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IThreshold=} [properties] Properties to set
+ */
+ function Threshold(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]];
+ }
+
+ /**
+ * Threshold label.
+ * @member {string} label
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @instance
+ */
+ Threshold.prototype.label = "";
+
+ /**
+ * Threshold value.
+ * @member {number} value
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @instance
+ */
+ Threshold.prototype.value = 0;
+
+ /**
+ * Threshold color.
+ * @member {google.monitoring.dashboard.v1.Threshold.Color} color
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @instance
+ */
+ Threshold.prototype.color = 0;
+
+ /**
+ * Threshold direction.
+ * @member {google.monitoring.dashboard.v1.Threshold.Direction} direction
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @instance
+ */
+ Threshold.prototype.direction = 0;
+
+ /**
+ * Threshold targetAxis.
+ * @member {google.monitoring.dashboard.v1.Threshold.TargetAxis} targetAxis
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @instance
+ */
+ Threshold.prototype.targetAxis = 0;
+
+ /**
+ * Creates a new Threshold instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @static
+ * @param {google.monitoring.dashboard.v1.IThreshold=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.Threshold} Threshold instance
+ */
+ Threshold.create = function create(properties) {
+ return new Threshold(properties);
+ };
+
+ /**
+ * Encodes the specified Threshold message. Does not implicitly {@link google.monitoring.dashboard.v1.Threshold.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @static
+ * @param {google.monitoring.dashboard.v1.IThreshold} message Threshold message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Threshold.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.label != null && Object.hasOwnProperty.call(message, "label"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.label);
+ if (message.value != null && Object.hasOwnProperty.call(message, "value"))
+ writer.uint32(/* id 2, wireType 1 =*/17).double(message.value);
+ if (message.color != null && Object.hasOwnProperty.call(message, "color"))
+ writer.uint32(/* id 3, wireType 0 =*/24).int32(message.color);
+ if (message.direction != null && Object.hasOwnProperty.call(message, "direction"))
+ writer.uint32(/* id 4, wireType 0 =*/32).int32(message.direction);
+ if (message.targetAxis != null && Object.hasOwnProperty.call(message, "targetAxis"))
+ writer.uint32(/* id 5, wireType 0 =*/40).int32(message.targetAxis);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Threshold message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Threshold.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @static
+ * @param {google.monitoring.dashboard.v1.IThreshold} message Threshold message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Threshold.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Threshold message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.Threshold} Threshold
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Threshold.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.monitoring.dashboard.v1.Threshold();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.label = reader.string();
+ break;
+ }
+ case 2: {
+ message.value = reader.double();
+ break;
+ }
+ case 3: {
+ message.color = reader.int32();
+ break;
+ }
+ case 4: {
+ message.direction = reader.int32();
+ break;
+ }
+ case 5: {
+ message.targetAxis = reader.int32();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Threshold message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.Threshold} Threshold
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Threshold.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Threshold message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Threshold.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.label != null && message.hasOwnProperty("label"))
+ if (!$util.isString(message.label))
+ return "label: string expected";
+ if (message.value != null && message.hasOwnProperty("value"))
+ if (typeof message.value !== "number")
+ return "value: number expected";
+ if (message.color != null && message.hasOwnProperty("color"))
+ switch (message.color) {
+ default:
+ return "color: enum value expected";
+ case 0:
+ case 4:
+ case 6:
+ break;
+ }
+ if (message.direction != null && message.hasOwnProperty("direction"))
+ switch (message.direction) {
+ default:
+ return "direction: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
+ if (message.targetAxis != null && message.hasOwnProperty("targetAxis"))
+ switch (message.targetAxis) {
+ default:
+ return "targetAxis: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a Threshold message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.Threshold} Threshold
+ */
+ Threshold.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.Threshold)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.Threshold();
+ if (object.label != null)
+ message.label = String(object.label);
+ if (object.value != null)
+ message.value = Number(object.value);
+ switch (object.color) {
+ case "COLOR_UNSPECIFIED":
+ case 0:
+ message.color = 0;
+ break;
+ case "YELLOW":
+ case 4:
+ message.color = 4;
+ break;
+ case "RED":
+ case 6:
+ message.color = 6;
+ break;
+ }
+ switch (object.direction) {
+ case "DIRECTION_UNSPECIFIED":
+ case 0:
+ message.direction = 0;
+ break;
+ case "ABOVE":
+ case 1:
+ message.direction = 1;
+ break;
+ case "BELOW":
+ case 2:
+ message.direction = 2;
+ break;
+ }
+ switch (object.targetAxis) {
+ case "TARGET_AXIS_UNSPECIFIED":
+ case 0:
+ message.targetAxis = 0;
+ break;
+ case "Y1":
+ case 1:
+ message.targetAxis = 1;
+ break;
+ case "Y2":
+ case 2:
+ message.targetAxis = 2;
+ break;
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Threshold message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @static
+ * @param {google.monitoring.dashboard.v1.Threshold} message Threshold
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Threshold.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.label = "";
+ object.value = 0;
+ object.color = options.enums === String ? "COLOR_UNSPECIFIED" : 0;
+ object.direction = options.enums === String ? "DIRECTION_UNSPECIFIED" : 0;
+ object.targetAxis = options.enums === String ? "TARGET_AXIS_UNSPECIFIED" : 0;
+ }
+ if (message.label != null && message.hasOwnProperty("label"))
+ object.label = message.label;
+ if (message.value != null && message.hasOwnProperty("value"))
+ object.value = options.json && !isFinite(message.value) ? String(message.value) : message.value;
+ if (message.color != null && message.hasOwnProperty("color"))
+ object.color = options.enums === String ? $root.google.monitoring.dashboard.v1.Threshold.Color[message.color] : message.color;
+ if (message.direction != null && message.hasOwnProperty("direction"))
+ object.direction = options.enums === String ? $root.google.monitoring.dashboard.v1.Threshold.Direction[message.direction] : message.direction;
+ if (message.targetAxis != null && message.hasOwnProperty("targetAxis"))
+ object.targetAxis = options.enums === String ? $root.google.monitoring.dashboard.v1.Threshold.TargetAxis[message.targetAxis] : message.targetAxis;
+ return object;
+ };
+
+ /**
+ * Converts this Threshold to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Threshold.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for Threshold
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.Threshold
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Threshold.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.Threshold";
+ };
+
+ /**
+ * Color enum.
+ * @name google.monitoring.dashboard.v1.Threshold.Color
+ * @enum {number}
+ * @property {number} COLOR_UNSPECIFIED=0 COLOR_UNSPECIFIED value
+ * @property {number} YELLOW=4 YELLOW value
+ * @property {number} RED=6 RED value
+ */
+ Threshold.Color = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "COLOR_UNSPECIFIED"] = 0;
+ values[valuesById[4] = "YELLOW"] = 4;
+ values[valuesById[6] = "RED"] = 6;
+ return values;
+ })();
+
+ /**
+ * Direction enum.
+ * @name google.monitoring.dashboard.v1.Threshold.Direction
+ * @enum {number}
+ * @property {number} DIRECTION_UNSPECIFIED=0 DIRECTION_UNSPECIFIED value
+ * @property {number} ABOVE=1 ABOVE value
+ * @property {number} BELOW=2 BELOW value
+ */
+ Threshold.Direction = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "DIRECTION_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "ABOVE"] = 1;
+ values[valuesById[2] = "BELOW"] = 2;
+ return values;
+ })();
+
+ /**
+ * TargetAxis enum.
+ * @name google.monitoring.dashboard.v1.Threshold.TargetAxis
+ * @enum {number}
+ * @property {number} TARGET_AXIS_UNSPECIFIED=0 TARGET_AXIS_UNSPECIFIED value
+ * @property {number} Y1=1 Y1 value
+ * @property {number} Y2=2 Y2 value
+ */
+ Threshold.TargetAxis = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "TARGET_AXIS_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "Y1"] = 1;
+ values[valuesById[2] = "Y2"] = 2;
+ return values;
+ })();
+
+ return Threshold;
+ })();
+
+ /**
+ * SparkChartType enum.
+ * @name google.monitoring.dashboard.v1.SparkChartType
+ * @enum {number}
+ * @property {number} SPARK_CHART_TYPE_UNSPECIFIED=0 SPARK_CHART_TYPE_UNSPECIFIED value
+ * @property {number} SPARK_LINE=1 SPARK_LINE value
+ * @property {number} SPARK_BAR=2 SPARK_BAR value
+ */
+ v1.SparkChartType = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "SPARK_CHART_TYPE_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "SPARK_LINE"] = 1;
+ values[valuesById[2] = "SPARK_BAR"] = 2;
+ return values;
+ })();
+
+ v1.TimeSeriesTable = (function() {
+
+ /**
+ * Properties of a TimeSeriesTable.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface ITimeSeriesTable
+ * @property {Array.|null} [dataSets] TimeSeriesTable dataSets
+ */
+
+ /**
+ * Constructs a new TimeSeriesTable.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a TimeSeriesTable.
+ * @implements ITimeSeriesTable
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesTable=} [properties] Properties to set
+ */
+ function TimeSeriesTable(properties) {
+ this.dataSets = [];
+ 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]];
+ }
+
+ /**
+ * TimeSeriesTable dataSets.
+ * @member {Array.} dataSets
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @instance
+ */
+ TimeSeriesTable.prototype.dataSets = $util.emptyArray;
+
+ /**
+ * Creates a new TimeSeriesTable instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesTable=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesTable} TimeSeriesTable instance
+ */
+ TimeSeriesTable.create = function create(properties) {
+ return new TimeSeriesTable(properties);
+ };
+
+ /**
+ * Encodes the specified TimeSeriesTable message. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesTable.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesTable} message TimeSeriesTable message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TimeSeriesTable.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.dataSets != null && message.dataSets.length)
+ for (var i = 0; i < message.dataSets.length; ++i)
+ $root.google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet.encode(message.dataSets[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified TimeSeriesTable message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesTable.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITimeSeriesTable} message TimeSeriesTable message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TimeSeriesTable.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a TimeSeriesTable message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesTable} TimeSeriesTable
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ TimeSeriesTable.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.monitoring.dashboard.v1.TimeSeriesTable();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ if (!(message.dataSets && message.dataSets.length))
+ message.dataSets = [];
+ message.dataSets.push($root.google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet.decode(reader, reader.uint32()));
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a TimeSeriesTable message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesTable} TimeSeriesTable
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ TimeSeriesTable.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a TimeSeriesTable message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ TimeSeriesTable.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.dataSets != null && message.hasOwnProperty("dataSets")) {
+ if (!Array.isArray(message.dataSets))
+ return "dataSets: array expected";
+ for (var i = 0; i < message.dataSets.length; ++i) {
+ var error = $root.google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet.verify(message.dataSets[i]);
+ if (error)
+ return "dataSets." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a TimeSeriesTable message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesTable} TimeSeriesTable
+ */
+ TimeSeriesTable.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.TimeSeriesTable)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.TimeSeriesTable();
+ if (object.dataSets) {
+ if (!Array.isArray(object.dataSets))
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesTable.dataSets: array expected");
+ message.dataSets = [];
+ for (var i = 0; i < object.dataSets.length; ++i) {
+ if (typeof object.dataSets[i] !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesTable.dataSets: object expected");
+ message.dataSets[i] = $root.google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet.fromObject(object.dataSets[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a TimeSeriesTable message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @static
+ * @param {google.monitoring.dashboard.v1.TimeSeriesTable} message TimeSeriesTable
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ TimeSeriesTable.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.dataSets = [];
+ if (message.dataSets && message.dataSets.length) {
+ object.dataSets = [];
+ for (var j = 0; j < message.dataSets.length; ++j)
+ object.dataSets[j] = $root.google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet.toObject(message.dataSets[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this TimeSeriesTable to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ TimeSeriesTable.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for TimeSeriesTable
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ TimeSeriesTable.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.TimeSeriesTable";
+ };
+
+ TimeSeriesTable.TableDataSet = (function() {
+
+ /**
+ * Properties of a TableDataSet.
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @interface ITableDataSet
+ * @property {google.monitoring.dashboard.v1.ITimeSeriesQuery|null} [timeSeriesQuery] TableDataSet timeSeriesQuery
+ * @property {string|null} [tableTemplate] TableDataSet tableTemplate
+ * @property {google.protobuf.IDuration|null} [minAlignmentPeriod] TableDataSet minAlignmentPeriod
+ * @property {google.monitoring.dashboard.v1.ITableDisplayOptions|null} [tableDisplayOptions] TableDataSet tableDisplayOptions
+ */
+
+ /**
+ * Constructs a new TableDataSet.
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable
+ * @classdesc Represents a TableDataSet.
+ * @implements ITableDataSet
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.TimeSeriesTable.ITableDataSet=} [properties] Properties to set
+ */
+ function TableDataSet(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]];
+ }
+
+ /**
+ * TableDataSet timeSeriesQuery.
+ * @member {google.monitoring.dashboard.v1.ITimeSeriesQuery|null|undefined} timeSeriesQuery
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @instance
+ */
+ TableDataSet.prototype.timeSeriesQuery = null;
+
+ /**
+ * TableDataSet tableTemplate.
+ * @member {string} tableTemplate
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @instance
+ */
+ TableDataSet.prototype.tableTemplate = "";
+
+ /**
+ * TableDataSet minAlignmentPeriod.
+ * @member {google.protobuf.IDuration|null|undefined} minAlignmentPeriod
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @instance
+ */
+ TableDataSet.prototype.minAlignmentPeriod = null;
+
+ /**
+ * TableDataSet tableDisplayOptions.
+ * @member {google.monitoring.dashboard.v1.ITableDisplayOptions|null|undefined} tableDisplayOptions
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @instance
+ */
+ TableDataSet.prototype.tableDisplayOptions = null;
+
+ /**
+ * Creates a new TableDataSet instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @static
+ * @param {google.monitoring.dashboard.v1.TimeSeriesTable.ITableDataSet=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet} TableDataSet instance
+ */
+ TableDataSet.create = function create(properties) {
+ return new TableDataSet(properties);
+ };
+
+ /**
+ * Encodes the specified TableDataSet message. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @static
+ * @param {google.monitoring.dashboard.v1.TimeSeriesTable.ITableDataSet} message TableDataSet message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TableDataSet.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.timeSeriesQuery != null && Object.hasOwnProperty.call(message, "timeSeriesQuery"))
+ $root.google.monitoring.dashboard.v1.TimeSeriesQuery.encode(message.timeSeriesQuery, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.tableTemplate != null && Object.hasOwnProperty.call(message, "tableTemplate"))
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.tableTemplate);
+ if (message.minAlignmentPeriod != null && Object.hasOwnProperty.call(message, "minAlignmentPeriod"))
+ $root.google.protobuf.Duration.encode(message.minAlignmentPeriod, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.tableDisplayOptions != null && Object.hasOwnProperty.call(message, "tableDisplayOptions"))
+ $root.google.monitoring.dashboard.v1.TableDisplayOptions.encode(message.tableDisplayOptions, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified TableDataSet message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @static
+ * @param {google.monitoring.dashboard.v1.TimeSeriesTable.ITableDataSet} message TableDataSet message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TableDataSet.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a TableDataSet message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet} TableDataSet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ TableDataSet.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.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.timeSeriesQuery = $root.google.monitoring.dashboard.v1.TimeSeriesQuery.decode(reader, reader.uint32());
+ break;
+ }
+ case 2: {
+ message.tableTemplate = reader.string();
+ break;
+ }
+ case 3: {
+ message.minAlignmentPeriod = $root.google.protobuf.Duration.decode(reader, reader.uint32());
+ break;
+ }
+ case 4: {
+ message.tableDisplayOptions = $root.google.monitoring.dashboard.v1.TableDisplayOptions.decode(reader, reader.uint32());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a TableDataSet message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet} TableDataSet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ TableDataSet.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a TableDataSet message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ TableDataSet.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.timeSeriesQuery != null && message.hasOwnProperty("timeSeriesQuery")) {
+ var error = $root.google.monitoring.dashboard.v1.TimeSeriesQuery.verify(message.timeSeriesQuery);
+ if (error)
+ return "timeSeriesQuery." + error;
+ }
+ if (message.tableTemplate != null && message.hasOwnProperty("tableTemplate"))
+ if (!$util.isString(message.tableTemplate))
+ return "tableTemplate: string expected";
+ if (message.minAlignmentPeriod != null && message.hasOwnProperty("minAlignmentPeriod")) {
+ var error = $root.google.protobuf.Duration.verify(message.minAlignmentPeriod);
+ if (error)
+ return "minAlignmentPeriod." + error;
+ }
+ if (message.tableDisplayOptions != null && message.hasOwnProperty("tableDisplayOptions")) {
+ var error = $root.google.monitoring.dashboard.v1.TableDisplayOptions.verify(message.tableDisplayOptions);
+ if (error)
+ return "tableDisplayOptions." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a TableDataSet message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet} TableDataSet
+ */
+ TableDataSet.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet();
+ if (object.timeSeriesQuery != null) {
+ if (typeof object.timeSeriesQuery !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet.timeSeriesQuery: object expected");
+ message.timeSeriesQuery = $root.google.monitoring.dashboard.v1.TimeSeriesQuery.fromObject(object.timeSeriesQuery);
+ }
+ if (object.tableTemplate != null)
+ message.tableTemplate = String(object.tableTemplate);
+ if (object.minAlignmentPeriod != null) {
+ if (typeof object.minAlignmentPeriod !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet.minAlignmentPeriod: object expected");
+ message.minAlignmentPeriod = $root.google.protobuf.Duration.fromObject(object.minAlignmentPeriod);
+ }
+ if (object.tableDisplayOptions != null) {
+ if (typeof object.tableDisplayOptions !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet.tableDisplayOptions: object expected");
+ message.tableDisplayOptions = $root.google.monitoring.dashboard.v1.TableDisplayOptions.fromObject(object.tableDisplayOptions);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a TableDataSet message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @static
+ * @param {google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet} message TableDataSet
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ TableDataSet.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.timeSeriesQuery = null;
+ object.tableTemplate = "";
+ object.minAlignmentPeriod = null;
+ object.tableDisplayOptions = null;
+ }
+ if (message.timeSeriesQuery != null && message.hasOwnProperty("timeSeriesQuery"))
+ object.timeSeriesQuery = $root.google.monitoring.dashboard.v1.TimeSeriesQuery.toObject(message.timeSeriesQuery, options);
+ if (message.tableTemplate != null && message.hasOwnProperty("tableTemplate"))
+ object.tableTemplate = message.tableTemplate;
+ if (message.minAlignmentPeriod != null && message.hasOwnProperty("minAlignmentPeriod"))
+ object.minAlignmentPeriod = $root.google.protobuf.Duration.toObject(message.minAlignmentPeriod, options);
+ if (message.tableDisplayOptions != null && message.hasOwnProperty("tableDisplayOptions"))
+ object.tableDisplayOptions = $root.google.monitoring.dashboard.v1.TableDisplayOptions.toObject(message.tableDisplayOptions, options);
+ return object;
+ };
+
+ /**
+ * Converts this TableDataSet to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ TableDataSet.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for TableDataSet
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ TableDataSet.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.TimeSeriesTable.TableDataSet";
+ };
+
+ return TableDataSet;
+ })();
+
+ return TimeSeriesTable;
+ })();
+
+ v1.TableDisplayOptions = (function() {
+
+ /**
+ * Properties of a TableDisplayOptions.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface ITableDisplayOptions
+ * @property {Array.|null} [shownColumns] TableDisplayOptions shownColumns
+ */
+
+ /**
+ * Constructs a new TableDisplayOptions.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a TableDisplayOptions.
+ * @implements ITableDisplayOptions
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.ITableDisplayOptions=} [properties] Properties to set
+ */
+ function TableDisplayOptions(properties) {
+ this.shownColumns = [];
+ 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]];
+ }
+
+ /**
+ * TableDisplayOptions shownColumns.
+ * @member {Array.} shownColumns
+ * @memberof google.monitoring.dashboard.v1.TableDisplayOptions
+ * @instance
+ */
+ TableDisplayOptions.prototype.shownColumns = $util.emptyArray;
+
+ /**
+ * Creates a new TableDisplayOptions instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.TableDisplayOptions
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITableDisplayOptions=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.TableDisplayOptions} TableDisplayOptions instance
+ */
+ TableDisplayOptions.create = function create(properties) {
+ return new TableDisplayOptions(properties);
+ };
+
+ /**
+ * Encodes the specified TableDisplayOptions message. Does not implicitly {@link google.monitoring.dashboard.v1.TableDisplayOptions.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.TableDisplayOptions
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITableDisplayOptions} message TableDisplayOptions message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TableDisplayOptions.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.shownColumns != null && message.shownColumns.length)
+ for (var i = 0; i < message.shownColumns.length; ++i)
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.shownColumns[i]);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified TableDisplayOptions message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.TableDisplayOptions.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TableDisplayOptions
+ * @static
+ * @param {google.monitoring.dashboard.v1.ITableDisplayOptions} message TableDisplayOptions message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ TableDisplayOptions.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a TableDisplayOptions message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.TableDisplayOptions
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.TableDisplayOptions} TableDisplayOptions
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ TableDisplayOptions.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.monitoring.dashboard.v1.TableDisplayOptions();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ if (!(message.shownColumns && message.shownColumns.length))
+ message.shownColumns = [];
+ message.shownColumns.push(reader.string());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a TableDisplayOptions message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.TableDisplayOptions
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.TableDisplayOptions} TableDisplayOptions
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ TableDisplayOptions.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a TableDisplayOptions message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.TableDisplayOptions
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ TableDisplayOptions.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.shownColumns != null && message.hasOwnProperty("shownColumns")) {
+ if (!Array.isArray(message.shownColumns))
+ return "shownColumns: array expected";
+ for (var i = 0; i < message.shownColumns.length; ++i)
+ if (!$util.isString(message.shownColumns[i]))
+ return "shownColumns: string[] expected";
+ }
+ return null;
+ };
+
+ /**
+ * Creates a TableDisplayOptions message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.TableDisplayOptions
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.TableDisplayOptions} TableDisplayOptions
+ */
+ TableDisplayOptions.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.TableDisplayOptions)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.TableDisplayOptions();
+ if (object.shownColumns) {
+ if (!Array.isArray(object.shownColumns))
+ throw TypeError(".google.monitoring.dashboard.v1.TableDisplayOptions.shownColumns: array expected");
+ message.shownColumns = [];
+ for (var i = 0; i < object.shownColumns.length; ++i)
+ message.shownColumns[i] = String(object.shownColumns[i]);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a TableDisplayOptions message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.TableDisplayOptions
+ * @static
+ * @param {google.monitoring.dashboard.v1.TableDisplayOptions} message TableDisplayOptions
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ TableDisplayOptions.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.shownColumns = [];
+ if (message.shownColumns && message.shownColumns.length) {
+ object.shownColumns = [];
+ for (var j = 0; j < message.shownColumns.length; ++j)
+ object.shownColumns[j] = message.shownColumns[j];
+ }
+ return object;
+ };
+
+ /**
+ * Converts this TableDisplayOptions to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.TableDisplayOptions
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ TableDisplayOptions.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for TableDisplayOptions
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.TableDisplayOptions
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ TableDisplayOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.TableDisplayOptions";
+ };
+
+ return TableDisplayOptions;
+ })();
+
+ v1.Text = (function() {
+
+ /**
+ * Properties of a Text.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IText
+ * @property {string|null} [content] Text content
+ * @property {google.monitoring.dashboard.v1.Text.Format|null} [format] Text format
+ */
+
+ /**
+ * Constructs a new Text.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a Text.
+ * @implements IText
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IText=} [properties] Properties to set
+ */
+ function Text(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]];
+ }
+
+ /**
+ * Text content.
+ * @member {string} content
+ * @memberof google.monitoring.dashboard.v1.Text
+ * @instance
+ */
+ Text.prototype.content = "";
+
+ /**
+ * Text format.
+ * @member {google.monitoring.dashboard.v1.Text.Format} format
+ * @memberof google.monitoring.dashboard.v1.Text
+ * @instance
+ */
+ Text.prototype.format = 0;
+
+ /**
+ * Creates a new Text instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.Text
+ * @static
+ * @param {google.monitoring.dashboard.v1.IText=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.Text} Text instance
+ */
+ Text.create = function create(properties) {
+ return new Text(properties);
+ };
+
+ /**
+ * Encodes the specified Text message. Does not implicitly {@link google.monitoring.dashboard.v1.Text.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.Text
+ * @static
+ * @param {google.monitoring.dashboard.v1.IText} message Text message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Text.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.content != null && Object.hasOwnProperty.call(message, "content"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.content);
+ if (message.format != null && Object.hasOwnProperty.call(message, "format"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.format);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Text message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.Text.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Text
+ * @static
+ * @param {google.monitoring.dashboard.v1.IText} message Text message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Text.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Text message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.Text
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.Text} Text
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Text.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.monitoring.dashboard.v1.Text();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.content = reader.string();
+ break;
+ }
+ case 2: {
+ message.format = reader.int32();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Text message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.Text
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.Text} Text
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Text.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Text message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.Text
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Text.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.content != null && message.hasOwnProperty("content"))
+ if (!$util.isString(message.content))
+ return "content: string expected";
+ if (message.format != null && message.hasOwnProperty("format"))
+ switch (message.format) {
+ default:
+ return "format: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a Text message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.Text
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.Text} Text
+ */
+ Text.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.Text)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.Text();
+ if (object.content != null)
+ message.content = String(object.content);
+ switch (object.format) {
+ case "FORMAT_UNSPECIFIED":
+ case 0:
+ message.format = 0;
+ break;
+ case "MARKDOWN":
+ case 1:
+ message.format = 1;
+ break;
+ case "RAW":
+ case 2:
+ message.format = 2;
+ break;
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Text message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.Text
+ * @static
+ * @param {google.monitoring.dashboard.v1.Text} message Text
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Text.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.content = "";
+ object.format = options.enums === String ? "FORMAT_UNSPECIFIED" : 0;
+ }
+ if (message.content != null && message.hasOwnProperty("content"))
+ object.content = message.content;
+ if (message.format != null && message.hasOwnProperty("format"))
+ object.format = options.enums === String ? $root.google.monitoring.dashboard.v1.Text.Format[message.format] : message.format;
+ return object;
+ };
+
+ /**
+ * Converts this Text to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.Text
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Text.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for Text
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.Text
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Text.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.Text";
+ };
+
+ /**
+ * Format enum.
+ * @name google.monitoring.dashboard.v1.Text.Format
+ * @enum {number}
+ * @property {number} FORMAT_UNSPECIFIED=0 FORMAT_UNSPECIFIED value
+ * @property {number} MARKDOWN=1 MARKDOWN value
+ * @property {number} RAW=2 RAW value
+ */
+ Text.Format = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "FORMAT_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "MARKDOWN"] = 1;
+ values[valuesById[2] = "RAW"] = 2;
+ return values;
+ })();
+
+ return Text;
+ })();
+
+ v1.XyChart = (function() {
+
+ /**
+ * Properties of a XyChart.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IXyChart
+ * @property {Array.|null} [dataSets] XyChart dataSets
+ * @property {google.protobuf.IDuration|null} [timeshiftDuration] XyChart timeshiftDuration
+ * @property {Array.|null} [thresholds] XyChart thresholds
+ * @property {google.monitoring.dashboard.v1.XyChart.IAxis|null} [xAxis] XyChart xAxis
+ * @property {google.monitoring.dashboard.v1.XyChart.IAxis|null} [yAxis] XyChart yAxis
+ * @property {google.monitoring.dashboard.v1.XyChart.IAxis|null} [y2Axis] XyChart y2Axis
+ * @property {google.monitoring.dashboard.v1.IChartOptions|null} [chartOptions] XyChart chartOptions
+ */
+
+ /**
+ * Constructs a new XyChart.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a XyChart.
+ * @implements IXyChart
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IXyChart=} [properties] Properties to set
+ */
+ function XyChart(properties) {
+ this.dataSets = [];
+ this.thresholds = [];
+ 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]];
+ }
+
+ /**
+ * XyChart dataSets.
+ * @member {Array.} dataSets
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @instance
+ */
+ XyChart.prototype.dataSets = $util.emptyArray;
+
+ /**
+ * XyChart timeshiftDuration.
+ * @member {google.protobuf.IDuration|null|undefined} timeshiftDuration
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @instance
+ */
+ XyChart.prototype.timeshiftDuration = null;
+
+ /**
+ * XyChart thresholds.
+ * @member {Array.} thresholds
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @instance
+ */
+ XyChart.prototype.thresholds = $util.emptyArray;
+
+ /**
+ * XyChart xAxis.
+ * @member {google.monitoring.dashboard.v1.XyChart.IAxis|null|undefined} xAxis
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @instance
+ */
+ XyChart.prototype.xAxis = null;
+
+ /**
+ * XyChart yAxis.
+ * @member {google.monitoring.dashboard.v1.XyChart.IAxis|null|undefined} yAxis
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @instance
+ */
+ XyChart.prototype.yAxis = null;
+
+ /**
+ * XyChart y2Axis.
+ * @member {google.monitoring.dashboard.v1.XyChart.IAxis|null|undefined} y2Axis
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @instance
+ */
+ XyChart.prototype.y2Axis = null;
+
+ /**
+ * XyChart chartOptions.
+ * @member {google.monitoring.dashboard.v1.IChartOptions|null|undefined} chartOptions
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @instance
+ */
+ XyChart.prototype.chartOptions = null;
+
+ /**
+ * Creates a new XyChart instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @static
+ * @param {google.monitoring.dashboard.v1.IXyChart=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.XyChart} XyChart instance
+ */
+ XyChart.create = function create(properties) {
+ return new XyChart(properties);
+ };
+
+ /**
+ * Encodes the specified XyChart message. Does not implicitly {@link google.monitoring.dashboard.v1.XyChart.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @static
+ * @param {google.monitoring.dashboard.v1.IXyChart} message XyChart message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ XyChart.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.dataSets != null && message.dataSets.length)
+ for (var i = 0; i < message.dataSets.length; ++i)
+ $root.google.monitoring.dashboard.v1.XyChart.DataSet.encode(message.dataSets[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.timeshiftDuration != null && Object.hasOwnProperty.call(message, "timeshiftDuration"))
+ $root.google.protobuf.Duration.encode(message.timeshiftDuration, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ if (message.thresholds != null && message.thresholds.length)
+ for (var i = 0; i < message.thresholds.length; ++i)
+ $root.google.monitoring.dashboard.v1.Threshold.encode(message.thresholds[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
+ if (message.xAxis != null && Object.hasOwnProperty.call(message, "xAxis"))
+ $root.google.monitoring.dashboard.v1.XyChart.Axis.encode(message.xAxis, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();
+ if (message.yAxis != null && Object.hasOwnProperty.call(message, "yAxis"))
+ $root.google.monitoring.dashboard.v1.XyChart.Axis.encode(message.yAxis, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();
+ if (message.chartOptions != null && Object.hasOwnProperty.call(message, "chartOptions"))
+ $root.google.monitoring.dashboard.v1.ChartOptions.encode(message.chartOptions, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();
+ if (message.y2Axis != null && Object.hasOwnProperty.call(message, "y2Axis"))
+ $root.google.monitoring.dashboard.v1.XyChart.Axis.encode(message.y2Axis, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified XyChart message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.XyChart.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @static
+ * @param {google.monitoring.dashboard.v1.IXyChart} message XyChart message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ XyChart.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a XyChart message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.XyChart} XyChart
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ XyChart.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.monitoring.dashboard.v1.XyChart();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ if (!(message.dataSets && message.dataSets.length))
+ message.dataSets = [];
+ message.dataSets.push($root.google.monitoring.dashboard.v1.XyChart.DataSet.decode(reader, reader.uint32()));
+ break;
+ }
+ case 4: {
+ message.timeshiftDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32());
+ break;
+ }
+ case 5: {
+ if (!(message.thresholds && message.thresholds.length))
+ message.thresholds = [];
+ message.thresholds.push($root.google.monitoring.dashboard.v1.Threshold.decode(reader, reader.uint32()));
+ break;
+ }
+ case 6: {
+ message.xAxis = $root.google.monitoring.dashboard.v1.XyChart.Axis.decode(reader, reader.uint32());
+ break;
+ }
+ case 7: {
+ message.yAxis = $root.google.monitoring.dashboard.v1.XyChart.Axis.decode(reader, reader.uint32());
+ break;
+ }
+ case 9: {
+ message.y2Axis = $root.google.monitoring.dashboard.v1.XyChart.Axis.decode(reader, reader.uint32());
+ break;
+ }
+ case 8: {
+ message.chartOptions = $root.google.monitoring.dashboard.v1.ChartOptions.decode(reader, reader.uint32());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a XyChart message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.XyChart} XyChart
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ XyChart.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a XyChart message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ XyChart.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.dataSets != null && message.hasOwnProperty("dataSets")) {
+ if (!Array.isArray(message.dataSets))
+ return "dataSets: array expected";
+ for (var i = 0; i < message.dataSets.length; ++i) {
+ var error = $root.google.monitoring.dashboard.v1.XyChart.DataSet.verify(message.dataSets[i]);
+ if (error)
+ return "dataSets." + error;
+ }
+ }
+ if (message.timeshiftDuration != null && message.hasOwnProperty("timeshiftDuration")) {
+ var error = $root.google.protobuf.Duration.verify(message.timeshiftDuration);
+ if (error)
+ return "timeshiftDuration." + error;
+ }
+ if (message.thresholds != null && message.hasOwnProperty("thresholds")) {
+ if (!Array.isArray(message.thresholds))
+ return "thresholds: array expected";
+ for (var i = 0; i < message.thresholds.length; ++i) {
+ var error = $root.google.monitoring.dashboard.v1.Threshold.verify(message.thresholds[i]);
+ if (error)
+ return "thresholds." + error;
+ }
+ }
+ if (message.xAxis != null && message.hasOwnProperty("xAxis")) {
+ var error = $root.google.monitoring.dashboard.v1.XyChart.Axis.verify(message.xAxis);
+ if (error)
+ return "xAxis." + error;
+ }
+ if (message.yAxis != null && message.hasOwnProperty("yAxis")) {
+ var error = $root.google.monitoring.dashboard.v1.XyChart.Axis.verify(message.yAxis);
+ if (error)
+ return "yAxis." + error;
+ }
+ if (message.y2Axis != null && message.hasOwnProperty("y2Axis")) {
+ var error = $root.google.monitoring.dashboard.v1.XyChart.Axis.verify(message.y2Axis);
+ if (error)
+ return "y2Axis." + error;
+ }
+ if (message.chartOptions != null && message.hasOwnProperty("chartOptions")) {
+ var error = $root.google.monitoring.dashboard.v1.ChartOptions.verify(message.chartOptions);
+ if (error)
+ return "chartOptions." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a XyChart message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.XyChart} XyChart
+ */
+ XyChart.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.XyChart)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.XyChart();
+ if (object.dataSets) {
+ if (!Array.isArray(object.dataSets))
+ throw TypeError(".google.monitoring.dashboard.v1.XyChart.dataSets: array expected");
+ message.dataSets = [];
+ for (var i = 0; i < object.dataSets.length; ++i) {
+ if (typeof object.dataSets[i] !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.XyChart.dataSets: object expected");
+ message.dataSets[i] = $root.google.monitoring.dashboard.v1.XyChart.DataSet.fromObject(object.dataSets[i]);
+ }
+ }
+ if (object.timeshiftDuration != null) {
+ if (typeof object.timeshiftDuration !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.XyChart.timeshiftDuration: object expected");
+ message.timeshiftDuration = $root.google.protobuf.Duration.fromObject(object.timeshiftDuration);
+ }
+ if (object.thresholds) {
+ if (!Array.isArray(object.thresholds))
+ throw TypeError(".google.monitoring.dashboard.v1.XyChart.thresholds: array expected");
+ message.thresholds = [];
+ for (var i = 0; i < object.thresholds.length; ++i) {
+ if (typeof object.thresholds[i] !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.XyChart.thresholds: object expected");
+ message.thresholds[i] = $root.google.monitoring.dashboard.v1.Threshold.fromObject(object.thresholds[i]);
+ }
+ }
+ if (object.xAxis != null) {
+ if (typeof object.xAxis !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.XyChart.xAxis: object expected");
+ message.xAxis = $root.google.monitoring.dashboard.v1.XyChart.Axis.fromObject(object.xAxis);
+ }
+ if (object.yAxis != null) {
+ if (typeof object.yAxis !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.XyChart.yAxis: object expected");
+ message.yAxis = $root.google.monitoring.dashboard.v1.XyChart.Axis.fromObject(object.yAxis);
+ }
+ if (object.y2Axis != null) {
+ if (typeof object.y2Axis !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.XyChart.y2Axis: object expected");
+ message.y2Axis = $root.google.monitoring.dashboard.v1.XyChart.Axis.fromObject(object.y2Axis);
+ }
+ if (object.chartOptions != null) {
+ if (typeof object.chartOptions !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.XyChart.chartOptions: object expected");
+ message.chartOptions = $root.google.monitoring.dashboard.v1.ChartOptions.fromObject(object.chartOptions);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a XyChart message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @static
+ * @param {google.monitoring.dashboard.v1.XyChart} message XyChart
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ XyChart.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults) {
+ object.dataSets = [];
+ object.thresholds = [];
+ }
+ if (options.defaults) {
+ object.timeshiftDuration = null;
+ object.xAxis = null;
+ object.yAxis = null;
+ object.chartOptions = null;
+ object.y2Axis = null;
+ }
+ if (message.dataSets && message.dataSets.length) {
+ object.dataSets = [];
+ for (var j = 0; j < message.dataSets.length; ++j)
+ object.dataSets[j] = $root.google.monitoring.dashboard.v1.XyChart.DataSet.toObject(message.dataSets[j], options);
+ }
+ if (message.timeshiftDuration != null && message.hasOwnProperty("timeshiftDuration"))
+ object.timeshiftDuration = $root.google.protobuf.Duration.toObject(message.timeshiftDuration, options);
+ if (message.thresholds && message.thresholds.length) {
+ object.thresholds = [];
+ for (var j = 0; j < message.thresholds.length; ++j)
+ object.thresholds[j] = $root.google.monitoring.dashboard.v1.Threshold.toObject(message.thresholds[j], options);
+ }
+ if (message.xAxis != null && message.hasOwnProperty("xAxis"))
+ object.xAxis = $root.google.monitoring.dashboard.v1.XyChart.Axis.toObject(message.xAxis, options);
+ if (message.yAxis != null && message.hasOwnProperty("yAxis"))
+ object.yAxis = $root.google.monitoring.dashboard.v1.XyChart.Axis.toObject(message.yAxis, options);
+ if (message.chartOptions != null && message.hasOwnProperty("chartOptions"))
+ object.chartOptions = $root.google.monitoring.dashboard.v1.ChartOptions.toObject(message.chartOptions, options);
+ if (message.y2Axis != null && message.hasOwnProperty("y2Axis"))
+ object.y2Axis = $root.google.monitoring.dashboard.v1.XyChart.Axis.toObject(message.y2Axis, options);
+ return object;
+ };
+
+ /**
+ * Converts this XyChart to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ XyChart.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for XyChart
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ XyChart.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.XyChart";
+ };
+
+ XyChart.DataSet = (function() {
+
+ /**
+ * Properties of a DataSet.
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @interface IDataSet
+ * @property {google.monitoring.dashboard.v1.ITimeSeriesQuery|null} [timeSeriesQuery] DataSet timeSeriesQuery
+ * @property {google.monitoring.dashboard.v1.XyChart.DataSet.PlotType|null} [plotType] DataSet plotType
+ * @property {string|null} [legendTemplate] DataSet legendTemplate
+ * @property {google.protobuf.IDuration|null} [minAlignmentPeriod] DataSet minAlignmentPeriod
+ * @property {google.monitoring.dashboard.v1.XyChart.DataSet.TargetAxis|null} [targetAxis] DataSet targetAxis
+ */
+
+ /**
+ * Constructs a new DataSet.
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @classdesc Represents a DataSet.
+ * @implements IDataSet
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.XyChart.IDataSet=} [properties] Properties to set
+ */
+ function DataSet(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]];
+ }
+
+ /**
+ * DataSet timeSeriesQuery.
+ * @member {google.monitoring.dashboard.v1.ITimeSeriesQuery|null|undefined} timeSeriesQuery
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @instance
+ */
+ DataSet.prototype.timeSeriesQuery = null;
+
+ /**
+ * DataSet plotType.
+ * @member {google.monitoring.dashboard.v1.XyChart.DataSet.PlotType} plotType
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @instance
+ */
+ DataSet.prototype.plotType = 0;
+
+ /**
+ * DataSet legendTemplate.
+ * @member {string} legendTemplate
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @instance
+ */
+ DataSet.prototype.legendTemplate = "";
+
+ /**
+ * DataSet minAlignmentPeriod.
+ * @member {google.protobuf.IDuration|null|undefined} minAlignmentPeriod
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @instance
+ */
+ DataSet.prototype.minAlignmentPeriod = null;
+
+ /**
+ * DataSet targetAxis.
+ * @member {google.monitoring.dashboard.v1.XyChart.DataSet.TargetAxis} targetAxis
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @instance
+ */
+ DataSet.prototype.targetAxis = 0;
+
+ /**
+ * Creates a new DataSet instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @static
+ * @param {google.monitoring.dashboard.v1.XyChart.IDataSet=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.XyChart.DataSet} DataSet instance
+ */
+ DataSet.create = function create(properties) {
+ return new DataSet(properties);
+ };
+
+ /**
+ * Encodes the specified DataSet message. Does not implicitly {@link google.monitoring.dashboard.v1.XyChart.DataSet.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @static
+ * @param {google.monitoring.dashboard.v1.XyChart.IDataSet} message DataSet message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ DataSet.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.timeSeriesQuery != null && Object.hasOwnProperty.call(message, "timeSeriesQuery"))
+ $root.google.monitoring.dashboard.v1.TimeSeriesQuery.encode(message.timeSeriesQuery, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.plotType != null && Object.hasOwnProperty.call(message, "plotType"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.plotType);
+ if (message.legendTemplate != null && Object.hasOwnProperty.call(message, "legendTemplate"))
+ writer.uint32(/* id 3, wireType 2 =*/26).string(message.legendTemplate);
+ if (message.minAlignmentPeriod != null && Object.hasOwnProperty.call(message, "minAlignmentPeriod"))
+ $root.google.protobuf.Duration.encode(message.minAlignmentPeriod, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ if (message.targetAxis != null && Object.hasOwnProperty.call(message, "targetAxis"))
+ writer.uint32(/* id 5, wireType 0 =*/40).int32(message.targetAxis);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified DataSet message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.XyChart.DataSet.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @static
+ * @param {google.monitoring.dashboard.v1.XyChart.IDataSet} message DataSet message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ DataSet.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a DataSet message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.XyChart.DataSet} DataSet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ DataSet.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.monitoring.dashboard.v1.XyChart.DataSet();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.timeSeriesQuery = $root.google.monitoring.dashboard.v1.TimeSeriesQuery.decode(reader, reader.uint32());
+ break;
+ }
+ case 2: {
+ message.plotType = reader.int32();
+ break;
+ }
+ case 3: {
+ message.legendTemplate = reader.string();
+ break;
+ }
+ case 4: {
+ message.minAlignmentPeriod = $root.google.protobuf.Duration.decode(reader, reader.uint32());
+ break;
+ }
+ case 5: {
+ message.targetAxis = reader.int32();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a DataSet message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.XyChart.DataSet} DataSet
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ DataSet.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a DataSet message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ DataSet.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.timeSeriesQuery != null && message.hasOwnProperty("timeSeriesQuery")) {
+ var error = $root.google.monitoring.dashboard.v1.TimeSeriesQuery.verify(message.timeSeriesQuery);
+ if (error)
+ return "timeSeriesQuery." + error;
+ }
+ if (message.plotType != null && message.hasOwnProperty("plotType"))
+ switch (message.plotType) {
+ default:
+ return "plotType: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ break;
+ }
+ if (message.legendTemplate != null && message.hasOwnProperty("legendTemplate"))
+ if (!$util.isString(message.legendTemplate))
+ return "legendTemplate: string expected";
+ if (message.minAlignmentPeriod != null && message.hasOwnProperty("minAlignmentPeriod")) {
+ var error = $root.google.protobuf.Duration.verify(message.minAlignmentPeriod);
+ if (error)
+ return "minAlignmentPeriod." + error;
+ }
+ if (message.targetAxis != null && message.hasOwnProperty("targetAxis"))
+ switch (message.targetAxis) {
+ default:
+ return "targetAxis: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a DataSet message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.XyChart.DataSet} DataSet
+ */
+ DataSet.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.XyChart.DataSet)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.XyChart.DataSet();
+ if (object.timeSeriesQuery != null) {
+ if (typeof object.timeSeriesQuery !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.XyChart.DataSet.timeSeriesQuery: object expected");
+ message.timeSeriesQuery = $root.google.monitoring.dashboard.v1.TimeSeriesQuery.fromObject(object.timeSeriesQuery);
+ }
+ switch (object.plotType) {
+ case "PLOT_TYPE_UNSPECIFIED":
+ case 0:
+ message.plotType = 0;
+ break;
+ case "LINE":
+ case 1:
+ message.plotType = 1;
+ break;
+ case "STACKED_AREA":
+ case 2:
+ message.plotType = 2;
+ break;
+ case "STACKED_BAR":
+ case 3:
+ message.plotType = 3;
+ break;
+ case "HEATMAP":
+ case 4:
+ message.plotType = 4;
+ break;
+ }
+ if (object.legendTemplate != null)
+ message.legendTemplate = String(object.legendTemplate);
+ if (object.minAlignmentPeriod != null) {
+ if (typeof object.minAlignmentPeriod !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.XyChart.DataSet.minAlignmentPeriod: object expected");
+ message.minAlignmentPeriod = $root.google.protobuf.Duration.fromObject(object.minAlignmentPeriod);
+ }
+ switch (object.targetAxis) {
+ case "TARGET_AXIS_UNSPECIFIED":
+ case 0:
+ message.targetAxis = 0;
+ break;
+ case "Y1":
+ case 1:
+ message.targetAxis = 1;
+ break;
+ case "Y2":
+ case 2:
+ message.targetAxis = 2;
+ break;
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a DataSet message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @static
+ * @param {google.monitoring.dashboard.v1.XyChart.DataSet} message DataSet
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ DataSet.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.timeSeriesQuery = null;
+ object.plotType = options.enums === String ? "PLOT_TYPE_UNSPECIFIED" : 0;
+ object.legendTemplate = "";
+ object.minAlignmentPeriod = null;
+ object.targetAxis = options.enums === String ? "TARGET_AXIS_UNSPECIFIED" : 0;
+ }
+ if (message.timeSeriesQuery != null && message.hasOwnProperty("timeSeriesQuery"))
+ object.timeSeriesQuery = $root.google.monitoring.dashboard.v1.TimeSeriesQuery.toObject(message.timeSeriesQuery, options);
+ if (message.plotType != null && message.hasOwnProperty("plotType"))
+ object.plotType = options.enums === String ? $root.google.monitoring.dashboard.v1.XyChart.DataSet.PlotType[message.plotType] : message.plotType;
+ if (message.legendTemplate != null && message.hasOwnProperty("legendTemplate"))
+ object.legendTemplate = message.legendTemplate;
+ if (message.minAlignmentPeriod != null && message.hasOwnProperty("minAlignmentPeriod"))
+ object.minAlignmentPeriod = $root.google.protobuf.Duration.toObject(message.minAlignmentPeriod, options);
+ if (message.targetAxis != null && message.hasOwnProperty("targetAxis"))
+ object.targetAxis = options.enums === String ? $root.google.monitoring.dashboard.v1.XyChart.DataSet.TargetAxis[message.targetAxis] : message.targetAxis;
+ return object;
+ };
+
+ /**
+ * Converts this DataSet to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ DataSet.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for DataSet
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.XyChart.DataSet
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ DataSet.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.XyChart.DataSet";
+ };
+
+ /**
+ * PlotType enum.
+ * @name google.monitoring.dashboard.v1.XyChart.DataSet.PlotType
+ * @enum {number}
+ * @property {number} PLOT_TYPE_UNSPECIFIED=0 PLOT_TYPE_UNSPECIFIED value
+ * @property {number} LINE=1 LINE value
+ * @property {number} STACKED_AREA=2 STACKED_AREA value
+ * @property {number} STACKED_BAR=3 STACKED_BAR value
+ * @property {number} HEATMAP=4 HEATMAP value
+ */
+ DataSet.PlotType = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "PLOT_TYPE_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "LINE"] = 1;
+ values[valuesById[2] = "STACKED_AREA"] = 2;
+ values[valuesById[3] = "STACKED_BAR"] = 3;
+ values[valuesById[4] = "HEATMAP"] = 4;
+ return values;
+ })();
+
+ /**
+ * TargetAxis enum.
+ * @name google.monitoring.dashboard.v1.XyChart.DataSet.TargetAxis
+ * @enum {number}
+ * @property {number} TARGET_AXIS_UNSPECIFIED=0 TARGET_AXIS_UNSPECIFIED value
+ * @property {number} Y1=1 Y1 value
+ * @property {number} Y2=2 Y2 value
+ */
+ DataSet.TargetAxis = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "TARGET_AXIS_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "Y1"] = 1;
+ values[valuesById[2] = "Y2"] = 2;
+ return values;
+ })();
+
+ return DataSet;
+ })();
+
+ XyChart.Axis = (function() {
+
+ /**
+ * Properties of an Axis.
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @interface IAxis
+ * @property {string|null} [label] Axis label
+ * @property {google.monitoring.dashboard.v1.XyChart.Axis.Scale|null} [scale] Axis scale
+ */
+
+ /**
+ * Constructs a new Axis.
+ * @memberof google.monitoring.dashboard.v1.XyChart
+ * @classdesc Represents an Axis.
+ * @implements IAxis
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.XyChart.IAxis=} [properties] Properties to set
+ */
+ function Axis(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]];
+ }
+
+ /**
+ * Axis label.
+ * @member {string} label
+ * @memberof google.monitoring.dashboard.v1.XyChart.Axis
+ * @instance
+ */
+ Axis.prototype.label = "";
+
+ /**
+ * Axis scale.
+ * @member {google.monitoring.dashboard.v1.XyChart.Axis.Scale} scale
+ * @memberof google.monitoring.dashboard.v1.XyChart.Axis
+ * @instance
+ */
+ Axis.prototype.scale = 0;
+
+ /**
+ * Creates a new Axis instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.XyChart.Axis
+ * @static
+ * @param {google.monitoring.dashboard.v1.XyChart.IAxis=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.XyChart.Axis} Axis instance
+ */
+ Axis.create = function create(properties) {
+ return new Axis(properties);
+ };
+
+ /**
+ * Encodes the specified Axis message. Does not implicitly {@link google.monitoring.dashboard.v1.XyChart.Axis.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.XyChart.Axis
+ * @static
+ * @param {google.monitoring.dashboard.v1.XyChart.IAxis} message Axis message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Axis.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.label != null && Object.hasOwnProperty.call(message, "label"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.label);
+ if (message.scale != null && Object.hasOwnProperty.call(message, "scale"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.scale);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Axis message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.XyChart.Axis.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.XyChart.Axis
+ * @static
+ * @param {google.monitoring.dashboard.v1.XyChart.IAxis} message Axis message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Axis.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes an Axis message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.XyChart.Axis
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.XyChart.Axis} Axis
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Axis.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.monitoring.dashboard.v1.XyChart.Axis();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.label = reader.string();
+ break;
+ }
+ case 2: {
+ message.scale = reader.int32();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes an Axis message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.XyChart.Axis
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.XyChart.Axis} Axis
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Axis.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies an Axis message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.XyChart.Axis
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Axis.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.label != null && message.hasOwnProperty("label"))
+ if (!$util.isString(message.label))
+ return "label: string expected";
+ if (message.scale != null && message.hasOwnProperty("scale"))
+ switch (message.scale) {
+ default:
+ return "scale: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
+ return null;
+ };
+
+ /**
+ * Creates an Axis message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.XyChart.Axis
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.XyChart.Axis} Axis
+ */
+ Axis.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.XyChart.Axis)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.XyChart.Axis();
+ if (object.label != null)
+ message.label = String(object.label);
+ switch (object.scale) {
+ case "SCALE_UNSPECIFIED":
+ case 0:
+ message.scale = 0;
+ break;
+ case "LINEAR":
+ case 1:
+ message.scale = 1;
+ break;
+ case "LOG10":
+ case 2:
+ message.scale = 2;
+ break;
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from an Axis message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.XyChart.Axis
+ * @static
+ * @param {google.monitoring.dashboard.v1.XyChart.Axis} message Axis
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Axis.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.label = "";
+ object.scale = options.enums === String ? "SCALE_UNSPECIFIED" : 0;
+ }
+ if (message.label != null && message.hasOwnProperty("label"))
+ object.label = message.label;
+ if (message.scale != null && message.hasOwnProperty("scale"))
+ object.scale = options.enums === String ? $root.google.monitoring.dashboard.v1.XyChart.Axis.Scale[message.scale] : message.scale;
+ return object;
+ };
+
+ /**
+ * Converts this Axis to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.XyChart.Axis
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Axis.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for Axis
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.XyChart.Axis
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ Axis.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.XyChart.Axis";
+ };
+
+ /**
+ * Scale enum.
+ * @name google.monitoring.dashboard.v1.XyChart.Axis.Scale
+ * @enum {number}
+ * @property {number} SCALE_UNSPECIFIED=0 SCALE_UNSPECIFIED value
+ * @property {number} LINEAR=1 LINEAR value
+ * @property {number} LOG10=2 LOG10 value
+ */
+ Axis.Scale = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "SCALE_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "LINEAR"] = 1;
+ values[valuesById[2] = "LOG10"] = 2;
+ return values;
+ })();
+
+ return Axis;
+ })();
+
+ return XyChart;
+ })();
+
+ v1.ChartOptions = (function() {
+
+ /**
+ * Properties of a ChartOptions.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IChartOptions
+ * @property {google.monitoring.dashboard.v1.ChartOptions.Mode|null} [mode] ChartOptions mode
+ */
+
+ /**
+ * Constructs a new ChartOptions.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a ChartOptions.
+ * @implements IChartOptions
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IChartOptions=} [properties] Properties to set
+ */
+ function ChartOptions(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]];
+ }
+
+ /**
+ * ChartOptions mode.
+ * @member {google.monitoring.dashboard.v1.ChartOptions.Mode} mode
+ * @memberof google.monitoring.dashboard.v1.ChartOptions
+ * @instance
+ */
+ ChartOptions.prototype.mode = 0;
+
+ /**
+ * Creates a new ChartOptions instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.ChartOptions
+ * @static
+ * @param {google.monitoring.dashboard.v1.IChartOptions=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.ChartOptions} ChartOptions instance
+ */
+ ChartOptions.create = function create(properties) {
+ return new ChartOptions(properties);
+ };
+
+ /**
+ * Encodes the specified ChartOptions message. Does not implicitly {@link google.monitoring.dashboard.v1.ChartOptions.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.ChartOptions
+ * @static
+ * @param {google.monitoring.dashboard.v1.IChartOptions} message ChartOptions message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ChartOptions.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.mode != null && Object.hasOwnProperty.call(message, "mode"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.mode);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ChartOptions message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.ChartOptions.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.ChartOptions
+ * @static
+ * @param {google.monitoring.dashboard.v1.IChartOptions} message ChartOptions message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ChartOptions.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ChartOptions message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.ChartOptions
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.ChartOptions} ChartOptions
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ChartOptions.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.monitoring.dashboard.v1.ChartOptions();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.mode = reader.int32();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ChartOptions message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.ChartOptions
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.ChartOptions} ChartOptions
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ChartOptions.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ChartOptions message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.ChartOptions
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ChartOptions.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.mode != null && message.hasOwnProperty("mode"))
+ switch (message.mode) {
+ default:
+ return "mode: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ break;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a ChartOptions message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.ChartOptions
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.ChartOptions} ChartOptions
+ */
+ ChartOptions.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.ChartOptions)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.ChartOptions();
+ switch (object.mode) {
+ case "MODE_UNSPECIFIED":
+ case 0:
+ message.mode = 0;
+ break;
+ case "COLOR":
+ case 1:
+ message.mode = 1;
+ break;
+ case "X_RAY":
+ case 2:
+ message.mode = 2;
+ break;
+ case "STATS":
+ case 3:
+ message.mode = 3;
+ break;
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ChartOptions message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.ChartOptions
+ * @static
+ * @param {google.monitoring.dashboard.v1.ChartOptions} message ChartOptions
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ChartOptions.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.mode = options.enums === String ? "MODE_UNSPECIFIED" : 0;
+ if (message.mode != null && message.hasOwnProperty("mode"))
+ object.mode = options.enums === String ? $root.google.monitoring.dashboard.v1.ChartOptions.Mode[message.mode] : message.mode;
+ return object;
+ };
+
+ /**
+ * Converts this ChartOptions to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.ChartOptions
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ChartOptions.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for ChartOptions
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.ChartOptions
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ ChartOptions.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.ChartOptions";
+ };
+
+ /**
+ * Mode enum.
+ * @name google.monitoring.dashboard.v1.ChartOptions.Mode
+ * @enum {number}
+ * @property {number} MODE_UNSPECIFIED=0 MODE_UNSPECIFIED value
+ * @property {number} COLOR=1 COLOR value
+ * @property {number} X_RAY=2 X_RAY value
+ * @property {number} STATS=3 STATS value
+ */
+ ChartOptions.Mode = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "MODE_UNSPECIFIED"] = 0;
+ values[valuesById[1] = "COLOR"] = 1;
+ values[valuesById[2] = "X_RAY"] = 2;
+ values[valuesById[3] = "STATS"] = 3;
+ return values;
+ })();
+
+ return ChartOptions;
+ })();
+
+ v1.DashboardsService = (function() {
+
+ /**
+ * Constructs a new DashboardsService service.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a DashboardsService
+ * @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 DashboardsService(rpcImpl, requestDelimited, responseDelimited) {
+ $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited);
+ }
+
+ (DashboardsService.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = DashboardsService;
+
+ /**
+ * Creates new DashboardsService service using the specified rpc implementation.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @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 {DashboardsService} RPC service. Useful where requests and/or responses are streamed.
+ */
+ DashboardsService.create = function create(rpcImpl, requestDelimited, responseDelimited) {
+ return new this(rpcImpl, requestDelimited, responseDelimited);
+ };
+
+ /**
+ * Callback as used by {@link google.monitoring.dashboard.v1.DashboardsService|createDashboard}.
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @typedef CreateDashboardCallback
+ * @type {function}
+ * @param {Error|null} error Error, if any
+ * @param {google.monitoring.dashboard.v1.Dashboard} [response] Dashboard
+ */
+
+ /**
+ * Calls CreateDashboard.
+ * @function createDashboard
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @instance
+ * @param {google.monitoring.dashboard.v1.ICreateDashboardRequest} request CreateDashboardRequest message or plain object
+ * @param {google.monitoring.dashboard.v1.DashboardsService.CreateDashboardCallback} callback Node-style callback called with the error, if any, and Dashboard
+ * @returns {undefined}
+ * @variation 1
+ */
+ Object.defineProperty(DashboardsService.prototype.createDashboard = function createDashboard(request, callback) {
+ return this.rpcCall(createDashboard, $root.google.monitoring.dashboard.v1.CreateDashboardRequest, $root.google.monitoring.dashboard.v1.Dashboard, request, callback);
+ }, "name", { value: "CreateDashboard" });
+
+ /**
+ * Calls CreateDashboard.
+ * @function createDashboard
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @instance
+ * @param {google.monitoring.dashboard.v1.ICreateDashboardRequest} request CreateDashboardRequest message or plain object
+ * @returns {Promise} Promise
+ * @variation 2
+ */
+
+ /**
+ * Callback as used by {@link google.monitoring.dashboard.v1.DashboardsService|listDashboards}.
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @typedef ListDashboardsCallback
+ * @type {function}
+ * @param {Error|null} error Error, if any
+ * @param {google.monitoring.dashboard.v1.ListDashboardsResponse} [response] ListDashboardsResponse
+ */
+
+ /**
+ * Calls ListDashboards.
+ * @function listDashboards
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @instance
+ * @param {google.monitoring.dashboard.v1.IListDashboardsRequest} request ListDashboardsRequest message or plain object
+ * @param {google.monitoring.dashboard.v1.DashboardsService.ListDashboardsCallback} callback Node-style callback called with the error, if any, and ListDashboardsResponse
+ * @returns {undefined}
+ * @variation 1
+ */
+ Object.defineProperty(DashboardsService.prototype.listDashboards = function listDashboards(request, callback) {
+ return this.rpcCall(listDashboards, $root.google.monitoring.dashboard.v1.ListDashboardsRequest, $root.google.monitoring.dashboard.v1.ListDashboardsResponse, request, callback);
+ }, "name", { value: "ListDashboards" });
+
+ /**
+ * Calls ListDashboards.
+ * @function listDashboards
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @instance
+ * @param {google.monitoring.dashboard.v1.IListDashboardsRequest} request ListDashboardsRequest message or plain object
+ * @returns {Promise} Promise
+ * @variation 2
+ */
+
+ /**
+ * Callback as used by {@link google.monitoring.dashboard.v1.DashboardsService|getDashboard}.
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @typedef GetDashboardCallback
+ * @type {function}
+ * @param {Error|null} error Error, if any
+ * @param {google.monitoring.dashboard.v1.Dashboard} [response] Dashboard
+ */
+
+ /**
+ * Calls GetDashboard.
+ * @function getDashboard
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @instance
+ * @param {google.monitoring.dashboard.v1.IGetDashboardRequest} request GetDashboardRequest message or plain object
+ * @param {google.monitoring.dashboard.v1.DashboardsService.GetDashboardCallback} callback Node-style callback called with the error, if any, and Dashboard
+ * @returns {undefined}
+ * @variation 1
+ */
+ Object.defineProperty(DashboardsService.prototype.getDashboard = function getDashboard(request, callback) {
+ return this.rpcCall(getDashboard, $root.google.monitoring.dashboard.v1.GetDashboardRequest, $root.google.monitoring.dashboard.v1.Dashboard, request, callback);
+ }, "name", { value: "GetDashboard" });
+
+ /**
+ * Calls GetDashboard.
+ * @function getDashboard
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @instance
+ * @param {google.monitoring.dashboard.v1.IGetDashboardRequest} request GetDashboardRequest message or plain object
+ * @returns {Promise} Promise
+ * @variation 2
+ */
+
+ /**
+ * Callback as used by {@link google.monitoring.dashboard.v1.DashboardsService|deleteDashboard}.
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @typedef DeleteDashboardCallback
+ * @type {function}
+ * @param {Error|null} error Error, if any
+ * @param {google.protobuf.Empty} [response] Empty
+ */
+
+ /**
+ * Calls DeleteDashboard.
+ * @function deleteDashboard
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @instance
+ * @param {google.monitoring.dashboard.v1.IDeleteDashboardRequest} request DeleteDashboardRequest message or plain object
+ * @param {google.monitoring.dashboard.v1.DashboardsService.DeleteDashboardCallback} callback Node-style callback called with the error, if any, and Empty
+ * @returns {undefined}
+ * @variation 1
+ */
+ Object.defineProperty(DashboardsService.prototype.deleteDashboard = function deleteDashboard(request, callback) {
+ return this.rpcCall(deleteDashboard, $root.google.monitoring.dashboard.v1.DeleteDashboardRequest, $root.google.protobuf.Empty, request, callback);
+ }, "name", { value: "DeleteDashboard" });
+
+ /**
+ * Calls DeleteDashboard.
+ * @function deleteDashboard
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @instance
+ * @param {google.monitoring.dashboard.v1.IDeleteDashboardRequest} request DeleteDashboardRequest message or plain object
+ * @returns {Promise} Promise
+ * @variation 2
+ */
+
+ /**
+ * Callback as used by {@link google.monitoring.dashboard.v1.DashboardsService|updateDashboard}.
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @typedef UpdateDashboardCallback
+ * @type {function}
+ * @param {Error|null} error Error, if any
+ * @param {google.monitoring.dashboard.v1.Dashboard} [response] Dashboard
+ */
+
+ /**
+ * Calls UpdateDashboard.
+ * @function updateDashboard
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @instance
+ * @param {google.monitoring.dashboard.v1.IUpdateDashboardRequest} request UpdateDashboardRequest message or plain object
+ * @param {google.monitoring.dashboard.v1.DashboardsService.UpdateDashboardCallback} callback Node-style callback called with the error, if any, and Dashboard
+ * @returns {undefined}
+ * @variation 1
+ */
+ Object.defineProperty(DashboardsService.prototype.updateDashboard = function updateDashboard(request, callback) {
+ return this.rpcCall(updateDashboard, $root.google.monitoring.dashboard.v1.UpdateDashboardRequest, $root.google.monitoring.dashboard.v1.Dashboard, request, callback);
+ }, "name", { value: "UpdateDashboard" });
+
+ /**
+ * Calls UpdateDashboard.
+ * @function updateDashboard
+ * @memberof google.monitoring.dashboard.v1.DashboardsService
+ * @instance
+ * @param {google.monitoring.dashboard.v1.IUpdateDashboardRequest} request UpdateDashboardRequest message or plain object
+ * @returns {Promise} Promise
+ * @variation 2
+ */
+
+ return DashboardsService;
+ })();
+
+ v1.CreateDashboardRequest = (function() {
+
+ /**
+ * Properties of a CreateDashboardRequest.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface ICreateDashboardRequest
+ * @property {string|null} [parent] CreateDashboardRequest parent
+ * @property {google.monitoring.dashboard.v1.IDashboard|null} [dashboard] CreateDashboardRequest dashboard
+ * @property {boolean|null} [validateOnly] CreateDashboardRequest validateOnly
+ */
+
+ /**
+ * Constructs a new CreateDashboardRequest.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a CreateDashboardRequest.
+ * @implements ICreateDashboardRequest
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.ICreateDashboardRequest=} [properties] Properties to set
+ */
+ function CreateDashboardRequest(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]];
+ }
+
+ /**
+ * CreateDashboardRequest parent.
+ * @member {string} parent
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @instance
+ */
+ CreateDashboardRequest.prototype.parent = "";
+
+ /**
+ * CreateDashboardRequest dashboard.
+ * @member {google.monitoring.dashboard.v1.IDashboard|null|undefined} dashboard
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @instance
+ */
+ CreateDashboardRequest.prototype.dashboard = null;
+
+ /**
+ * CreateDashboardRequest validateOnly.
+ * @member {boolean} validateOnly
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @instance
+ */
+ CreateDashboardRequest.prototype.validateOnly = false;
+
+ /**
+ * Creates a new CreateDashboardRequest instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.ICreateDashboardRequest=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.CreateDashboardRequest} CreateDashboardRequest instance
+ */
+ CreateDashboardRequest.create = function create(properties) {
+ return new CreateDashboardRequest(properties);
+ };
+
+ /**
+ * Encodes the specified CreateDashboardRequest message. Does not implicitly {@link google.monitoring.dashboard.v1.CreateDashboardRequest.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.ICreateDashboardRequest} message CreateDashboardRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ CreateDashboardRequest.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.dashboard != null && Object.hasOwnProperty.call(message, "dashboard"))
+ $root.google.monitoring.dashboard.v1.Dashboard.encode(message.dashboard, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.validateOnly != null && Object.hasOwnProperty.call(message, "validateOnly"))
+ writer.uint32(/* id 3, wireType 0 =*/24).bool(message.validateOnly);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified CreateDashboardRequest message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.CreateDashboardRequest.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.ICreateDashboardRequest} message CreateDashboardRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ CreateDashboardRequest.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a CreateDashboardRequest message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.CreateDashboardRequest} CreateDashboardRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ CreateDashboardRequest.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.monitoring.dashboard.v1.CreateDashboardRequest();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.parent = reader.string();
+ break;
+ }
+ case 2: {
+ message.dashboard = $root.google.monitoring.dashboard.v1.Dashboard.decode(reader, reader.uint32());
+ break;
+ }
+ case 3: {
+ message.validateOnly = reader.bool();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a CreateDashboardRequest message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.CreateDashboardRequest} CreateDashboardRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ CreateDashboardRequest.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a CreateDashboardRequest message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ CreateDashboardRequest.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.dashboard != null && message.hasOwnProperty("dashboard")) {
+ var error = $root.google.monitoring.dashboard.v1.Dashboard.verify(message.dashboard);
+ if (error)
+ return "dashboard." + error;
+ }
+ if (message.validateOnly != null && message.hasOwnProperty("validateOnly"))
+ if (typeof message.validateOnly !== "boolean")
+ return "validateOnly: boolean expected";
+ return null;
+ };
+
+ /**
+ * Creates a CreateDashboardRequest message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.CreateDashboardRequest} CreateDashboardRequest
+ */
+ CreateDashboardRequest.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.CreateDashboardRequest)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.CreateDashboardRequest();
+ if (object.parent != null)
+ message.parent = String(object.parent);
+ if (object.dashboard != null) {
+ if (typeof object.dashboard !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.CreateDashboardRequest.dashboard: object expected");
+ message.dashboard = $root.google.monitoring.dashboard.v1.Dashboard.fromObject(object.dashboard);
+ }
+ if (object.validateOnly != null)
+ message.validateOnly = Boolean(object.validateOnly);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a CreateDashboardRequest message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.CreateDashboardRequest} message CreateDashboardRequest
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ CreateDashboardRequest.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.parent = "";
+ object.dashboard = null;
+ object.validateOnly = false;
+ }
+ if (message.parent != null && message.hasOwnProperty("parent"))
+ object.parent = message.parent;
+ if (message.dashboard != null && message.hasOwnProperty("dashboard"))
+ object.dashboard = $root.google.monitoring.dashboard.v1.Dashboard.toObject(message.dashboard, options);
+ if (message.validateOnly != null && message.hasOwnProperty("validateOnly"))
+ object.validateOnly = message.validateOnly;
+ return object;
+ };
+
+ /**
+ * Converts this CreateDashboardRequest to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ CreateDashboardRequest.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for CreateDashboardRequest
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.CreateDashboardRequest
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ CreateDashboardRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.CreateDashboardRequest";
+ };
+
+ return CreateDashboardRequest;
+ })();
+
+ v1.ListDashboardsRequest = (function() {
+
+ /**
+ * Properties of a ListDashboardsRequest.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IListDashboardsRequest
+ * @property {string|null} [parent] ListDashboardsRequest parent
+ * @property {number|null} [pageSize] ListDashboardsRequest pageSize
+ * @property {string|null} [pageToken] ListDashboardsRequest pageToken
+ */
+
+ /**
+ * Constructs a new ListDashboardsRequest.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a ListDashboardsRequest.
+ * @implements IListDashboardsRequest
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IListDashboardsRequest=} [properties] Properties to set
+ */
+ function ListDashboardsRequest(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]];
+ }
+
+ /**
+ * ListDashboardsRequest parent.
+ * @member {string} parent
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @instance
+ */
+ ListDashboardsRequest.prototype.parent = "";
+
+ /**
+ * ListDashboardsRequest pageSize.
+ * @member {number} pageSize
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @instance
+ */
+ ListDashboardsRequest.prototype.pageSize = 0;
+
+ /**
+ * ListDashboardsRequest pageToken.
+ * @member {string} pageToken
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @instance
+ */
+ ListDashboardsRequest.prototype.pageToken = "";
+
+ /**
+ * Creates a new ListDashboardsRequest instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.IListDashboardsRequest=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.ListDashboardsRequest} ListDashboardsRequest instance
+ */
+ ListDashboardsRequest.create = function create(properties) {
+ return new ListDashboardsRequest(properties);
+ };
+
+ /**
+ * Encodes the specified ListDashboardsRequest message. Does not implicitly {@link google.monitoring.dashboard.v1.ListDashboardsRequest.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.IListDashboardsRequest} message ListDashboardsRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ListDashboardsRequest.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);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ListDashboardsRequest message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.ListDashboardsRequest.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.IListDashboardsRequest} message ListDashboardsRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ListDashboardsRequest.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ListDashboardsRequest message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.ListDashboardsRequest} ListDashboardsRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ListDashboardsRequest.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.monitoring.dashboard.v1.ListDashboardsRequest();
+ 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;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ListDashboardsRequest message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.ListDashboardsRequest} ListDashboardsRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ListDashboardsRequest.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ListDashboardsRequest message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ListDashboardsRequest.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";
+ return null;
+ };
+
+ /**
+ * Creates a ListDashboardsRequest message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.ListDashboardsRequest} ListDashboardsRequest
+ */
+ ListDashboardsRequest.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.ListDashboardsRequest)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.ListDashboardsRequest();
+ 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);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ListDashboardsRequest message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.ListDashboardsRequest} message ListDashboardsRequest
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ListDashboardsRequest.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.parent = "";
+ object.pageSize = 0;
+ object.pageToken = "";
+ }
+ 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;
+ return object;
+ };
+
+ /**
+ * Converts this ListDashboardsRequest to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ListDashboardsRequest.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for ListDashboardsRequest
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsRequest
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ ListDashboardsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.ListDashboardsRequest";
+ };
+
+ return ListDashboardsRequest;
+ })();
+
+ v1.ListDashboardsResponse = (function() {
+
+ /**
+ * Properties of a ListDashboardsResponse.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IListDashboardsResponse
+ * @property {Array.|null} [dashboards] ListDashboardsResponse dashboards
+ * @property {string|null} [nextPageToken] ListDashboardsResponse nextPageToken
+ */
+
+ /**
+ * Constructs a new ListDashboardsResponse.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a ListDashboardsResponse.
+ * @implements IListDashboardsResponse
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IListDashboardsResponse=} [properties] Properties to set
+ */
+ function ListDashboardsResponse(properties) {
+ this.dashboards = [];
+ 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]];
+ }
+
+ /**
+ * ListDashboardsResponse dashboards.
+ * @member {Array.} dashboards
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsResponse
+ * @instance
+ */
+ ListDashboardsResponse.prototype.dashboards = $util.emptyArray;
+
+ /**
+ * ListDashboardsResponse nextPageToken.
+ * @member {string} nextPageToken
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsResponse
+ * @instance
+ */
+ ListDashboardsResponse.prototype.nextPageToken = "";
+
+ /**
+ * Creates a new ListDashboardsResponse instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsResponse
+ * @static
+ * @param {google.monitoring.dashboard.v1.IListDashboardsResponse=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.ListDashboardsResponse} ListDashboardsResponse instance
+ */
+ ListDashboardsResponse.create = function create(properties) {
+ return new ListDashboardsResponse(properties);
+ };
+
+ /**
+ * Encodes the specified ListDashboardsResponse message. Does not implicitly {@link google.monitoring.dashboard.v1.ListDashboardsResponse.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsResponse
+ * @static
+ * @param {google.monitoring.dashboard.v1.IListDashboardsResponse} message ListDashboardsResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ListDashboardsResponse.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.dashboards != null && message.dashboards.length)
+ for (var i = 0; i < message.dashboards.length; ++i)
+ $root.google.monitoring.dashboard.v1.Dashboard.encode(message.dashboards[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 ListDashboardsResponse message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.ListDashboardsResponse.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsResponse
+ * @static
+ * @param {google.monitoring.dashboard.v1.IListDashboardsResponse} message ListDashboardsResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ListDashboardsResponse.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ListDashboardsResponse message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.ListDashboardsResponse} ListDashboardsResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ListDashboardsResponse.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.monitoring.dashboard.v1.ListDashboardsResponse();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ if (!(message.dashboards && message.dashboards.length))
+ message.dashboards = [];
+ message.dashboards.push($root.google.monitoring.dashboard.v1.Dashboard.decode(reader, reader.uint32()));
+ break;
+ }
+ case 2: {
+ message.nextPageToken = reader.string();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ListDashboardsResponse message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.ListDashboardsResponse} ListDashboardsResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ListDashboardsResponse.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ListDashboardsResponse message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsResponse
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ListDashboardsResponse.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.dashboards != null && message.hasOwnProperty("dashboards")) {
+ if (!Array.isArray(message.dashboards))
+ return "dashboards: array expected";
+ for (var i = 0; i < message.dashboards.length; ++i) {
+ var error = $root.google.monitoring.dashboard.v1.Dashboard.verify(message.dashboards[i]);
+ if (error)
+ return "dashboards." + error;
+ }
+ }
+ if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken"))
+ if (!$util.isString(message.nextPageToken))
+ return "nextPageToken: string expected";
+ return null;
+ };
+
+ /**
+ * Creates a ListDashboardsResponse message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsResponse
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.ListDashboardsResponse} ListDashboardsResponse
+ */
+ ListDashboardsResponse.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.ListDashboardsResponse)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.ListDashboardsResponse();
+ if (object.dashboards) {
+ if (!Array.isArray(object.dashboards))
+ throw TypeError(".google.monitoring.dashboard.v1.ListDashboardsResponse.dashboards: array expected");
+ message.dashboards = [];
+ for (var i = 0; i < object.dashboards.length; ++i) {
+ if (typeof object.dashboards[i] !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.ListDashboardsResponse.dashboards: object expected");
+ message.dashboards[i] = $root.google.monitoring.dashboard.v1.Dashboard.fromObject(object.dashboards[i]);
+ }
+ }
+ if (object.nextPageToken != null)
+ message.nextPageToken = String(object.nextPageToken);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ListDashboardsResponse message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsResponse
+ * @static
+ * @param {google.monitoring.dashboard.v1.ListDashboardsResponse} message ListDashboardsResponse
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ListDashboardsResponse.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.dashboards = [];
+ if (options.defaults)
+ object.nextPageToken = "";
+ if (message.dashboards && message.dashboards.length) {
+ object.dashboards = [];
+ for (var j = 0; j < message.dashboards.length; ++j)
+ object.dashboards[j] = $root.google.monitoring.dashboard.v1.Dashboard.toObject(message.dashboards[j], options);
+ }
+ if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken"))
+ object.nextPageToken = message.nextPageToken;
+ return object;
+ };
+
+ /**
+ * Converts this ListDashboardsResponse to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsResponse
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ListDashboardsResponse.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for ListDashboardsResponse
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.ListDashboardsResponse
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ ListDashboardsResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.ListDashboardsResponse";
+ };
+
+ return ListDashboardsResponse;
+ })();
+
+ v1.GetDashboardRequest = (function() {
+
+ /**
+ * Properties of a GetDashboardRequest.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IGetDashboardRequest
+ * @property {string|null} [name] GetDashboardRequest name
+ */
+
+ /**
+ * Constructs a new GetDashboardRequest.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a GetDashboardRequest.
+ * @implements IGetDashboardRequest
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IGetDashboardRequest=} [properties] Properties to set
+ */
+ function GetDashboardRequest(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]];
+ }
+
+ /**
+ * GetDashboardRequest name.
+ * @member {string} name
+ * @memberof google.monitoring.dashboard.v1.GetDashboardRequest
+ * @instance
+ */
+ GetDashboardRequest.prototype.name = "";
+
+ /**
+ * Creates a new GetDashboardRequest instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.GetDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.IGetDashboardRequest=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.GetDashboardRequest} GetDashboardRequest instance
+ */
+ GetDashboardRequest.create = function create(properties) {
+ return new GetDashboardRequest(properties);
+ };
+
+ /**
+ * Encodes the specified GetDashboardRequest message. Does not implicitly {@link google.monitoring.dashboard.v1.GetDashboardRequest.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.GetDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.IGetDashboardRequest} message GetDashboardRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GetDashboardRequest.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 GetDashboardRequest message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.GetDashboardRequest.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.GetDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.IGetDashboardRequest} message GetDashboardRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GetDashboardRequest.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a GetDashboardRequest message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.GetDashboardRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.GetDashboardRequest} GetDashboardRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GetDashboardRequest.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.monitoring.dashboard.v1.GetDashboardRequest();
+ 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 GetDashboardRequest message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.GetDashboardRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.GetDashboardRequest} GetDashboardRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GetDashboardRequest.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a GetDashboardRequest message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.GetDashboardRequest
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ GetDashboardRequest.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 GetDashboardRequest message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.GetDashboardRequest
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.GetDashboardRequest} GetDashboardRequest
+ */
+ GetDashboardRequest.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.GetDashboardRequest)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.GetDashboardRequest();
+ if (object.name != null)
+ message.name = String(object.name);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a GetDashboardRequest message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.GetDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.GetDashboardRequest} message GetDashboardRequest
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ GetDashboardRequest.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 GetDashboardRequest to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.GetDashboardRequest
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ GetDashboardRequest.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for GetDashboardRequest
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.GetDashboardRequest
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ GetDashboardRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.GetDashboardRequest";
+ };
+
+ return GetDashboardRequest;
+ })();
+
+ v1.DeleteDashboardRequest = (function() {
+
+ /**
+ * Properties of a DeleteDashboardRequest.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IDeleteDashboardRequest
+ * @property {string|null} [name] DeleteDashboardRequest name
+ */
+
+ /**
+ * Constructs a new DeleteDashboardRequest.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents a DeleteDashboardRequest.
+ * @implements IDeleteDashboardRequest
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IDeleteDashboardRequest=} [properties] Properties to set
+ */
+ function DeleteDashboardRequest(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]];
+ }
+
+ /**
+ * DeleteDashboardRequest name.
+ * @member {string} name
+ * @memberof google.monitoring.dashboard.v1.DeleteDashboardRequest
+ * @instance
+ */
+ DeleteDashboardRequest.prototype.name = "";
+
+ /**
+ * Creates a new DeleteDashboardRequest instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.DeleteDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.IDeleteDashboardRequest=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.DeleteDashboardRequest} DeleteDashboardRequest instance
+ */
+ DeleteDashboardRequest.create = function create(properties) {
+ return new DeleteDashboardRequest(properties);
+ };
+
+ /**
+ * Encodes the specified DeleteDashboardRequest message. Does not implicitly {@link google.monitoring.dashboard.v1.DeleteDashboardRequest.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.DeleteDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.IDeleteDashboardRequest} message DeleteDashboardRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ DeleteDashboardRequest.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 DeleteDashboardRequest message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.DeleteDashboardRequest.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.DeleteDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.IDeleteDashboardRequest} message DeleteDashboardRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ DeleteDashboardRequest.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a DeleteDashboardRequest message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.DeleteDashboardRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.DeleteDashboardRequest} DeleteDashboardRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ DeleteDashboardRequest.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.monitoring.dashboard.v1.DeleteDashboardRequest();
+ 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 DeleteDashboardRequest message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.DeleteDashboardRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.DeleteDashboardRequest} DeleteDashboardRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ DeleteDashboardRequest.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a DeleteDashboardRequest message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.DeleteDashboardRequest
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ DeleteDashboardRequest.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 DeleteDashboardRequest message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.DeleteDashboardRequest
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.DeleteDashboardRequest} DeleteDashboardRequest
+ */
+ DeleteDashboardRequest.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.DeleteDashboardRequest)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.DeleteDashboardRequest();
+ if (object.name != null)
+ message.name = String(object.name);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a DeleteDashboardRequest message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.DeleteDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.DeleteDashboardRequest} message DeleteDashboardRequest
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ DeleteDashboardRequest.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 DeleteDashboardRequest to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.DeleteDashboardRequest
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ DeleteDashboardRequest.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for DeleteDashboardRequest
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.DeleteDashboardRequest
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ DeleteDashboardRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.DeleteDashboardRequest";
+ };
+
+ return DeleteDashboardRequest;
+ })();
+
+ v1.UpdateDashboardRequest = (function() {
+
+ /**
+ * Properties of an UpdateDashboardRequest.
+ * @memberof google.monitoring.dashboard.v1
+ * @interface IUpdateDashboardRequest
+ * @property {google.monitoring.dashboard.v1.IDashboard|null} [dashboard] UpdateDashboardRequest dashboard
+ * @property {boolean|null} [validateOnly] UpdateDashboardRequest validateOnly
+ */
+
+ /**
+ * Constructs a new UpdateDashboardRequest.
+ * @memberof google.monitoring.dashboard.v1
+ * @classdesc Represents an UpdateDashboardRequest.
+ * @implements IUpdateDashboardRequest
+ * @constructor
+ * @param {google.monitoring.dashboard.v1.IUpdateDashboardRequest=} [properties] Properties to set
+ */
+ function UpdateDashboardRequest(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]];
+ }
+
+ /**
+ * UpdateDashboardRequest dashboard.
+ * @member {google.monitoring.dashboard.v1.IDashboard|null|undefined} dashboard
+ * @memberof google.monitoring.dashboard.v1.UpdateDashboardRequest
+ * @instance
+ */
+ UpdateDashboardRequest.prototype.dashboard = null;
+
+ /**
+ * UpdateDashboardRequest validateOnly.
+ * @member {boolean} validateOnly
+ * @memberof google.monitoring.dashboard.v1.UpdateDashboardRequest
+ * @instance
+ */
+ UpdateDashboardRequest.prototype.validateOnly = false;
+
+ /**
+ * Creates a new UpdateDashboardRequest instance using the specified properties.
+ * @function create
+ * @memberof google.monitoring.dashboard.v1.UpdateDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.IUpdateDashboardRequest=} [properties] Properties to set
+ * @returns {google.monitoring.dashboard.v1.UpdateDashboardRequest} UpdateDashboardRequest instance
+ */
+ UpdateDashboardRequest.create = function create(properties) {
+ return new UpdateDashboardRequest(properties);
+ };
+
+ /**
+ * Encodes the specified UpdateDashboardRequest message. Does not implicitly {@link google.monitoring.dashboard.v1.UpdateDashboardRequest.verify|verify} messages.
+ * @function encode
+ * @memberof google.monitoring.dashboard.v1.UpdateDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.IUpdateDashboardRequest} message UpdateDashboardRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ UpdateDashboardRequest.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.dashboard != null && Object.hasOwnProperty.call(message, "dashboard"))
+ $root.google.monitoring.dashboard.v1.Dashboard.encode(message.dashboard, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.validateOnly != null && Object.hasOwnProperty.call(message, "validateOnly"))
+ writer.uint32(/* id 3, wireType 0 =*/24).bool(message.validateOnly);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified UpdateDashboardRequest message, length delimited. Does not implicitly {@link google.monitoring.dashboard.v1.UpdateDashboardRequest.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof google.monitoring.dashboard.v1.UpdateDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.IUpdateDashboardRequest} message UpdateDashboardRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ UpdateDashboardRequest.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes an UpdateDashboardRequest message from the specified reader or buffer.
+ * @function decode
+ * @memberof google.monitoring.dashboard.v1.UpdateDashboardRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {google.monitoring.dashboard.v1.UpdateDashboardRequest} UpdateDashboardRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ UpdateDashboardRequest.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.monitoring.dashboard.v1.UpdateDashboardRequest();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.dashboard = $root.google.monitoring.dashboard.v1.Dashboard.decode(reader, reader.uint32());
+ break;
+ }
+ case 3: {
+ message.validateOnly = reader.bool();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes an UpdateDashboardRequest message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof google.monitoring.dashboard.v1.UpdateDashboardRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {google.monitoring.dashboard.v1.UpdateDashboardRequest} UpdateDashboardRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ UpdateDashboardRequest.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies an UpdateDashboardRequest message.
+ * @function verify
+ * @memberof google.monitoring.dashboard.v1.UpdateDashboardRequest
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ UpdateDashboardRequest.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.dashboard != null && message.hasOwnProperty("dashboard")) {
+ var error = $root.google.monitoring.dashboard.v1.Dashboard.verify(message.dashboard);
+ if (error)
+ return "dashboard." + error;
+ }
+ if (message.validateOnly != null && message.hasOwnProperty("validateOnly"))
+ if (typeof message.validateOnly !== "boolean")
+ return "validateOnly: boolean expected";
+ return null;
+ };
+
+ /**
+ * Creates an UpdateDashboardRequest message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof google.monitoring.dashboard.v1.UpdateDashboardRequest
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {google.monitoring.dashboard.v1.UpdateDashboardRequest} UpdateDashboardRequest
+ */
+ UpdateDashboardRequest.fromObject = function fromObject(object) {
+ if (object instanceof $root.google.monitoring.dashboard.v1.UpdateDashboardRequest)
+ return object;
+ var message = new $root.google.monitoring.dashboard.v1.UpdateDashboardRequest();
+ if (object.dashboard != null) {
+ if (typeof object.dashboard !== "object")
+ throw TypeError(".google.monitoring.dashboard.v1.UpdateDashboardRequest.dashboard: object expected");
+ message.dashboard = $root.google.monitoring.dashboard.v1.Dashboard.fromObject(object.dashboard);
+ }
+ if (object.validateOnly != null)
+ message.validateOnly = Boolean(object.validateOnly);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from an UpdateDashboardRequest message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof google.monitoring.dashboard.v1.UpdateDashboardRequest
+ * @static
+ * @param {google.monitoring.dashboard.v1.UpdateDashboardRequest} message UpdateDashboardRequest
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ UpdateDashboardRequest.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.dashboard = null;
+ object.validateOnly = false;
+ }
+ if (message.dashboard != null && message.hasOwnProperty("dashboard"))
+ object.dashboard = $root.google.monitoring.dashboard.v1.Dashboard.toObject(message.dashboard, options);
+ if (message.validateOnly != null && message.hasOwnProperty("validateOnly"))
+ object.validateOnly = message.validateOnly;
+ return object;
+ };
+
+ /**
+ * Converts this UpdateDashboardRequest to JSON.
+ * @function toJSON
+ * @memberof google.monitoring.dashboard.v1.UpdateDashboardRequest
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ UpdateDashboardRequest.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for UpdateDashboardRequest
+ * @function getTypeUrl
+ * @memberof google.monitoring.dashboard.v1.UpdateDashboardRequest
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ UpdateDashboardRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/google.monitoring.dashboard.v1.UpdateDashboardRequest";
+ };
+
+ return UpdateDashboardRequest;
+ })();
+
+ return v1;
+ })();
+
+ return dashboard;
+ })();
+
+ return monitoring;
+ })();
+
+ google.api = (function() {
+
+ /**
+ * Namespace api.
+ * @memberof google
+ * @namespace
+ */
+ var api = {};
+
+ /**
+ * FieldBehavior enum.
+ * @name google.api.FieldBehavior
+ * @enum {number}
+ * @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
+ * @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);
+ 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;
+ values[valuesById[6] = "UNORDERED_LIST"] = 6;
+ values[valuesById[7] = "NON_EMPTY_DEFAULT"] = 7;
+ return values;
+ })();
+
+ 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
+ * @property {Array.|null} [style] ResourceDescriptor style
+ */
+
+ /**
+ * 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 = [];
+ this.style = [];
+ 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 = "";
+
+ /**
+ * 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
+ * @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 && 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 && Object.hasOwnProperty.call(message, "nameField"))
+ writer.uint32(/* id 3, wireType 2 =*/26).string(message.nameField);
+ if (message.history != null && Object.hasOwnProperty.call(message, "history"))
+ writer.uint32(/* id 4, wireType 0 =*/32).int32(message.history);
+ if (message.plural != null && Object.hasOwnProperty.call(message, "plural"))
+ 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;
+ };
+
+ /**
+ * 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;
+ }
+ 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;
+ }
+ }
+ 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";
+ 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;
+ };
+
+ /**
+ * 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);
+ 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;
+ };
+
+ /**
+ * 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 = [];
+ object.style = [];
+ }
+ 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;
+ 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;
+ };
+
+ /**
+ * 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);
+ };
+
+ /**
+ * 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
+ * @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
+ */
+ 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;
+ })();
+
+ /**
+ * 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;
+ })();
+
+ 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 && Object.hasOwnProperty.call(message, "type"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.type);
+ if (message.childType != null && Object.hasOwnProperty.call(message, "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);
+ };
+
+ /**
+ * 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;
+ })();
+
+ 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 && Object.hasOwnProperty.call(message, "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);
+ };
+
+ /**
+ * 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;
+ })();
+
+ 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|null|undefined} get
+ * @memberof google.api.HttpRule
+ * @instance
+ */
+ HttpRule.prototype.get = null;
+
+ /**
+ * HttpRule put.
+ * @member {string|null|undefined} put
+ * @memberof google.api.HttpRule
+ * @instance
+ */
+ HttpRule.prototype.put = null;
+
+ /**
+ * HttpRule post.
+ * @member {string|null|undefined} post
+ * @memberof google.api.HttpRule
+ * @instance
+ */
+ HttpRule.prototype.post = null;
+
+ /**
+ * HttpRule delete.
+ * @member {string|null|undefined} delete
+ * @memberof google.api.HttpRule
+ * @instance
+ */
+ HttpRule.prototype["delete"] = null;
+
+ /**
+ * HttpRule patch.
+ * @member {string|null|undefined} patch
+ * @memberof google.api.HttpRule
+ * @instance
+ */
+ HttpRule.prototype.patch = null;
+
+ /**
+ * 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 && Object.hasOwnProperty.call(message, "selector"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.selector);
+ if (message.get != null && Object.hasOwnProperty.call(message, "get"))
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.get);
+ if (message.put != null && Object.hasOwnProperty.call(message, "put"))
+ writer.uint32(/* id 3, wireType 2 =*/26).string(message.put);
+ if (message.post != null && Object.hasOwnProperty.call(message, "post"))
+ writer.uint32(/* id 4, wireType 2 =*/34).string(message.post);
+ if (message["delete"] != null && Object.hasOwnProperty.call(message, "delete"))
+ writer.uint32(/* id 5, wireType 2 =*/42).string(message["delete"]);
+ if (message.patch != null && Object.hasOwnProperty.call(message, "patch"))
+ writer.uint32(/* id 6, wireType 2 =*/50).string(message.patch);
+ if (message.body != null && Object.hasOwnProperty.call(message, "body"))
+ writer.uint32(/* id 7, wireType 2 =*/58).string(message.body);
+ 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 && Object.hasOwnProperty.call(message, "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);
+ };
+
+ /**
+ * 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;
+ })();
+
+ 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 && Object.hasOwnProperty.call(message, "kind"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind);
+ if (message.path != null && Object.hasOwnProperty.call(message, "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);
+ };
+
+ /**
+ * 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;
+ })();
+
+ 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);
+ };
+
+ /**
+ * 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;
+ })();
+
+ 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
+ * @property {string|null} [edition] FileDescriptorProto edition
+ */
+
+ /**
+ * 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 = "";
+
+ /**
+ * FileDescriptorProto edition.
+ * @member {string} edition
+ * @memberof google.protobuf.FileDescriptorProto
+ * @instance
+ */
+ FileDescriptorProto.prototype.edition = "";
+
+ /**
+ * 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 && Object.hasOwnProperty.call(message, "name"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);
+ 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)
+ 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 && 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 && 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)
+ 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 && 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;
+ };
+
+ /**
+ * 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;
+ }
+ case 13: {
+ message.edition = 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";
+ if (message.edition != null && message.hasOwnProperty("edition"))
+ if (!$util.isString(message.edition))
+ return "edition: 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);
+ if (object.edition != null)
+ message.edition = String(object.edition);
+ 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 = "";
+ object.edition = "";
+ }
+ 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;
+ if (message.edition != null && message.hasOwnProperty("edition"))
+ object.edition = message.edition;
+ 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);
+ };
+
+ /**
+ * 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;
+ })();
+
+ 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.